Skip to content

Ghostline

Unity WebGL + Cloudflare Workers

A browser time-trial with an edge-verified leaderboard. You race the track record and your own best lap; every time is validated by an authoritative backend on Cloudflare Workers with Durable Objects, idempotency and rate limiting. Both repos are public: the C# game and the TypeScript API.

  • Unity
  • C#
2
Public repos: game (C#) and API (TypeScript)

The story

Problem

Simulation portfolios lean almost entirely on video: you see the result, never the judgment. I wanted to put a complete system on the table that anyone could open, play and audit.

Solution

I built a public game end to end: a Unity WebGL time-trial against the track record's ghost and your own best lap, with an authoritative backend on Workers that validates every time by bounds, with idempotency and rate limiting in Durable Objects.

Result

A demo playable from the link, a live leaderboard over WebSocket and the API's open repo where the judgment can be audited commit by commit.

The systems I built in the engine

Unity Developer

WebGL game with ghost replay

An arcade vehicle with raycast suspension, quantized trail recording and playback of the record's ghost, across six assemblies with directed dependencies.

Ghostline circuitThe circuit's esses during a timed lap.

A browser time-trial with an edge-verified leaderboard.

Ghostline

The intersection, not the two halves

It isn't "I know Unity" and "I know backend" as separate claims: it's a real-time game client held up by server infrastructure I already run in production. The demo has to make that intersection visible in under 60 seconds for whoever opens the link.

Playable

The game is deliberately simple. The depth is in the pipeline — you open the link and you're already racing, nothing to install. If all you do is read this, you've already understood the project.

Hostile client

The endpoints are public and the payload can be read out of the JavaScript bundle: anyone can skip the game and call the API with fabricated data. I don't promise perfect anti-cheat. I promise to say so with judgment.

Real production

Idempotency inside a Durable Object, rate limiting, server-side validation, observability. It's the same guarantee as the distributed Redis lock at Mecánica MX, on a different substrate — the pattern transfers, the infrastructure doesn't.

The trail reconstructs the lap

10 samples per second of position, yaw and speed — enough to reconstruct the real rhythm of the lap without storing more than a handful of KB per run.

050100150190km/h0:00.0000:14.9120:34.1160:45.1861:02.481S1 · brakingS2 · precisionS3 · tractionS4 · exit
See the full Ghostline landing
Next project

ViLab

Lab serious game · VR & PC · tutorial, quests and fail states

ViLab