Data-driven engine written solo in C++ over a semester
Later, worked in a team of 6 to make a game in engine in 1 month
Custom memory allocator, hierarchical game objects, object serialization with JSON
Wrote extensive Unit Tests for all engine features
Made key game features as well as individual "pets," or characters
Code available upon request
As part of my graduate program at FIEA, I solo developed a custom, data-driven game engine in C++ over the course of a semester. Our engine utilized a custom Heap Memory Allocator with support for multiple heaps and robust tracking to assist in debugging. It was built around hierarchical game objects with runtime type information (RTTI), which were serialized from JSON.
Other features of the Engine were a factory service, and a resizable, variable type container called Datum.
Every feature of the engine was extensively unit tested to ensure correctness.
After making an engine, I teamed up with a group of 5 other programmers to make a replica of an existing game in our engine over the course of three weeks. Our team chose to make Super Auto Pets, an autobattler developed by Team Wood Games. We implemented a render service utilizing Raylib for our graphics rendering and window management. My role on the team was in helping architect the structure of a pet. Each pet has a condition to trigger its ability, an ability, and targets for that ability. I developed many of the conditions, abilities, and targeting systems, as well as many of the pets themselves. As a team, we were able to implement all 60 pets in the original game.
I made much of the functionality that was relegated to a single pet, namely their ability to level up and deal and take damage. I additionally created a Party Manager system to keep track of the player and enemy pets, and determine which abilities were permitted to targets which pets. I also created a perks system and the perks, which tweaked the way pets dealt and took damage. I assisted in adding features to the shop screen, though I was not the developer primarily responsible for it.
Our method abilities triggered by conditions created Rube Goldberg machine style scenarios where chains of pets could all influence and target each other, even though we only ever created single-input single-output pets. That is, our system was robust enough to created complicated interactions with only simple behaviors. Code available upon request: (contact webbufcs@gmail.com with a github username)