Custom Game Engine
Technical Details
Resizable Variable Type Containers (Datum)
Run-Time Type Information (RTTI)
Service Manager
Heap Memory Allocator (Memory Service)
Factory Service to instantiate user content
JSON Serialization into C++ Objects
Box2D Physics Engine Integration
Raylib (RLGL) Integration
This custom game engine was developed as a solo project during a semester at the University of Central Florida, as part of the Florida Interactive Entertainment Academy (FIEA). The goal was to build a robust and extensible framework featuring resizable variable-type containers, custom Run-Time Type Information (RTTI), a Service Manager, a Heap Memory Allocator, and support for JSON serialization into C++ objects. The engine also includes JSON-based scripting support and a flexible Factory Service capable of registering and instantiating user-defined object types. Third party integration includes, Box2D as the physics engine, and Raylib for the render engine.
After completing the engine framework, I teamed up with three other developers to put it into practice by recreating the gameplay of Rounds, a fast-paced, roguelike 1v1 shooter. Using the custom engine, we implemented core mechanics such as player movement, shooting, health and damage systems, and card-based ability upgrades, showcasing the engine's flexibility and performance under real gameplay conditions.
Making a Game on a Custom Engine
Recreating Rounds
Collaborated with a team of four software engineers to recreate the gameplay of Rounds using our custom-built game engine. Integrated Box2D by developing a custom Physics Service wrapper, enabling collision handling and physics simulation within the engine. Similarly, implemented a Render Service to encapsulate raylib, streamlining sprite rendering and window management. Built additional engine systems as required by gameplay needs, and continuously evaluated engine limitations. Made strategic decisions to either extend engine capabilities or implement practical workarounds to stay within project scope and meet deadlines.