Imacrun 3D was created as part of a school project during my second year of engineering school. we had to re create the game temple run.
To do this, we used OpenGL and GLFW for the graphics part, the lib "TinyObjLoader" to load our meshes,Freetype for the text rendering,STB for the images and doxygen to generate our documentation . Everything else has been made from scratch.
For our architecture, we split it in 3 major part : 
-Render engine: for the visual aspect (the OpenGL stuff) and the shaders
-Game engine: for generating the map, checking the input, managing the player and managing cameras
-App engine: for the navigation within the menu
The game has an infinite map that is randomly generated while the game is running. In order to do that, we wrote some "map elements" in a text file and we randomly picked on of these when it's needed.
To know if the player is in the menu, running a game or in the finnished screen, we implemented a state pattern.
As we keep the 3 best scores, we also used an iterator for adding new scores in the right place.
We were a group of 4 and i mainly worked on:
-The architecture and how we should separate our code to do something clean
-The implementation of shaders ( for the light and for rendering the game with textures properly)
-Some features on the game like the gestion of the score, placing elements on the map, implementation of text.

You can find the source code here
Back to Top