OpenUmbra is a 1v1 fighting game for the browser, in the style of the 2D silhouette fighters I grew up playing. I wanted one with committed attacks, blocking by standing still, and hits that feel heavy, and I wanted to play it online with friends.
How it's built
- TypeScript, Vite, and PixiJS for rendering.
- The fight runs as an integer simulation with hand-keyed 2D skeleton poses, so two machines always compute the same frame.
- Rollback netcode over WebRTC: each side predicts the other's input and rewinds when it guessed wrong, so online fights feel local.
- Matchmaking and rooms run on Cloudflare Workers with Durable Objects.
How it got here
The first version was a Godot mobile game. In September 2026 I decided the 3D rig and effects weren't giving the feel I wanted and rebuilt it for the web. The design came from a panel of AI agents that wrote 22 decision records.
It's playable end to end on my machine, including online play between two browsers. It isn't deployed yet.