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






