This week, I offer to you: Salvo! This probably will be my last game for a while. I do need to start writing the course. Mad props to one of my best friends, Solar, for drawing some amazing ships for me. Have fun!
Play-through video:
Use the following URL to import the code into MakeCode Arcade: https://github.com/robo-technical-group/salvo
Multiplayer is local; JACDAC is not currently supported. Hardware hates this game right now. I’ll open a separate thread on that. It works on hardware, now, too! (URL has been updated with version 2.1.)
More info on the to-do list in a later comment.
Rules
If you are familiar with Milton Bradley’s Battleship, then Salvo! will be familiar to you. Players first place their fleet on their own boards. Then, in each round, players select locations on opponents’ boards to send torpedoes.
In each round, a player can fire as many torpedoes as there are ships in the fleet. Each player starts with seven ships, so players start with seven torpedoes per round.
When a player’s torpedo hits an opponent’s ship, the hit is registered with all players. Similarly, when a ship is sunk, all players will know about it.
The game ends when one player has eliminated all others, or when no players have ships remaining. (Yes, a draw is possible.)
Players should keep their fleet locations secret. Shot selection also should be done in secret, although players can form alliances if they wish. Thus, when there are multiple human players, each player should be permitted privacy when operating the game.
Fleet Configuration
Standard Salvo Fleet
Quantity | Ship | Size |
---|---|---|
1 | Aircraft Carrier | 5 |
1 | Battleship | 4 |
1 | Cruiser | 3 |
2 | Destroyer | 2 |
2 | Submarine | 1 |
TODO
- [ ] Improve the AI (refer to function
takeAiTurn
). - [ ] Allow for randomized turn order each round (refer to function
setTurnOrder
). - [ ] Allow player to select fleet type used in the game.
- [ ] Add an option screen.
- [ ] Modify global variable
fleetStyle
.
- [ ] Add JACDAC support.
- [ ] Allow players to choose a randomized fleet placement (difficult).
- [X] Add legend to shot selection screen. (Done - version 1.0.)
- [X] Give option to show player boards at the end of the game. (Done - version 1.0.)
For compatibility with MakeCode Arcade home page
I’ll edit this post as updates occur.