Assignment #3: Astral Attackers

The assignment for this week is to fill in the missing pieces with our Astral Attackers game flow, adding some additional components, and customizing it to your own preference.

There are six required component parts to this assignment, and four optional components. Completing the the required components will earn a grade of B, and completing the additional challenges will raise that accordingly.

Required Items

ITEM 1: Customize the Game – [REQUIRED]
Customize the look and feel of your game. Expand your playing field to include at least 3 rows and 6 columns of attackers (you can make more if you want). If you want to make alternate enemy types, go for it! Experiment with the background, the scenery, sounds, etc. This should not look like the version we have in class. IMPORTANT: Don’t forget to choose a new Font for your UI.

ITEM 2: Build the App / exe – [REQUIRED]
This time you will submit not only your zipped project folder, but also the zipped executable for your game. For Mac users, this means submitting a zipped version of the “.app” object. For Windows users, this means submitting a zipped version of the “.exe” file, along with the support files and folders that Unity will publish.

ITEM 3: Complete the Missing Parts – [REQUIRED]
Some aspects of our game flow are not yet complete, such as the enemy touching the ground. Others are unresolved questions like “what happens when a bomb and a bullet interact”? Design and implement your solutions to these.
a) Player Object Destruction and Respawn
b) Detect and handle “all enemies destroyed” (recommend testing after each enemy kill)
c) Detect and handle “enemies reach ground” scenario
d) Game Over (win and lose states)
e) Bullet / Bomb Interaction: Decide if they pass through each other or if they destroy each other and implement.
f) Bombs destroy when contacting “ground”
g) Enemy coroutines stop when we leave “playing” state. Player object cannot move outside of “playing” state.

ITEM 4: UI: Score and Lives – [REQUIRED]
Display the current lives remaining and score on the top of the screen, as per Figure 2 below. These should update any time a scoring event occurs or a player life is lost or gained. Use a font that is not Arial.

ITEM 5: Shields (one-shot) – [REQUIRED]
Add “shield’ blocks above the player to protect them from enemy bombs. A single block shield should be destroyed after one hit. (for instructions on multi-block shields see the optional section below)

ITEM 6: Enemy Advance Sound – [REQUIRED]
Enemy should make a noise upon each step in the “advance”. This can be the same noise. (See the alternating noise bonus in the options below)

OPTIONAL ITEMS

ITEM 7: Drop and Catch Extra Lives – [OPTIONAL]
Have the occasional 1-up object appear and let the player gather it. Method of interaction is up to you – you can shoot it, or catch it as it falls, or have it fall an remain on the ground for a moment. When the player collects it, their lives remaining should increase by 1. Play a happy sound so that the user knows this has happened.

ITEM 8: Advanced Shields – [OPTIONAL]
Make your shields out of individual smaller blocks that destroy when they are touched by a Bullet or Bomb. Use this to create the classic “shoot through the shield” strategy of Space Invaders.

ITEM 9: Alternate Enemy Sounds – [OPTIONAL]
Instead of repeating the same sound at each enemy advance, play two or more alternating or sequential sounds, at the rate of one per step.

ITEM 10: Enemy Speed Increases as Numbers Decrease – [OPTIONAL]
As enemies are destroyed, their rate of advance should increase (that is, the time between steps should decrease), making them become a faster threat as they approach.

Grading will be done as follows:

All Required Items (Steps 1-6) :  B

All Required + 1 Optional :  B+

All Required + 2 Optional:  A-

All Required + 3 Optional:  A

All Required + All Optional: A+

The project is due by Friday (6/9) @ 11:59pm in the Assignment 3 folder that you will create in your submission folder on Box. Create a compressed (zipped) folder of your project directory, and a compressed (zipped) version of your application or executable and support files. Submit these two items to the Assignment 3 folder on Box

Figure 1: Screen Layout
Figure 2: Game Flow diagram
Red indicates paths not yet constructed.
Yellow indicates paths that are partially implemented.