Not Another Temple Run is a 3D running game that consists of 2 different environments (modes) developed using Opengl C++
The player is running in a turning lane (that should be followed) with a target to collect certain amount of coins to win
- Collectables : Coins that appear randomly both in position and amount.
- Obstacles : Rocks that the player should avoid by leaning or jumping.
The player is running endlessly with a target to live as much he/she can (no certain score to win)
- Collectables : Shields that appear randomly and give the player a period of protection from fire
- Obstacles : Fire that the player should avoid by leaning or jumping
Game.mp4
The game consists of 2 modes of camera prespective (that always follows the player)
Camera eye is the head of the player and center is a point on the ground in front of the player
Camera eye is behind the player while camera center is the player itself
Left Click
→ Player jumpMoving arrow Right
→Player lean rightMoving arrow Left
→player lean left
Press D
→ Player turn right (to folow the ground)Press A
→ Player turn left (to follow the ground)Press space
→ Player jumpingPress Right arrow
→Player leaning rightPress Left arrow
→ Player leaning left
- Win Action : Collect 35 coin
- Lose Action : Collide with rock or falling off the ground (not following its turning)
- Win Action : No win Action
- Lose Action : Collide with fire or falling off the ground (not following its turning)
There is a sound effect generated for different actions in the game
- Colliding with the rock in Arcade mode
- Colliding with Fire in Survival mode
- Collecting Coin in Arcade Mode
- Obtaining Sheild in Survival Mode
- Falling off the ground in both Arcade and Survival Modes
Lights is modelled as one light source that changes its intensity and position to simulate day/night cycle
Develop a dynamic way to generate the turning ground of the game.
How we solved it
- Store the direction of each ground (NEGATIVE_X , NEGATIVE_Z , POSITIVE_X, POSITIVE_Z) beside its center.
- Develop 3 methods
drawLeft
,drawRight
, anddrawForward
that takes the current ground object and return the new ground (its center and direction).
- Use the dynamic way of generating ground to generate the ground dynamically at runtime.
- Add magnet feature in Arcade Mode.