
Designing the Killer Wave game
This will be our prototype/demo for a futuristic classic side-scrolling shooter, where we get to power up the ship and destroy the enemies that come at the player in a killer wave! We have spoken about design patterns and solid principles, and we are going to examine them in more detail, including all of the six core objectives for the Unity programmer exam. We will go through structuring the game, breaking it up into a framework of segments. We need to understand the relationship between each class and know how to expand our code without it upsetting what we've already written.
We will cover particle effects with an environment of stars whizzing past and ship thrusters with multiple particle colors. We will animate enemy ships and use Unity's own API to animate our environment scene. The list is quite long, but if we go through this project, we will not only be ready tackle the Unity programmer exam, but we will also be ready to expand on this project and take on other projects with the correct approach; so let's check out the brief for making Killer Wave.
Game design brief
Title: Killer Wave
Genre:Side-scrolling shooter
Platform:PC/Mobile
Target audience: Age 10+
Game concept: In space with enemies rushing past the player. Players need to shoot and destroy as many enemies as possible within a limited amount of lives before the end of the level. Enemies come in two forms—wave and flee. The third level will feature a large flying-robot-looking boss that the player will chase off.
Game flow and mechanics: The player will be in a small spaceship that can be controlled with the keyboard/joypad cursor controls and fired with the CTRL or Command key from its position and can travel right. The level will end when the player has traveled to the end of the stage from left to right.
Constraints: The player has three lives when the game is not connected to the internet. The player will be contained within the screen boundaries.
Visuals: HUD—in-game score, in-game lives, game title, level title, game-over title.
Enemy wave: Featured in all three levels. These enemies will be instantiated to travel in a sine-wave pattern moving at a slow rate from the right to the left of the screen. The enemy will fly independently or within a group of the same enemy type, creating a trail.
Enemy flees: This enemy will be placed in dotted areas of the third level. Their behavior will move away from the player if in range. If the range is lost, the enemy remains still. If contact is made with the player, the player will lose health and the enemy will die.
Enemy boss: The boss is seen during the third level and greets the player, only to then zoom off out of the screen view with the player automatically chasing them.
We now have a taste of what the game will be like. As a programmer, we need to think not only about how the game is made but also how to expand on it. We need to think about how to structure the levels and how we structure the enemies. How do we do this? Do we need to consider changing the design of each level on-the-fly without slowing down development? If you can think of the surroundings of how a game is going to be made and what parts need breaking down, you'll save yourself a lot of time in development. We are next going to talk about the structure of the game.