Collision Systems





I created a collision system for my 3D Game Engine MOABE.
Feature List:
- Tiered Testing System which delays the more performance-intensive tests until other cheaper tests have been performed.
- 3 Kinds of collision volumes, a Bounding Sphere (BSphere), an Axis Aligned Bounding Box (AABB), and an Oriented Bounding Box (OBB).
- Allows for Collision between any user supplied class via C++ Templates.
Lighting Systems



Another system I developed as a part of a personal project was a robust and comprehensive lighting system!
When I first began working on my graphics engine, jAzul, lighting was not only one of the more fun aspects of it, but also the more challenging. From a math and graphics perspective, it was really exciting seeing everything I’d learned about DirectX and HLSL come together. From a design perspective however… not so much.
I wanted my graphics engine to be as lightweight and portable as possible. I didn’t want to limit the user choices and so to do that the lighting system in it is VERY barebones. It’s more or less simply a pass through to a static array of lights. since DirectX 11 does not support dynamic lists.
I also wanted to simplify the process of updating lights to make it as simple as possible. A problem I noticed when working with lights in my projects is that often the code for updating lights quickly spreads out and becomes unmanageable. Additionally, many of the behaviors you usually want lights to follow are almost always the same. This lead me to develop my Light Behavior system which not only streamlined the process of updating lights by creating an entirely new class responsible for updating the lights, but also added many new tools for users to create and design their own behaviors.