Inspiration

Dreamt of pirates trying to sink my yacht. Getting my revenge nowww. Battleships with minesweeper.

What it does

BattleBoats is a multiplayer game where players control ships using their smartphones that sail across a dynamic sea environment. Players scan QR codes to join a team, and use their phones to sail ships and place bombs on the water, which are hidden from view and explode after a delay if an enemy sails over them. The goal is to outmaneuver your opponents, avoid their traps, and strategically use your bombs to dominate the seas.

How we built it

This is a browser based multiplayer RTS game. Can be accessed through the world wide web.

Game Client

The screen for players built using Vite + React + PixilArt + lots of physics (ew)

  • Vite: Build tool with hot reloading for quick and dirty iterative fixing
  • React: For creating of the playing field and modularization into React components
  • PixilArt: Drawing Sprites
  • Physics: Building the custom game engine in javascript (double ew)

Backend

The networking and controller technology with WebRTC + Websockets + FastAPI + ngrok

  • WebRTC: Real time communication between handheld device and game client for sailing.
  • Websockets: Streaming communication between game clients and backend. Also used for establishing webRTC connection.
  • FastAPI: For implementing server APIs.
  • ngrok: For hosting game server.

Challenges we ran into

Started with an even more ambitious game design involving collisions. Proved too challenging to build a game engine in time so we pivoted.

Accomplishments that we're proud of

Built web hosted multiplayer games.

What we learned

How to design games, make them multiplayer and draw pixel art.

What's next for BattleBoats

  • Introducing new gameplay elements like power-ups, ship upgrades, and unique bomb types.
  • Adding more maps with varied terrains and obstacles.

Built With

Share this project:

Updates