Burnout Buster
2D rogue-like game! | | Oh no! The burnout is setting in! Can you stave off the executive dysfunction demons and get out of the burnout?!
Overview
Summary: This is a rogue-like PC game where the player has to fight off waves of enemies for as long as they can. The main mechanic of this game is a combat combo system that performs different attack moves based on the combination of buttons that are pressed. Pressing the left arrow key once triggers one attack while pressing it twice in a row will do a different one.
Tags: C#, MonoGame, Version Control (GitHub)
Duties
Created pitch documentation and development plan before commencing development.
Wrote and implemented an input buffer system to facilitate performing combat combinations.
Wrote and implemented a custom collision system.
Utilized GitHub Issues and milestones to manage project goals and tasks.
Wrote and implemented a game management system to manage the different states of the game as well as Start and End Screens.
Wrote and implemented a custom UI system to allow objects to display the necessary data in the HUD during gameplay (player health, number of enemies remaining, current wave number, etc).
Maintained a running development log detailing the progress made during each work session and the reasoning behind the architectural decisions made.
Development Highlights
Combat Combo System
The combat combination system relies on an input buffer that collects and processes the player input.
Whenever there is input, the game adds that input to the input buffer. An analyzer then checks that buffer to see if the combination of inputs currently in the buffer corresponds with an attack command.
If the inputs do correspond with an attack, the player object will then be triggered to perform that attack.
The log outputs (shown in white text) in the accompanying video shows the output attack commands.
Custom Collision System
Using MonoGame Extended’s collision system as a jumping-off point, I wrote and implemented a collision system that is better suited for this project.
Since the enemies hone in on the player’s location and are only off-screen if they are disabled (and returned to their object pool), I could use a more simple data structure to house and update all the objects that collision needs to be checked for.
This is shown by the red squares around the characters in the accompanying video.
Writing this custom collision system also allowed me to have collisions pass through the object that is being collided with in order to execute attack logic on that object.
I was also able to implement hitbox collision as a part of this custom collision system.
This is shown by the yellow square around the player character in the accompanying video.