Documentation + User Guide


Concept vs Final Game

ConceptFinalJustification
The player can upgrade/heal their ship and select weapons at the end of each level.The player has the same ship stats and weapons between levels.More dev time was required to implement this feature.
The player shares ammo and health between levels.The player resets their health and ammo between levels.Without a method of ship upgrading/repairing it there was not much point in adding this.
A boss enemy that would take multiple stages to defeat.No such enemy exists.More dev time was required to implement this feature.
Three levels where the player would reach the boss then the friendly space station at the end of the third level.Only two levels.More dev time was required to implement this feature.
High damage projectiles shot from off the screen.Asteroids that appear from the right side of the screen.These obstacles serve effectively the same purpose.
Mines that could be shot in order to damage nearby enemies.These do not exist.These were going to be implemented for the third level.
Enemies look different depending on the type of enemy they are.Enemies do have visual swaps of their weapons and may be scaled differently but the ships look the same.More dev time was required to implement this feature.


Feedback Summary

Movement

Testers were happy with the movement. No changes made.

Combat

Sometimes it was difficult to tell when enemies were getting hit. To help with this a hit sound has been added to point defence guns. Enemies sometimes look too similar to the player. To fix this enemy ships and missiles now have a red rectangle surrounding them. Additionally the player's hull and armour bars have had their colours changed to further differentiate the player from enemy ships. I observed that people didn't really use their missiles and testers agree that missile controls were not intuitive. To help with this a help screen has been added that can be accessed from the pause menu or the main menu which explains each weapon and their controls.

Difficulty

Battles are very hard initially. To help with this, the enemy ship AI has been changed slightly. Previously, enemy ships flew off screen when the player got too close in order to stay at their preferred distance. However, when out of the camera space they are programmed to fly back in. This resulted in ships sometimes moving erratically which increased the difficulty of the game. Now enemy ships will flee in a direction that should keep them on screen. I observed that people played on the lower difficulties and still struggled. To improve this each difficulty 'Normal' and below has been made easier. Testers were happy with obstacle difficulty. No changes made.

User Interface

No restart/pause menu. A pause menu has been added which can be loaded while in game using the 'ESC' key. It contains a resume button, a settings button, a help button, and an exit button. Buttons are slightly too small. The button size has been scaled by 1.2x.

Audio

The music stops when switching to settings. To fix this the settings menu is now loaded using the additive mode, which means the music continues and settings can now be loaded from the pause menu in game.

Visuals

Fonts on the title screen do not match the rest of the art style. The font used has been changed to 'Cascadia Code' from the default of 'Liberation Sans'.


Assets

Difficulties

Used to set the difficulty modifiers for the game


Fonts

CASCADIACODE/CASCADIACODE SDF 1 - Used as the font throughout the game

         Taken from fonts inside windows (file location is C:/Windows/Fonts)


Prefabs

Asteroid Explosion - Used when an asteroid is destroyed

Barrier Explosion  - Used when a barrier is destroyed

Explosion - Used when a ship/turret is destroyed

Missile Explosion - Used when a missile is destroyed

Point Defence Particles - Used as the particles for point defence bullets

Sparks Particles - Used when a point defence bullet hits a ship

Sparks Particles 2 - Used when a railgun hits a ship

Main Thruster - Used as the main thruster particles for ships

Missile Thruster Particles - Used as the main thruster particles for missiles

Barrier - The barrier at the start or end of a level

Obstacle Detector - Used to display the warning signs that an obstacle is imminent

Obstacle Spawner - Used to spawn the obstacles

Warning - The obstacle warning sign

Asteroid Large 1/Asteroid Large 2/Asteroid Small 1 - The asteroids that spawn

Debris - The debris patches that spawn

Debris Field - The large debris fields

Ammo Resupply - The pickup at the end of each level to resupply the player ammo

Ship - The player's ship/The base prefab for other ships

Generic/Heavy Missile Boat/Missile Boat/Railgun/Railgun Light - The various types of enemies that spawn

PD Turret - The turrets that are at the start/end of each level

Game UI - The UI used during gameplay

Menu Button - The template for any menu buttons

Weapon Info - The weapon info boxes that are displayed at the bottom of the screen during gameplay

Enemy Missile - The missile that enemies shoot

Enemy Missile Heavy - The large/slower missile that the 'Heavy Missile Boat' enemy shoots

Enemy Railgun Projectile - The railgun projectile that enemies shoot

Missile - The missile that the player shoots

Missile Spawner - Ships use this to shoot missiles

PD Gun - The point defence gun attached to ships

Railgun - The railgun attached to ships

