Super Mario 64 Coin Collector

Starting position

Project Description

Technologies Implemented

Lighting

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).

Game camera

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.

Skybox

A skybox of a field was used.

Textures

The entire world map was textured with the texture files from the original game, placed over the transformed multi-mesh model.

Particles

Particles spawn at a coin's location when it is collected for visual feedback on collection.

On-screen HUD

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.

Music and Sound

"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.

Controls

WASD:

W and S dolly the camera, and A and D strafe.

SPACE/SHIFT:

SPACE moves the camera up, and SHIFT moves the camera down.

UP/DOWN:

UP turns the volume up by 10%, and DOWN turns the volume down by 10%.

R:

R resets the game.

ESCAPE:

ESACPE exits the game.

Source Code

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! :)

End Product

A video of someone playing and completing the game.

References and Resources

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!)