Documentation + User Guide


How does Warspite differ from its concept?

There are a few differences between the concept and the final game. Some made for gameplay reasons, and others due to time constraints.

One of the more major ones is that enemies don't have weakspots to deal bonus damage to, as It was hard to balance that feature without making the game too easy, or making them too hard to hit to the point where it wasn't worth trying.

Another concept that was altered from its original intent was ships increasing in size as time goes on. This is still sort of the case as there are two types of enemy ships, one small and one large, the larger ship spawning later on and less frequently. 

The two powerups were also combined in to one, as this made the game flow better, and it meant you didnt have to rely on RNG as much and risk either becoming a total glass cannon or be unkillable and deal no damage to the enemy. the "Repair kit" and "Armour upgrade" were also combined into one prior to this as well.

In the concept document it was stated that the torpedos that can spawn would be unkillable and would just have to be dodged. This was changed to make them killable as it made the later stages of the game practically impossible if there were too many obstacles, the torpedo could not be dodged.

A high score/scoreboard was not implemented due to time constraints, mainly because I missed two weeks of work because of an injury so I had to focus on more key elements of the game.


Feedback Summary

In week 12 I provided a google question form for players to provide feedback on Warspite, focusing on mechanics, balance, visuals and audio.

I already briefly summarised the feedback in my 4th devblog, but to expand on it:


Most testers had similar opinions in regards to what needed to be added and what should be changed. 

The player's movement needed some changes, primarily to rotation. Previously if the player collided with another object, it would have a rotational velocity from the collision, and because the script that rotated the player only changed the rotation, rather than adding a rotational force, the player would permenantly rotate in whatever direction the collision pushed it, unless the player was holding down the rotation key. This was changed by modifying the rotation part of the script to add torque as well as rotate.

The second most common piece of feedback was that the game was too hard because of the amount of enemies and that they had infinite range, and so could shoot the player before the player could see them. This was changed by making enemies spawn less frequently as well as adding a maximum range for when they can fire so they have to at least be on screen before they can start shooting at the player.

I also received feedback that the sound effects were too loud, this was a relatively easy fix to make, as all I did was half the volume of all the sound effects that were being used. 

There were also some bugs present such as objects spawning inside eachother and being sent flying at incredible speeds, which i hadn't yet encountered in my own testing. This was fixed by making it so if an enemy spawned inside another object, it would be destroyed before it could cause any issues.

Other feedback included things like increasing the variety of enemies and obstacles, as well as increasing the map size. While I did make the map significantly bigger, due to time constraints i wasn't able to add any more enemies or obstacles.


Asset List


Sprites:

SmallEnemy - The sprite used for the small enemy ships hull

BigEnemy- The sprite used for the big enemy ships hull

Turret- The turret sprite used by all ships in the game

Defence- Sprite used for pickups dropped by enemies

Offence - Unused 2nd upgrade sprite

ExplosionSpritesheet- Used for small explosions in the game, shell impacts, small enemy destruction

BigExplosion - Used for big explosions in the game. Player death, big enemy death, torpedo explosion

BubbleParticle - Used as the torpedo trail

WaterTile - Used as a tilemap for the background

Shell- Used for cannon shells fired by player and enemy.

TorpedoSprite- Used for enemy torpedos


Images/Art Assests:

Warspite Cover - Used for the menu screens

Game over - Used for the game over screen

Amarillo USAF Font - Used for text and background art 


Scripts:

Spawn Enemy- Used to constantly spawn enemies around the player. 

PlayerMovement, PlayerHealth and shooting - Used to control the players movement and shooting controls, and health.  practicals. Various modified versions also present.

HurtOnCollision,DestroyOnCollision,DestroySelfAndOtherOnCollision - All used at different points to decide what to do when two objects collide. Various modified versions also present.

EnemyHealth, Pursuit, Mover, EnemyShooting - All used to make enemies move, shoot and take damage.

EndGameListener, SceneSwitcher - Used to have menu buttons that change scene, and to show a game over screen if the player dies

Above are all sourced from the in unity practicals

TurretRotation - The script to make the players turrets follow the mouse, with certain areas it cannot rotate through. 

EnemyTurret,EnemyShooting - Scripts to make enemy turrets follow the player and shoot

HealthBar - Used to display the player's health in a more readable way.

Sound Effects:

TorpedoExplosion - Used for when a torpedo hits the player and explodes

EnemyExplosion - Used for when an enemy is destroyed

PlayerDeath - Used for when a big enemy or the player is destroyed

CannonShot - Used when the players guns fire

Scenes:

WarspiteMenu - The main menu of Warspite

WarspiteControls - A Help/Controls screen to explain the game to the player

GameOver_PlayerDestroyed - The game over screen, seen if the player is destroyed

WarspiteMain - The main game scene.

Sources

SmallEnemy - https://opengameart.org/content/sea-warfare-set-ships-and-more (Lowder 2 on opengameart.org)

BigEnemy -https://naval-encyclopedia.com/ww2/uk/queen-elizabeth-class-battleships.php (Dreadnaughtz on naval-encyclopedia.com)

Turret - https://naval-encyclopedia.com/ww2/uk/queen-elizabeth-class-battleships.php (Dreadnaughtz on naval-encyclopedia.com)

Background art (Ship sprite)- http://www.shipbucket.com/drawings/9092 (Karle94 on shipbucket.com)

Background art (Ocean)- https://opengameart.org/content/ocean-background. (KnoblePersona on opengameart.org)

Amarillo USAF - https://www.dafont.com/amarillo-usaf.font (dafont.com, author unknown)

ExplosionSpriteSheet - Sourced from unity practicals 

Offence, Defense, BigExplosion - Made for Warspite by a friend who makes pixel art

WaterTile, TorpedoSprite, Island, BubbleParticle - Self made for Warspite 

TorpedoExplosion,EnemyExplosion,PlayerDeath and CannonShot - All self made for Warspite

TurretRotation- Self made for Warspite

EnemyTurret,EnemyShooting - Self made for Warspite

HealthBar- Self made for Warspite

Scenes all self made for Warspite


User Guide 

In Warspite you will take on an infinite enemy fleet. The more you sink, the stronger you become. Pictured above is the main menu. You can either look at the controls to figure out how to play the game, or dive straight in (Not recommended)


The controls screen shows all the necessary information on how to play. Movement controls, how to shoot, and what an upgrade is and does.

The main screen of Warspite. This is where you will hopefully spend most of your time. You can see a healthbar, and all you need to do now is sink the enemy ships before they sink you. Your turrets will follow your mouse, space will fire them wherever they're pointed.



The game over screen - Hopefully you wont see too much of it, but if you do, you can either return to the menu or try again by clicking on either button.




Additional Feature List:

Custom Art Assets

Personally Developed Tilemap Art - The background titlemap for the ocean is self made (Not amazingly)

Personally Developed Particle Effects - One of the particle effects present (The bubbles) is self made to give the torpedo a visible trail

Sound effects - Self made sound effects are present for a variety of in game events 



UI Functionality

A Restart game screen - If the player dies, a game over screen is shown giving the option to either restart the game or return to the main menu

A Help Screen - On the main menu, there is a controls button which leads to a screen describing the controls, and basic game mechanics.


Advanced Programming Functionality

Enemy NPCs

Enemy Pathfinding

A Scrolling Screen? (Not sure if cinemachine moving around 1 level counts?)

Leave a comment

Log in with itch.io to leave a comment.