Nerd For Tech
Published in

Nerd For Tech

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.

KA-BOOM!

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/.

space-1up-power-up is my jam!

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.

Sneaky!

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:

Those turrets are hard to hit, and they hit hard!

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!

--

--

--

NFT is an Educational Media House. Our mission is to bring the invaluable knowledge and experiences of experts from all over the world to the novice. To know more about us, visit https://www.nerdfortech.org/.

Recommended from Medium

What companies and start-ups depend on Elixir in production?

Lakehouse, it’s evolution and Implementation

Abstraction in python is the concept of object oriented programming, where user is unaware the…

HackerRank Software Engineer Intern: My Interview Experience

Gewinn indi rubin kupferrot Ring suppiler l-1in de 1415

Processes vs people

What Are Microservices ?

Creating an ATM Simulator to Demonstrate the Practical Application of Dynamic Programming

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Micha Davis

Micha Davis

Unity Developer / Game Developer / Artist / Problem Solver

More from Medium

Day 95: Pushing Objects in Unity to Complete Puzzles

Journal 142 — Unity Project Development, 2.5D Shooter

Why you should use Unity’s new input system

Creating an Audio Manager in Unity