Techniques & Software -- Unity Engine; Prefabs
Inspirations -- Bullet Heaven 3 (Kupo Games); Galaga
A simple principle of games comes to squishy life in this small game prototype: Hit the enemies but don't let them hit you. Prepare to face waves of slime enemies as a little archer or swordsman on your way to defeat the Slime King at the end of the game. But watch out! The slimes won't let you defeat their King so easily, and what they lack in power they make up for in sheer numbers.
The first step of making the game is to figure out how to generate the bullets and ensure they can hit targets correctly. Unity handles the generation by creating a Prefab object, which can be cloned and created dozens if not hundreds of times. At the start, I used some temporary assets like squares and circles, because I needed to find the final art later. Thus, I created a template for the enemy and player bullets that would each fly at different speeds. I added collision to each so that they were destroyed when they hit something. To ensure the game ran smoothly, I also created off-camera walls that would destroy the extra bullets, as they would otherwise fly into infinity.
To make the game slightly more customizable, I gave the player two weapons to use. One that was weaker but faster and one that was stronger but slower. The actual form of the weapons would be decided once the final art was gathered. Similarly, I made three types of enemies: two rank and file enemies, and one large boss enemy. Each had different attack patterns and HP amounts. About this time, I started searching online for the art assets. I would not have the time to make them myself, and anything online would look better anyway.
Importing the art assets was simple enough. Because I had built several Prefab objects and tested most of the systems with temporary art, I was able to quickly fill the game with the required assets. Animations and UI had to wait until the art was finalized, however. One of the final parts to create was a game controller that would spawn three waves of enemies during the game. Each wave was summoned after the previous was defeated, and some nifty code allowed me to quickly generate a wave of enemies. Reusing that function for each wave meant that I could be assured of their position on screen as well as the formation of each wave.