← Projects

Carry the Fire

live

A free capture the flag shooter you ski, in your browser

for
Anyone who misses skiing in Tribes
started
9 October 2026
built with
My brother, who plays it, tests it and sends pull requests
play
Free, in your browser, no download. Discord or guest.
rule
Speed is earned. A clean run gets away, a sloppy one gets caught.

Carry the Fire is a multiplayer shooter that runs in your browser. Ski the slopes, jet over the ridges and fire the disc launcher, in capture the flag matches of up to five a side, or practise your lines alone in the time trial. It’s inspired by Starsiege: Tribes.

A player skiing down a long green slope towards a bridge in the distance

A run down Overpass, from a replay.

  • Speed is earned. The slope pays and a bad landing costs. Holding a key doesn’t make you fast.
  • The chase is the game. A clean run gets away. A sloppy one gets caught, so the defender can win the race.
  • Small teams. Built for two to five a side. No bases, just capping and chasing.
  • Replays come free. Every run is its inputs, so any of them can be played back exactly. The landing page’s video is one of mine.

I build it with my brother. He plays it, tells me what’s wrong, and some of the game is his code. Play it at carrythefire.app.

Stack

Three.js
Draws the world in the browser. No game engine.
TypeScript
The game, the game servers and the lobby, in one codebase.
Own physics
No physics library. Skiing, jetting and the disc launcher are our own code, run at a fixed 60 ticks a second, so a run is fully described by its inputs.
WebSockets
Carries the match. The server runs the real game and each browser predicts ahead of it.
SQLite
The lobby's accounts.
Discord
Sign-in, or play as a guest.
Docker
Four game servers on two small boxes, two in Sydney and two in Chicago.

Build log

  1. Everyone plays the same hero now, in team colours, carrying a torch for the flag. That one came from my brother's pull request.

  2. Two game servers in Chicago for players in the US, reached directly rather than through Cloudflare, which was slower and far less steady from here.

  3. Renamed from Ridgeline to Carry the Fire, with its own domain and a landing page.

  4. Spectators and a second server. My brother's first two pull requests went live.

  5. Light armour only. Straight into capping and chasing, no bases to build or defend.

  6. The rule the game is built to. Speed is earned, never given, and the flag run is a race the defender is allowed to win.

  7. Capture the flag. First match against my brother on the live server. His verdict, "real fun". Mine, the skiing was too forgiving.

  8. Multiplayer. The server runs the real game and each browser predicts ahead of it. A closed alpha went up the same night, Discord sign-in, my brother first on the list.

  9. First commit. By the end of the day it had terrain, skiing, a jetpack, the disc launcher, a flag run against the clock and a first proper map.