Battleship Online

Real-time multiplayer Battleship in the browser — private rooms, server-authoritative rules and one-tap invites.

Role: Game design, front-end, real-time back-end. Stack: React, Node.js, Socket.IO.

The challenge

Classic Battleship only works if neither player can peek at the other’s fleet. In a browser game that means the client can’t be trusted with the rules — and it still has to feel instant on a phone.

The solution

All hits, misses, sinkings and win conditions are resolved on a Socket.IO server, so the browser only ever sees what it’s allowed to. Lobby status, ready checks, salvos and the game-over screen sync live for both players, and a LAN mode lets friends on the same Wi-Fi play without any cloud database.

Outcome

  • Private room codes for one-on-one matches
  • Server-side validation that blocks client-side cheating
  • Live lobby, ready checks, strike history and rematches
  • Invite via WhatsApp, the share sheet or a copied link
  • Responsive boards for phone, tablet and desktop

← All work