Building a Minimum Viable Product with Unity and C#, pt. 3
Placing the final pieces in the puzzle
I started this series with the goal of sprint developing the minimum viable product for my developer certification project in just three days, leaving me two days to worry over polish and extra features. I am here to tell you I failed to finish… the last 3%. Which is actually pretty good, right? I should be able to wrap up that last 3% this morning.
So two things are missing: the UI and the animations for the Final Boss’ final attack pattern(s). Let’s take a look at everything else.
Special Effects
I started the day by piecing together some special effects. Notably: explosions.

The enemies and player each have their explosions preloaded as child objects and placed across the body of the object. Their sprite renderer is empty by default, and the sprites for the animation are loaded in the animation frames. The explosion is triggered with the following:

The object keeps a list of all its explosions, and triggers them on death. EZPZ.

I also added audio components to the enemies and player, and downloaded some fun sound effects from https://freesound.org/.

Also I added thruster animations and powerup obtained animations for the player.

So, when we accelerate or decelerate, the thrusters look like they’re doing more/less work.

And along with the upgrade animation, I added powerups to the game that will increase the strength of the weapon (as well as increase the number of hits the player can take.

Mini-Boss Encounter
Next thing on the list was to make a mid-level mini-boss.

This baddie has six turrets which rotate to cover the field in a spread of projectiles as the enemy uses the cover of off-screen to repeatedly strike and then retreat.

To make sure the timing was right for the fire of each volley, I used animation actions to call a FireVolley() script in the MiniBoss class.

Boss Encounter (part 1 of 3)
This is where I ran out of time for the day. I really wanted to record all the animations for this, but I made the prudent decision to prioritize sleep instead. Hear, hear for healthy choices!
Anyhow, the Final Boss will happen in three stages. In the first, the bulk of the dreadnaught hovers safely off screen:

Three turrets track the player position with more accuracy than the minions or the mini-boss. These turrets also have the same strength levels as the player, so their blasts start out as a burst of three. They don’t downgrade with damage like the player does — though that may change as I try to balance out the encounter.
The rest of the plan is pretty simple: once the player defeats these three turrets, they’ll face another BIG turret that fires exotic projectiles. Still, the bridge of the ship will stay behind the safety of the edge of the screen. Finally, when sufficient damage has been done to the big gun, the rest of the ship will be revealed and the player can strike at the bridge (which sports a few more turrets). After destroying the bridge the whole ship will go down in flames and the win game screen will appear.
So, finishing that encounter and building out the UI are the last two elements of my Minimum Viable Product. Tomorrow I’ll show you the completed game, as well as whatever additional features I have time to implement today. And then on Monday we’ll recap the whole project and I’ll show off the bells and whistles I added on Sunday.
Thanks for reading!