Skip to content

CharlesYeh/rollercoaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alec Lee / Charles Yeh - CS123 Final Project Rollercoaster

For our project, we created a game a user shoots at targets along a bezier curve. We implemented the following features:

New technical features:
+Moving camera along Bezier curve
+Near linear collision detection with Sweep and Prune

Old technical features:
-Particle effects from explosions/projectiles
-Skybox
-Projection onto 2d film plane
-Shaders


----Collision Detection----
Collision is done in near linear complexity by taking advantage of temporal cohesion.
The SweepPruner class takes and removes objects. Calling "sweepAndPrune" causes an
insertion sort on bounding box points. Collisions in all 3 dimensions are intersected
together and returned.

For rotation, the bounding box of the original rotated bounding box is taken.
While this is not as accurate, the point of sweep and prune originally was to be fast.
Although we do not do this, more complex collision detection may be run on the output
from the SweepPruner.

--------Bezier Curve--------
Bezier curves are added into a single array. Every 3rd point is a control point.
Points in between are handle points. Cubic interpolation is used to pick points
along the curve.

Both the camera of the player and all the ships on the screen are controlled by bezier curves.

------Particle Effects------
Particle effects are used both as trails for projectiles and as explosions for collisions.
Particles are also billboarded (to always face the camera).

-----------Design-----------
Our project is broken up into 3 major parts: the game engine, sweep and prune code, and
drawing code. There are 2 threads, one handling logic and one handling graphics.

Objects are initialized all at once, and hidden until use. This prevents concurrency issues
with addition and removal from lists, and also provides speed boosts from reduction
of memory management.

Some constants are hard-coded in GameEngine.h and OrbitCamera.h

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published