Rougelite Missile Command

Made for: ARU 1st Year – Semester 1

Duration: 3 Months

Engine: Unity 5.6.2f1

Language: C#

Position: Solo

Brief:

“Create a Missile Command or Pacman “clone” in Unity.

Note – There are no marks for visual presentation but visual feedback is considered.”


After creating an almost exact copy of Missile Command in functionality alone, I had plenty of time left to adapt it into a different format. I thought turning it into a “roguelite” game would push me to gain experience across many areas of Unity I had yet to explore. My priorities for this project were UI(menus and inventory), Boss design, a loot system, audio, particle effects and animation.

The player progresses through 3 zones each with more waves, enemies and rarer loot. At the end of each zone is a unique boss. If a turret is destroyed, it gets replaced at the end the current wave and new bases to protect are provided in each zone. If all the bases are destroyed at any point, the game ends.Gameplay.gif

Item drops / Inventory system

When enemies are destroyed they have a chance of dropping an item, the rarity of which is determined by how far into the game the player is. These items can be equipped to turrets in-between waves and provide benefits such as reload speed, magazine size and explosion duration. Rarer items have more stats attached to them that provide bigger bonuses. Collected items are stored in an inventory where they can be moved and assigned to individual turrets.Inventory.gif

Bosses

The 3 bosses I designed each have different weak points and get progressively harder every time they take damage.

The first boss is intended to test the player’s use of ammo. It initially fires basic then erratic missile types before charging up to release many missiles at once. This is when its weak spot is revealed which the player must hit 5 times to cause damage and stop the attack. If the player is not careful, they could be stuck reloading their turrets while the boss charges up. This becomes more important as the boss releases more missiles as its health gets lower.FirstBossFight.gif

Boss 2 attacks in a similar fashion but splits into four pieces to reveal its weak point. Only one piece can be damaged and is marked accordingly. The player has to remember where it went and prepare for its appearance while receiving fire from the other pieces.SecondBossFight.gif

For the final boss I wanted to create something similar to the first two but with a more high stakes climax to end the game. The first phase is similar to the first boss where missiles are fired from each hand then one of them charges up, revealing a weak spot.ThirdBossFightPt1.gif

Once each hand is destroyed, the boss unleashes many missiles at random then rains a volley from the top of the screen. For a final attack it creates a huge weak point that requires 15 hits to clear. If undestroyed, the resulting attack is almost unavoidable.ThirdBossFightPt2.gif

Random Terrain

To make each play-through more unique I designated points that the turrets and buildings will possibly be assigned to. A mesh is then generated to follow those points with a bit of noise added to make things more interesting.

Sound

To create the 56 sound effects in the game I used BFXR – a web based version of SFXR that has added functionality. Some of these were then modified using Audacity and FL Studio. I assigned them to specific mixer groups in order to duck their volumes according to priority. Some effects are also pitch shifted according to some values like the firing sound based on the ammo left in that turret.

Visual Feedback

I spent a great deal of time on the particles and animation used by the turrets to make firing, reloading, hitting enemies and taking damage feel responsive. I also employed the use of frame skipping and screen shake when explosions and impacts occur.


All the visual assets were created using basic sprite shapes or in Photoshop. No external tools were imported for this project.