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!
Controls:
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
Screenshots:
Implementation:
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.