A point light follows the current camera location to illuminate all coins.
Coins are lighted using Blinn-Phong lighting, while the world (textured) is just lit at full brightness, instead drawing its colors from the texture directly (to appear more like the original game).
The mouse controls the camera, with movement using WASD relative to the current camera position.
Space and shift can also be used for movement to move straight up and straight down.
A skybox of a field was used.
The entire world map was textured with the texture files from the original game, placed over the transformed multi-mesh model.
Particles spawn at a coin's location when it is collected for visual feedback on collection.
Using the FreeType library, a text HUD displays how many coins the user has collected so far, and displays a congratulatory message when all 8 coins have been collected.
"Bob-Omb Battlefield" from Super Mario 64's OST plays on loop while the program is being run.
A coin jingle (also from Super Mario 64) plays whenever a coin is collected.
Volume can be controlled using the UP/DOWN keys.
W and S dolly the camera, and A and D strafe.
SPACE moves the camera up, and SHIFT moves the camera down.
UP turns the volume up by 10%, and DOWN turns the volume down by 10%.
R resets the game.
ESACPE exits the game.
All source code can be seen in this local GitHub repo.
You are welcome to create a pull request if you would like to add more features to the game! :)
A video of someone playing and completing the game.
OpenGL (Graphics programming interface)
GLM (OpenGL mathematics library)
GLFW (Lightweight utility OpenGL library)
FreeType (Font engine used for HUD)
IrrKlang (Audio Engine used for Music/Sound)
Learn OpenGL (Tutorials used to incorporate FreeType and IrrKlang)
w3school.com (HTML and CSS references)
Dr. Zoƫ Wood (Base code, mutliple libraries, and overall debugging and programming help. Also an awesome professor!)