I started this program with the idea to make a fun and simple 3D game that showcased some of the things that I learned in CPE 471.
1. Collision Detection
The collision detection in this 3D game is quite unique. Instead of using a 3D test for a collision like a point in polygon test, I use a 2D collision detection technique in combonation with a Z-axis test.
I use the Separating Axis Theorem to check if the objects have collided in the X and Y coordinates. The theorem states that if 2 convex objects are not colliding, then there must be some axis to which each object are on opposing sides.
The only axis you need to test are the ones that are parrallel to each edge of each object. In my case, I used only rectangles, which meant there were 4 total to check.
You then get the normal to each axis, project the points of each object onto that axis, and then see if the mins/maxs are overlapping. If they are not, then the objects are not colliding.
I would do this X & Y check only if the thickness of the player (robot) and the thickness of the object, are overlapping in the Z-axis. I was able to do this hack because the player is always constantly moving in the Z direction.
2. Hierarchical Modeling
I have many models in my game that the player must avoid. Many of them move and spin to add challenge to the game.
3. Gameplay Features
To play, make and then enter "run".