Break-A-Bot is a game project created in my third year of Breda University Of Applied Sciences. The game was created using a Unreal engine. Break-A-Bot is a top-down roguelike game with procedurally generated level structure, where the player fights enemies with different parts, that dictate their behaviors. After defeating the enemies, the player can pick up the parts from defeated enemies and use them in combat.
19 people (4 Programmers, 9 designers, 6 artists)
The codebase of the tool can be found here. For the needs of this game, I went above and beyond making sure that the level tool would be technically robust enough to handle all of the requests the level designers and environment artists had during the production of the game. The level generation used a similar system to the ones used in Returnal or Path of Exile 2, which created the level layouts by stitching multiple rooms and areas together. This allowed for creation of more granular experiences and bringing them together into coherent levels by the generator at the start of each run.
Example levels generated by the tool with different configurations and rulesets, including levels with multiple floors and varied heights of separate rooms
Example in-game level generated by the level generation tool with props and encounter data
Link to the github repository fo the dungeon generation tool on github.
The second biggest task I contributed to during the project was designing and implementing AI behaviors of the enemy bots in the game: both the normal enemies encountered inside the level, as well as the elite enemies with slightly more complex behaviors and the boss fight, which led to the end of the game. I pushed Unreal Engine's behavior tree system to its limit implementing my own behaviors and decorators, as well as making use of dynamic replacement of subtrees, reaching a great final effect of the fights.
Example fight with simple sword-wielding enemies
Bossfight encounter
Apart from creating the AI and level generation framework, I also spent my time implementing new parts for the player (namely: mines and hammer, as well as several prototypes that never got included in the game), bug-fixing and maintaining existing gameplay feature code, including: player parts, localization, in-game interactions and UI.