ZEPPELIN RUSH

ROLE
Core Engine/Tools Programmer
Producer
DESCRIPTION
A 2D "Tower Offense" Game made in a Custom Data-Driven C++ Game Engine. This project took place over the span of a year. Currently the team of Artists, Designers, Programmers and a Sound Designer are making the final touches for a release to Steam!
YEAR
2022-23
GENRE
Tower Offense
Language
C++
PLATFORM
Windows


Core Engine
Why Data-Driven?
A Data-Driven Engine is integral to rapid integration. It allows the designers to modify assets without recompiling the engine.
Below is an example asset in JSON. JSON is made up of objects, keys, and values. We used JSON because it is human readable and. Due to the time constraints of the project, a well formatted JSON file, for each object, was the next best thing to an editor GUI.
This is a snippet from the Sprite Source Manager - essentially what loads and manages the textures in memory. The Build method has three instructions
-
Make sure the texture isn't already in memory
-
If not, read a JSON associated to the art asset
-
Store the new SpriteSource object containing the data from JSON
Tools
IMGUI Custom Tools and Features
Gameplay
This is a snippet from the Tower Behavior header file. These methods organize the results of actions. Their purpose is very literal to their name. In a proper system, these methods would be assigned to events. Due to the nature of the project, an Event System wasn't a priority. In future projects, such a system is a must have.
Here is the do_attack method from the mentioned header file.
As the name implies it attacks the given target, once again a few main instructions.
-
Check if the object can attack
-
Apply damage to the target
-
Trigger any audio/visual effects