Karthik Jayakumar

CPE 471 Final Project


Tilt Game


Project Outline:


To create a 3d tilt maze from scratch in OpenGL with collision detection, inertial ball movement and rotation.

The game is set on a plane upon which you may tilt to move and control the ball, the plane shrinks over time, with the goal of the game being to stay on the plane for the longest possible time.

As soon as the ball falls off the edge, the plane stops shrinking. The smaller the plane is, the higher your score!



W -> Tilt plane forward

S-> Tilt plane backwards

A -> Tilt plane to the left

D -> Title plane to the right

E -> Turn on Easy Mode (Plane will auto balance itself after player movement)

Mouse Click -> Rotate Camera

Shift + Mouse Click -> Pan Camera

Ctrl + Mouse Click -> Zoom Camera





Collision detection -> OBB vs. Sphere collision detection. Using a modified Arvo’s algorithm.

Inertial Physics -> The Ball rotates/moves according to simplified physics, the only drawback is the potential for divide by zero errors with the simplified equations.

Blinn-Phong Shading -> Shaders written in GLSL, with custom materials defined for each object.

Free Camera -> Can move and control camera freely

Hierarchical Transforms -> All objects on plane must tilt along with the plane. On top of their own respective transforms.

Randomization -> Ball starts with random initial vector & position on map. Constrained so that you can never start off balanced within the middle of the map already with zero velocity.