Shooty Space

Shooty space is a small shoot-em-up I made in 5-ish days for the Search for a Star competition round 2. It was made for the Windows Universal App Store and runs on windows 10 pcs and tablets/phones. It can be downloaded from the app store following this URL: https://www.microsoft.com/en-gb/store/apps/shooty-space/9nblggh4qhrr

The game was made in Unity from a provided game template. I spent most of the time improving and polishing the gameplay systems, where I added various screen effects to make destroying enemies feel more satisfying, adding particle effects as well as tweaking the movement animations and general feel of the controls.

I also implemented the enemy AI system as an expandable FSM, where different enemy movement patterns can be constructed by assembling a set of defined states. The system can be easily expanded by adding more states, as they are completely independent from one another, and more AI behaviours could be defined by combining different states into a behaviour set.

Furthermore, I spent a bulk of the time working on the difficulty curve, balancing the power of weapon upgrades and the enemy spawn counts in an endless shooter type of game. I used an L-grammar system to take in a difficulty number (for example, player score) to generate new waves of enemies in a random, but progressively more difficult manner.

Finally, I spent some time optimising the performance of the game such that the FPS stays constant, and no new memory allocations are made during gameplay. As a result, most of the CPU time is spent idle each frame, which is fitting for a very basic game such as this, and the memory usage remains constant.

The game has a few very notice-able shortcomings as well, which resulted in the lack of time remaining in the competition and me prioritising gameplay systems over, say, UI or graphics. I’ll list some of the shortcomings below.

Gameplay:

  • Enemies should really be assigned different colours depending on the enemy “type”.
  • Player bullets do not destroy enemies if the enemy has just spawned a bullet.
  • Player shield capacity being reflected in transparency should be a biased distribution, as 80% alpha and 100% alpha looks virtually the same.
  • The game should probably become more difficult quicker, since for an arcade game aiming at high scores, it probably takes too long for the game to get difficult, meaning subsequent plays can get repetitive before the challenging part begins.

UI/Menus:

  • The game desperately needs a tutorial page at least, as currently all instructions are only written up on the app store page.
  • The game needs a main menu with buttons.
  • The game needs a HUD that’s not solely comprised of text, a pause button and some form of going back to the main menu.

Audio/Graphics:

  • The game has no audio. Since this is a released game, I couldn’t just steal music/SFX for it, but there are bound to be some free sound effects online that I could use.
  • Blocky art style. This is partially intentional, since I wouldn’t want to spend time doing art for a programming competition. However, the game would benefit from some post-effects such as Glow. I’ve briefly tried to apply it to the game, but found that getting the Unity Glow post-effect to work as I want it to was taking too much time, and balancing priorities I figured that the feature is too time expensive.

External systems:

  • The game would greatly benefit from an Online Leaderboard plugin of some sort, as the point with high scores nowadays is often competing with your friends or other players online.