- Basic penalties have been made for out of bounds and collisions
- RaceServer packages and sends BoatState messages for each boat
- ServerConnection routes BoatState messages instead of dropping by default
- VisualiserRaceCommandFactory produces BoatStateCommands
#story[1291]
- Added new MessageType.BOATSTATE enum to support new message type
- Modified EncoderFactory and DecoderFactory to support new enum
- Verify that original and decoded messages match
#story[1291]
Spectate mode basic
Client can now select spectate when connecting to a race.
- The "Join game" button has been split into "Participate" and "Spectate".
- Selecting spectate should join the game, but not assign a boat.
- Spectator cannot control any boats, or have an effect on game.
- Can spectate a game even if it is full.
See merge request !49
Boat color and speed
- Boats are colored by their assigned color.
- Boat name is displayed in lobby.
- Boats don't move quite so fast.
See merge request !50
- Modified View3D to index subjects rather than shapes by source ID
- Enforced one collision per boat on server to reduce rendering load
- Changed collision radius to less than bounce radius
- Fixed game-breaking null command bug
#story[1195]
D and A
D) As user I wish to play on a modern day 3D view
Description: The current base of the game is run on a 2D dot and line canvas, this will be overhauled and replaced with a 3D view of the game.
Acceptance Criteria:
- Boats, and markers in the race are now 3D.
- Sea has a surface.
- Race runs and is reflected on the 3D view.
- Skybox must be present.
- Boundary must be shown (2D or 3D)
- Annotations do not need to be shown.
Tests:
- When the FXML's are split make sure that the race still changes panes to reflect each stage of the race, prestart, racing, and finish.
- The boats headings on the 3D models are the correct orientation (if they aren't facting forward on load please tell Fan-Wu as this should be an issue with the stl file).
- The camera is "fixed" for now.
- The base pane of the race is a stack pane so we can stack an annotations layer, or control layer, etc in the future.
A) [V] As a player I would like for the style of the application to be informative
Acceptance criteria:
* The direction to the next mark is shown in 3rd person view
* The next mark to be rounded is highlighted
* Player is notified with a sound effect when the mark is rounded
* Collisions are made clear and give visual and audio feedback
* The score table overlays on the race and does not affect scaling
See merge request !46
Wind arrow direction 5
This should fix the wind arrow direction.
The polars were actually backwards so wind was being simulated with: into wind = faster, away from wind = slower.
#### A.C:
- Downwind means the boat's bearing is aligned with the wind arrow.
- Upwind means the boat's bearing is facing directly into the wind arrow.
- Pressing the upwind key should turn the boat in the upwind direction.
- Pressing the downwind key should turn the boat in the downwind direction.
- Facing upwind should result in a boat speed of roughly 0kn.
- Facing downwind should result in non-zero boat speed (roughly 14kn with 12kn wind).
Fixes#51
See merge request !45