top of page

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):

  1. Put the end effector onto the target.

  2. For each joint from the end towards the root, move it to the correct distance away, maintaining the direction based on the previous steps.

  3. Put the root joint back onto the root location.

  4. Repeat the previous step, except going from the root towards the end instead.

  5. 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:

© 2025 Andrea Lim

bottom of page