Gameplay Programming
Projects done as part of TAC-380: Video Game Programming
My Biggest Takeaways:
-
If you can't explain the problem, you can't solve it.
-
The simplest solution is not always the best one. Always think about what the computer is actually doing.
-
Comments and documentation are communication - to others or your future self.
-
When in doubt, it's probably dot product.
Portal
Click for zoom-in and details of code samples:

Mario Kart
Star Fox
Zelda
Click for zoom-in and details of code samples:

Game Engine Programming
Projects done as part of
CSCI-580: 3D Graphics and Rendering and TAC-485: Programming Game Engines
Animation IK (FABRIK)
Code snippet for FABRIK algorithm: https://github.com/andrealimonline/Animation-IK
FABRIK (Summary of Algorithm I Implemented):
-
Put the end effector onto the target.
-
For each joint from the end towards the root, move it to the correct distance away, maintaining the direction based on the previous steps.
-
Put the root joint back onto the root location.
-
Repeat the previous step, except going from the root towards the end instead.
-
Finally, calculate the quaternion rotation to get the desired positions of all joints.
Mixture of Game Engine Systems
Lighting & Rendering
Topics covered in these projects include:
-
Rendering (Shaders, Buffers, Transformation between Spaces, Camera)
-
Texture and Normal Mapping
-
Cache, Asset Management, Level Loading and Components-based System
-
Lighting calculations (i.e. Phong, Simple, Unlit, Metallic)
-
Animation (Blending, Skeletal Hierarchy, Skinning, Storing and Playing Animation Data)
-
Collision (Separating Axis Theorem, Axis-Aligning Bounding Box, Oriented Bounding Box, Continuous Collision Detection using GJK algorithm)
-
Multithreading and Thread-based Profiling
-
Post-processing Effects (i.e. Gaussian Blur, Bloom)
Click for zoom-in and details of code samples:






























