Except for the hex grid map, this battleship game is a faithful rendition of a pen-and-paper battleship game that appeared in Hoyle's Rules of the Game.  Unlike many table-top and digital battleship games in which you fire one shot per turn and gets to know immediately if it hits or not, in Salvo, each turn, you get to fire a maximum volley of 7 shots, 3 for the battleship, 2 for the cruiser and 1 for each patrol boat.  You are only informed how many of your salvos hit a particular ship.  You do not know which shots actually hit.  Salvo markers are numbered based on the game turn they were fired.  Any hits will be marked on your scoreboard.  If you hit the enemy's battleship twice on turn1, and once on turn2, you scoreboard will  look like this:  "Battleship [ 1. 1. 2. 0, 0 ]."  The scoreboard will tell you how many times you hit  enemy ships and on which turn, but it does not tell you which section of the ship is hit.  Based on the score pattern, you will be able to deduce the location and direction of your targets.  However, as your enemy sinks your ships, your total salvo points gets deducted.  If you have only the cruiser left, you only get to fire 2 salvos.  The player with at least 1 salvo point left at the start of the turn WINS the battle.

Key Features

1. Hexagonal naval warfare - 11×8 staggered hex grid with smart placement rules (no touching ships. Diagonal placement of ships, which allows for 3 directions instead of just 2.

2.  Dynamic Salvo System - as your ships get sunk, your total salvo shots decreases.

3.  Clean visual feedback - Turn-number markers, optional heatmap overlay, golden sunk-ship outlines, and a dramatic “AI THINKING…” overlay, and accurate scoring system.

4. Tight phase-based gameplay - Placement → Fire Salvo → Confirm → AI responds → Next turn

5.  Built in Python + Pygame - Lightweight, runs great on desktop (Windows/Linux/macOS builds coming)

6.  Built-in AI opponent - computer uses different mathematical model to search and destroy enemy ships, including random firing, monte carlo simulation, heat mapping, parity checking, and pattern recognition.

Current Status – Early Access (v3.1) The core game is fully playable and fun right now with a solid single-player campaign against the AI. The flow feels excellent, but the AI’s temporal pattern recognition still needs polishing, and the UI/layout is desktop-only for now.

Roadmap (What’s Coming Next)

  • Major AI improvements (better pattern recognition and target priority)
  • Full Godot port + mobile-friendly UI for Android phone/tablet support
  • Hot-seat two-player mode (pass-and-play on one device)
  • Online multiplayer (the big dream!), 2 or more players at a time!
  • Polish, sound, more visual effects, and balance tweaks
  • Custom setting to configure your own maps and ships
  • Campaign mode.

How to Play

  1. Place your ships on the left board (R = rotate)
  2. Click on the right board to fire your salvo
  3. Confirm end of turn and watch the AI think
  4. Try to outsmart the heatmap AI!

Controls

  • Mouse: Click to place/fire
  • R — Rotate ship during placement
  • H — Toggle heatmap
  • D — Debug show AI ships
  • Q — Quick restart
  • 1 - 5:  Adjust AI difficulty level

Made by a solo amateur developer in  the Philippines — This is a true passion project. Trying to re-create a beloved pen-and-paper game we used to play back in our college days.  It saved us from boredom due to the hour-long bus commute back home from school.   Every download, wishlist, and Patreon pledge directly helps me keep improving Salvo.

Play the free demo now — Name your own price if you want to support development instantly. Patreon supporters get early access builds, voting rights on features, and their names in the credits.

Thank you for checking out Salvo! Feedback and bug reports are extremely welcome — let’s build the ultimate hex salvo experience together.

 


Download

Download NowName your own price

Click download now to get access to the following files:

Salvo_v3.1.zip 22 MB

Development log

Leave a comment

Log in with itch.io to leave a comment.