LUNAREAL

C++     OpenGL    1 month     2020

ABOUT

LUNAREAL is a 3D platformer game that takes place in a surreal planet with a strange moon. The player descends different platforms by deciphering hints, dodging traps, and defeating enemies.

The game employs OpenGL for primitives, lighting, and rendering. The physics has been programmed to implement gravity, friction, acceleration, and bounce, among many others.  NPC behavior revolves on decision trees and finite state machines. Taking form of floating eyeballs, these NPCs consolidate upon proximity and attack, dodge, multiply, or stalk depending on their state. Pickups for hints are tactfully located to aid players solve traps or obstacles until the final boss is reached at the lower level. 

Level Schematic
Level Schematic

[1] Hint: "RUN!"

The first stretch of the level is bordered with pedestals. Upon proximity, enemy eyeballs will consolidate and start attacking the player. Run before you get caught in the middle of their crossfire!

[2] Hint: "Attack when it Attacks"

Enemy npcs from this level onward are programmed to dodge when the player shoots a projectile in their direction. However, they are unable to dodge if they are in the middle of attacking the players themselves.

[3] Hint: "Cross the Bridge"

The next platform is unreachable unless the bridge rotates in the correct orientation. The key to revolving the bridge is to approach a tall statue, which will explode harmlessly and unlock the next platform. 

[4] Hint: "Find the Fake"

The next platform is scattered with bombs that will explode upon contact and shave away at your health. Moreover, there are 3 enemy npcs looming overhead, which means you not only need to dodge bombs, but also incoming attacks. Find the ‘fake’ bomb to disarm all other bombs and make your life easier. 

[5] Hint: "The Sphere will Stalk"

A nondescript sphere will stalk the player when the player has her back turned against it. Once the player reaches the slender path descending towards the final level, the sphere will accelerate and try to knock the player off the ledge!

[6] Hint: "Good Luck Out There"

The last hint only provides motivational support to aid the battle against the last boss. The last boss first appears as a single large eyeball that splits into three smaller eyeballs upon losing health, which also split into three even smaller eyeballs each upon losing health. If the player manages to survive, the boss will finally coalesce into a single eyeball and intermittently rain lightning storms upon the player.