Game Engine Course Assignment

This page shows Assignment that I did in University Of Southern California (USC) Game Engine Development Course (CSCI 522).

The engine used is a USC educational engine: Prime Engine. All assignments are done by modifying or adding C++ code on top of the Prime Engine Source code.

Bounding volumes and culling

The video shows the culling result. You can see frame rate increase when mesh instances are our of screen since the mesh instances are culled out.

  • Created bounding volume by creating Axis Aligned Bounding Box (AABB) around meshes.

  • Showed bounding volumes by adding helper functions to render a box and in debug renderer,

  • Created Frustum Plane Equations for camera frustum based on where camera is and camera's field of view.

  • Tested bounding volumes by using bounding volumes to test with camera view frustum and dismiss the mesh instances that are not intersecting with camera view frustum.



This video shows the simple physics added to Prime Engine by me. Two soldiers cannot overlap since they have collision box. soldier will automatically slide when it keep walking toward the car. soldier will fall when walk out of plane (Gravity).

2nd UV Set

  • Added a second TexCoord buffer (UV set) to DetailedMesh mesh type

  • Added vertex shader wind support, storing wind data in constant buffer and using second UV-set to control how much wind to apply to each vertex of DetailedMesh

Basic Particle System

  • Generate vertex buffers for particles based on particle speed, emitters.

  • Do particles calculation using compute shader

@2020 by The Candle