Railgun Projectile - The railgun projectile that the player shoots


Scenes

The different scenes of the game


Scripts

DamageOnCollision - Damages a ship when colliding with this

DamageOnTrigger - Damages a ship when entering the trigger collider

DamageOnTriggerOverTime - Damages a ship over time when within the trigger collider

CircleGizmo - Displays a circle gizmo in the editor

DestroyOnCollision - Destroys an object/itself when said object collides with this

DestroyOnTrigger - Destroys an object/itself when said object enters the trigger collider

Difficulty - Used for creating new difficulties

LindsayMode - Used when the difficulty is 'Invincible', makes the player not collide with obstacles.

HealthPoints - Stores/used to modify the health of something

HullAndArmour - Stores/used to modify the hull and armour of something

ShipHealth - Used to set the health of a ship, damage it, and destroy it if it has zero hull and armour

ApplyTorqueOnStart - Applys a rotational force to an object on start

DoOnDestroy - Calls a unity event when this object is destroyed

DoOnParticleTrigger - Calls a unity event when this object's particle system has particles that have had their trigger activated

DoOnTrigger - Calls a unity event when this object has its trigger entered

DragInOneDirection - Used to slow down the player at the edge of the screen

LookAtPointer - Makes the object face the pointer

LookAtTarget - Makes the object face a target

MoveBetweenTwoPointsCurve - Moves the object between two points based on an animation curve

          Taken from tutorial 8-15

OnScreen - Calls a unity event when an object goes on screen and another event when it goes off screen.

AIMovement - Used by the AI to move

Movement - Moves a rigidbody based on the direction and force set in the script

PlayerMovement - Used by the player to move

ExplodeOnDeath - Spawns an explosion when this object is destroyed

ParticlesOnTriggerExit - Plays a particle system when an object exits its trigger

SetParticleSimulationSpace - Used to set the particle simulation space of enemies/missiles that spawn in

SetParticleTriggers - Used to set the particle triggers of enemies/missiles that spawn in

ThrusterEffects - Used to play thruster particles based on the velocity of a ship

AmmoResupply - Used on the ammo resupply pickup to resupply the player ship

LoadScene - Used to load/unload scenes

ChangeGameSettings - Used to change the game settings

GameSettings - Used to store the game settings

SettingsSlidersDefault - Used to set the slider values in the settings menu to the current game settings

MusicVolume - Used to set the volume of music

PlaySoundOnDeath - Plays a sound when this object is destroyed

PlaySoundOnTrigger - Plays a sound when an object enters this object's trigger

PlaySoundOnTriggerStay - Continuously plays a sound when an object is within this object's trigger

Encounter - Used to spawn a number of enemies during one 'encounter'

Spawner - Used to spawn missiles/enemies

Spawnpoint - Enemies spawn here

SpawnRandom - Spawns a random object at this position

AITargeting - Used by the AI to target the player/player missiles

PlayerTarget - Signifies if this object can be locked on to by the player

PlayerTargeting - Used by the player to lock onto enemy ships

AmmoDisplay - Used to display the current ammo for a weapon and greys out the weapon info box if there is no ammo

CooldownDisplay - Used to display the heat for a weapon and its cooldown if its overheated

HealthDisplay - Displays the hull and armour of a ship

ObstacleDetection - Detects incoming obstacles

PauseMenu - Used to pause and unpause the game

Ammo - stores an amount of ammo of one type

AmmoContainer - stores a number of different types of ammo

MissileShoot - Used to shoot missiles

ParticleShoot - Used to shoot point defence guns

          OnHit method modified from: Triggers module (2023) Unity Documentation. Available at: https://docs.unity3d.com/Manual/PartSysTriggersModule.html (Accessed: 1 May 2023). 

PlayerWeapons - Used by the player to shoot their weapons

ProjectileShoot - Used to shoot railguns

ShipWeapons - Accesses/Fires the weapons of a ship from weapon slots

Weapon - Determines when a weapon can fire/plays sounds for weapons.

WeaponSlot - Stores a weapon

WeaponStats - The stats of a weapon

WeaponType - The different types of weapons


Sound:

Space Drift - Poly Focus Intense - Music during main menu

Hyper - Full - Music during level 1

Terrain - Full - Music during level 2

Above sounds taken from:

Voltz Supreme (2018) "Absolute Space & Sci-fi Music " Free Sample, Unity Asset Store. Available at: https://assetstore.unity.com/packages/audio/music/absolute-space-sci-fi-music-fr... (Accessed: 14 May 2023). 


Railgun Shot - when the player or an enemy shoots their railgun weapon:

Missile Shot - when the player or enemy shoots a missile:

