Astrobuster is a cosmic, kinesthetic, 2D asteroid smashing game. I built it as a solo project for a studio class. My objectives going into this project were to put all of the skills I had learned during my time at Champlain College to the test by taking an idea that inspired me and carrying it through to as polished a state as I could reach in the time I had. The game was built over the course of three months, using Unity 2D, and was entirely self driven and directed, and all assets, scripts and design were created by me alone. I made sure to enjoy the development process, as I had total freedom to design the game I wanted to, and made the most of the opportunity by focusing on time management, planning, and self accountability. By the end of the project, I was filled with the warm glowing feeling of carrying my own idea from concept to playable, responsive reality.
In the game, the player navigates a ship locked in a square arena into which dangerous asteroids are pouring, and ricocheting around the environment. The player must fly carefully around these asteroids to avoid taking damage, and use their special boost in conjunction with several abilities and powerups to destroy the asteroids and score, in hopes of beating the level by scoring high enough. The game is designed around the combination movement/offensive boost ability. When triggered, this ability instantly gives the ship a rapid burst of momentum in the the direction the player is aiming, smashing any asteroids in the way. The game's controls are designed for an Xbox controller, in a twin-stick format, with the left stick controlling movement and the right aiming the direction of the dash and certain abilities. Smashing multiple asteroids in a single dash results in a combo, which grants bonus points. The player can also select one of three offhand abilities to use during the game: Missiles which are limited in supply but can destroy groups of asteroids at range, a defensive shield which wards off damage, and a projectable beam which freezes asteroids in their tracks. additionally, the player can grab powerups which freeze clusters of asteroids, grant increased dash recharge speed, or make them ephemeral.
The core aspects of design that I wanted to focus on while building this game were Kinesthetics and feedback. I wanted the game's mechanics to feel solid and responsive, particularly in regard to the movement and boosting mechanics. since the core gameplay loop relied on the player's ability to dodge asteroids and reliably dash through them, I had to make sure the movement was smooth, and the player could change direction rapidly but smoothly, while still bouncing off objects in a realistic way. I also had to make sure momentum could be instantly halted and redirected for the boost to function as intended. I made use of Unity 2D's rigidbody drag effects to achieve these effects, cranking up and down the drag as needed to achieve the proper movement responses. I also had to pay special attention to how to give the player feedback on what was happening, especially with regard to scoring, abilities, and damage. Wherever I could, I concentrated feedback on the ship, as that is where the player would be most often looking, supplementing the border UI wherever possible. Another interesting challenge for this game was level design, making the arenas distinct in a way that was directly evident to the player. I chose to approach this by creating a series of large moving obstacles in each level which, while harmless to the player, stirred up the bouncing asteroids in a way that enhance the chaos and thinking factors of each level.
While working on Astrobuster I learned a lot about personal time management and thinking about a games player experience while building it. I was solely responsible for realizing every aspect and asset of this game, and consequently, I needed to plan my time and tasks carefully in order to make sure progress was moving at an acceptable pace. I made use of agile planning methods in my production, taking advantage of my schools agile project server's task boards and time estimation systems to accomplish my planned features through a series of weekly sprint cycles. This gave me the opportunity to practice agile development methods in a self-managed environment, granting me enhanced confidence and familiarity with those methods. While this project was personally directed, I still wanted to make sure I was creating a play experience which was producing the intended effects in my player base. I tackled this by making sure my goals for the projects gameplay were clear: feedback and kinesthetics. With these clear goals in mind, I was able to gauge my design decisions by them to make directional decisions about the content I was producing to create the player experience I was after. The success of this method was evident in my QA results, with testers routinely reporting satysfaction with the mechanics.