Documentation + User Guide
Concept vs Final Game
Concept | Final | Justification |
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.
Station Besieged
Status | Prototype |
Author | Jordan Holloway |
More posts
- TestingMay 28, 2023
- UI and PolishMay 21, 2023
- Game TestingMay 17, 2023
- Presentation and GraphicsMay 14, 2023
- Enemies and InteractionMay 07, 2023
- Basic Level BlockingApr 30, 2023
- Player MovementApr 23, 2023
- Game ConceptApr 14, 2023
Leave a comment
Log in with itch.io to leave a comment.