The Game.
This Battleships game came about mostly because I wanted to test the capabilities of my Multiplay Solution.
The game incorporates a number of features besides the networking challenge, but all of them work networked aswell.
For the game's controls I wanted to, as close as I could, mimic World of Warships' controls.
Whenever a shell you fired hits an opponent, you get notified of how much damage it dealt.
Shells can break certain parts of the ship, like the turrets, if a turret break it won't be able to fire anymore.
Gameplay (with video).
I recorded a small video of me and my friends playing the game.
Everyone is connected to a singular server which I was running from home.
We are able to see eachother move, rotate our turrets, and fire shells in real time (with a slight amount of lag on some actions).
In the video you can see me being shot at, and then returning the favour to my friend, with at the end of the video, indicator showing up telling me how much damage I dealt to him.
The Ship.
The ship consists of a number of parts and components work independently and together to allow the play to control the camera, ship and turrets freely.
Each different part of the ship has it's own colliders, which are used to deal damage to specific parts of the ship.
Each part can track it's own health, and when reaching 0, can break.
Each part also has a modifier for how much damage it takes, shells deal less damage to the turrets and Super Structure, but huge damage to the Citadel.
There is a track running around the ship which is used as a "rail" for the camera, this way the camera can get as close to the ship as possible, but will never clip through it.
The camera can use the "rail" in 2 different ways depending on whether the player is in "aiming" mode or "free look" mode.
The ships movement, turret rotations and fired shells are all syncronised over the network.
Capture Points.
Capture points are a way to win the game.
If a team has more ships in a capture point's radius than any other team, they will slowly gain points.
When a team reaches the maximum amount of points set for the game, they win.
The behaviour of these Capture Points is performed on a single client's game, the host client.