All work

Game · In-house

Ultimate Fantasy Battle

A physical board game and a real-time browser game that share one world, linked by NFC-tagged figurines. Our own product, which is why we know what it costs to operate one.

The Ultimate Fantasy Battle home page, showing a 3D hero figurine and the game's statistics
The Ultimate Fantasy Battle home page, showing a 3D hero figurine and the game's statistics.

The idea

Most board games that add an app bolt a scorekeeper onto the box. UFB runs the other way: the physical game and the digital game are the same game. Each figurine carries an NFC tag that ties the piece in your hand to its record — who owns it, what it has done, what it has earned.

What it takes

The browser client renders the battlefield in 3D and talks to an authoritative real-time server, so opponents share one state rather than trading turns through a database. Around that sit the parts nobody sees in a trailer: ten battle maps, hero levelling and an economy, match telemetry, a ten-language translation pipeline, an admin surface, and a headless bot harness that plays complete games against itself to catch rule regressions before players do.

Why it is on this page

We operate it. Backups, migrations, an incident that cost a production database and the binlog replay that brought it back, mobile performance work, staging that mirrors production. The reason we talk about handover and operability on the rest of this site is that we have been on the receiving end of our own decisions.

Interactive images

The manga reader came out of the same project and became a service line of its own. Shapes are traced from the artwork's original layers, so hovering a character lights them up and clicking opens their detail — with labels a search engine can actually read, rather than an image map bolted on afterwards.

The manga reader: shapes traced from the artwork's layers, so characters are hoverable and searchable
The manga reader: shapes traced from the artwork's layers, so characters are hoverable and searchable.

Something like this?

Tell us what you're building and where it's stuck. Thirty minutes, no deck.

Get in touch