← Back to Projects
PROJECTIn Progress

TAC: Remnant Run — Arena Collapse

A browser-based multiplayer arena game built for a game jam — real-time combat in a collapsing arena, powered by WebSockets and Three.js.

Game DevelopmentMultiplayerWebSocketsThree.jsNode.jsGame Jam
Date2026-04-15
CategoryGame Jam
StatusIn Progress

Overview

TAC: Remnant Run is a browser-based multiplayer arena game I started during a vibejam. Players drop into a shared arena that collapses over time, forcing confrontation in a shrinking space. The goal was a fast jam-scale build that still respected clean multiplayer fundamentals.

How It Works

The game runs on a single Node.js server that manages multiple rooms, each holding up to eight players. Clients connect over raw WebSockets, render with Three.js using procedural geometry (no asset pipeline), and use an HTML/CSS overlay for the UI.

State is authoritative on the server. Clients send inputs, the server simulates and broadcasts snapshots, and the client interpolates. JSON for jam speed, with MessagePack queued as a later optimization path if bandwidth becomes a problem.

Design Choices

  • Raw WebSockets, no abstractions — I wanted full control over the wire format and no magic reconnect behavior hiding bugs
  • Procedural geometry only — zero asset load, the entire game fits in code
  • Room-based topology — one process, many rooms, scales horizontally on hosting
  • HTML overlay UI — faster to iterate than canvas text, and accessible by default

What I'm Exploring

  • Tight netcode on a jam timeline — tick rate, snapshot cadence, input buffering
  • How much game feel I can get out of procedural shapes alone
  • Where the boundaries between "server truth" and "client prediction" should live for a small arena game

Updates

2026-04-15 — Project kicked off. Architecture doc drafted, client/server/shared scaffolding in place.