top of page

Technical Work

Projects done as part of these classes:

  • CSCI-580: 3D Graphics and Rendering

  • TAC-485: Programming Game Engines

  • 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.

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

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

Code Samples:

Portal

Star Fox

Mario Kart

Zelda

Retro games programmed with C++​

  • Vectors, Matrices, Quaternions

  • Transformation spaces

  • Multithreading (i.e. Profiler)

  • Collision

  • A* Pathfinding and Enemy AI

  • Height maps

  • Normal maps

  • Player movement system

  • Camera component

  • UI components and system

  • Audio system

© 2025 Andrea Lim

bottom of page