Polish and UI


With the core gameplay now working, it was time to add a user interface, and incorporate a proper gameplay loop. At his stage, the goal was to create a minimal UI, that allows the player to start, pause, and replay the game using the start button on the controller. Additional UI would of course need to be added as new features, such as gameplay modifiers, are included. I started by adding a Title Screen, with “PRESS START” as the only menu option. Then a Game Over screen that displays the winning player, including an option to re-start the game. Finally, a Pause screen was created to temporarily suspend the game. Each UI element is overlaid over the current scene, to allow for gameplay continuity.


Adding functionality to each of these overlays was complicated by the requirements of local multiplayer, with each person needing separate interactions with the UI. Thankfully, the Input System contains a UI input module, that separates the core game controls from those used for UI input, as well as the ability to add multiple event systems to the scene, each controlled by a separate player, as is necessary to allow for either player to start or pause the game. To implement this, I wrote a game manager script that handles manipulation of UI elements and consolidated it with the player spawning script created previously.

A HUD showing each players health, current power-ups etc. was omitted as it added unnecessary visual clutter to the scene and could detract from the gameplay. Instead, the plan was to use subtle visual and auditory cues to suggest things such as the hull integrity of the ship, or whether their hyperdrive is still in cooldown, for example. Unfortunately, many of these effects were not incorporated before the alpha release of the game and are a priority feature for further development.