A top-down arena shooter for the browser. Line of sight decides what you see: walls block vision, and an enemy only shows when it stands in your light. Between matches you build classes, earn rank, and unlock attachments, titles and emblems.
TypeScript, Vite and a 2D canvas. No game engine, and no runtime dependencies.
Development is on hold, but you can play the game in its current state.
The Play screen: public or private match, three game modes, and the party.Create a Class: the loadout, the primary weapons and the resolved statistics.The barracks: service record, combat record, challenges and callsign.
Where a match runs
The server holds the only copy of the world, runs the bots, and sends each player a snapshot sixty times a second.
A snapshot holds only what that player's line of sight reaches. An enemy behind a wall is not in the message, so the fog cannot be cheated away.
A snapshot holds only what changed since the one before it. Two players in a 2v2 cost about 11 kB/s each.
The client runs your own soldier on the same simulation code and reconciles it against every snapshot, so moving and firing feel instant.
The server checks a shot against what the shooter saw, up to a quarter of a second back, so nobody has to lead a target by their own latency.
A match against bots runs the same server in a Web Worker in the tab. Nothing leaves the machine.
Between matches
Eleven weapons, nine attachments, fourteen perks, five pieces of equipment and nine killstreaks.
43 ranks from Recruit to Commander, with challenges, titles and emblems.
Parties of up to twenty stay together from match to match. A matchmaker finds public matches, and bots fill every slot that no player takes.