Railgun Hit - when a railgun projectile hits the player or an enemy ship:

Debris Collision - when the player collides into debris:

Above sounds taken from: 

Girardot, O. (2019) Free Sound Effects Pack, Unity Asset Store. Available at: https://assetstore.unity.com/packages/audio/sound-fx/free-sound-effects-pack-155... (Accessed: 14 May 2023). 


Point Defence Hit - when a point defence bullet hits the player or an enemy ship:

Overheated - when the player's weapon is overheated and they try to shoot:

Out Of Ammo - when the player's weapon is out of ammo and they try to shoot:

Point Defence Shot - when the player or an enemy shoots their point defence weapon:

Target Lock - when the player changes their missile target to a new enemy ship:

Obstacle Detected - when the obstacle warning sign appears signalling an incoming asteroid/debris:

Ship Explosion - when a ship, a turret, or a barrier is destroyed and explodes:

Missile Explosion - when a missile is destroyed and explodes:

Above sounds taken from:

Shapeforms (2021) Shapeforms Audio Free Sound Effects, Unity Asset Store. Available at: https://assetstore.unity.com/packages/audio/sound-fx/shapeforms-audio-free-sound... (Accessed: 14 May 2023). 


Sprites

Ammo Resupply - Used as the art for the ammo resupply

Asteroid 1, Asteroid 2, Asteroid 3 - Used as the art for the various asteroids

Enemy Outline -Used for the red rectangular indicating enemies

Hangar Panel, Hangar Pillar - Used as tile art at the start and end of levels

Health Bar - Used as the hull and armour bars on ships

Missile - Used as the art for missiles

PDC, Railgun - Used as the art for the point defence and railgun weapons on ships

Planet, Stars - Background art

Player Ship - Used as the ship art for all ships

Ship - Used in the help screen as art to show a ship

Target - Used when target locking enemies

Warning - Used when there is an incoming obstacle


Tilemap

The tiles at the start and end of the level


Weapon Stats

The stats for various weapons


User Guide

The final name of the game is Station Besieged.


Gameplay

The player must get to the end of each level. There are obstacles to avoid and enemies to destroy. In order to destroy enemies the player has three weapons, point defence, a railgun, and missiles. Point defence is useful for destroying enemy missiles and doing minor damage to enemy ships. Railguns are useful for dealing a large amount of damage to enemy ships. Missiles also do a lot of damage but may get shot down if the enemy ship has point defence.


Controls

W to move up

A to move left

S to move down

D to move right

T for autostabilisation (toggle or hold depending on settings)

LEFT CLICK to shoot point defence

RIGHT CLICK to shoot railgun

TAB to change missile target

SPACE to fire missiles when target is selected

ESC to pause


Game Screens and Game Functions

Main Menu:

Play Button - Go to difficulty selection

Settings Button - Load the settings screen

Help Button - Load the help screen


Difficulty Selection:


Invincible, Very Easy, Easy, Normal, Hard, and Impossible buttons - Set the difficulty and start the game

Back Button - Go back to main menu


Settings:


Autostabilise - Whether you have to hold down T to autostabilise or if it's a toggle

Main volume - Controls volume of the entire game

Music volume - Controls volume of music

Back Button - Go back to main menu


Help:


Back Button - Close the help screen


Pause Menu:


Resume Button - Start the game again

Settings Button - Load the settings screen

Help Button - Load the help screen

Exit Button - Return to main menu


Game:


Health bar above ship - Armour bar, depletes first.

Health bar below ship - Hull bar, once it reaches 0 the ship destroyed

At the bottom - Each of the player's available weapons

  • Number next to weapon picture indicates remaining ammo for that weapon
  • Grey bar behind weapon info (as shown on point defence) indicates how close the weapon is to overheating
  • Red bar and large number (as shown on railgun weapon) behind weapon info indicates how long until the weapon can be shot after it has overheated

Warning icon - Incoming obstacle


Enemy ships are indicated by the larger red rectangles, they have various combinations of point defence, railguns, and missiles. Target symbol (on enemy on the right) indicates which enemy the player's missiles are locked onto, TAB switches this. The smaller red squares indicate enemy missiles. Missiles try to collide with their target. There are also larger, slower missiles that deal more damage and are harder to shoot down.



Ammo resupply - Resupplies some of the player's ammo.


Obstacles:


Asteroids instantly destroy the player


Debris patches deal some damage to the player on contact


Large debris fields deal damage over time to the player


Barriers instantly destroy the player. To get past it the middle light grey section must be destroyed.

Leave a comment

Log in with itch.io to leave a comment.