vox

I make multiplayer games feel instant on bad connections.

I'm a gameplay and multiplayer engineer in Pune. Three years shipping real-time games across Unreal, Unity, Godot 4 and Roblox, and unusual depth below the middleware: not just Nakama and EOS, but the transport under them, hand-written.

Netcode is hard to put on a CV, so this page has working versions instead. Everything below runs in your browser. Break it.

reels

Motion, cinematics and trailers, R15 combat animation authored in Blender, rendered in-engine, cut into trailers from real captures. The ninja fight below went from blank file to finished choreography in two days.

  1. WarSpeed: First Metal · Official Trailer

    real captures · blender renders · cut

    The launch trailer for my space combat game, every shot from real gameplay and Blender renders, graded and cut to the original score.

  2. Shadow Ninja Fight

    r15 · blender · 48-hour turnaround

    Two-character R15 combat choreography, authored, retargeted and rendered in two days.

  3. Endless Fortress · Gameplay

    demons vs slayers · live game

    Server-authoritative multiplayer combat, captured straight from the live experience.

  4. Deep Blue · Dive Deeper Than You Should

    ai-generated trailer · own game

    A full cinematic trailer generated with AI video tools and cut to pace, concept to publish in a day.

demo 01 · client prediction & reconciliation

The client is always guessing. The server is always right.

error
0.0
rollbacks
0
rejected
0

The hollow marker is the client, simulating your input the instant you press it, otherwise the game feels like mud. The filled marker is the server, which only ever accepts a legal move. When they disagree, the client rolls back and resimulates to the authoritative state instead of snapping.

Drag the latency up and the guess runs further ahead, so corrections get more violent. Press cheat and the client claims a speed it hasn't earned, the server refuses it and drags it back. That refusal is the whole reason server authority exists.

demo 02 · interest management

You cannot send everyone everything.

replicated
— / 500
bandwidth saved

Five hundred entities, one player. Naively the server sends all five hundred to every client every tick, and the bandwidth bill grows with the square of your player count. Interest management sends each client only what it could plausibly perceive.

Widen the radius and watch the replicated count climb. This is the actual shape of the problem I solved on a 26 km² world with 500 server-driven NPCs at 60 fps, the real one is spatially hashed rather than brute-forced, but the trade is identical: perceived world versus what you can afford to send.

demo 03 · flocking

Three rules, and a shoal appears.

turn one off and watch the shoal fall apart

No path, no animation, no director, each fish only reacts to the neighbours it can see. Emergent AI is cheap to run and expensive to fake, which is why it's doing the fish in Deep Blue, my Roblox naval game.

what I'm building now

Roblox shipped Server Authority, client prediction with rollback and resimulation, in July 2026. Every competitive Roblox experience now has a migration in front of it, and almost nobody has published how it maps onto dedicated-server netcode.

So I'm building the reference implementation and writing the piece that does: prediction under simulated latency, a visible reconciliation pass, and a client-side speed hack rejected by the server, measured, not claimed. It lands here when it's done.

work

  1. Roblox Server Authority: instrumented demo

    roblox · luau · server authority api · new

    A working, measured demo against the Server Authority API Roblox shipped on 9 July 2026. Client prediction verified by experiment, movement distance varies 1.7% between 0 and 150 ms of injected lag, plus a custom predicted sprint ability with zero prediction error, and cheat rejection where the server holds position while the client claims to be 490 studs away. Nine documented engine behaviours, six of them absent from any documentation. Writeup in progress below.

    Roblox Server Authority: instrumented demo screenshot 1Roblox Server Authority: instrumented demo screenshot 2Roblox Server Authority: instrumented demo screenshot 3
  2. WarSpeed: First Metal

    godot 4 · shipped · solo

    A single-player space combat game I built and shipped alone, enemy AI, the combat loop, physics, UI, the original score, all the sound design, and the cloud build pipeline.

    WarSpeed: First Metal screenshot 1WarSpeed: First Metal screenshot 2WarSpeed: First Metal screenshot 3WarSpeed: First Metal screenshot 4
  3. Starbrone

    godot 4 · nakama · edgegap · live

    Networked space combat for large team battles. I built the global matchmaking and lobby architecture on Nakama and deployed it to Edgegap edge servers, tuned at 16v16 and validated with 200+ concurrent players across regional playtests.

  4. AI-first MMO: founding engineer trial

    spacetimedb · paid 10-day trial

    A 26 km² streamed open world with 500 server-driven NPCs holding 60 fps. Hand-written interest management and state replication under a hard frame budget. The demo above is this problem, simplified.

  5. Deep Blue

    roblox · luau · in development

    Open-ocean naval exploration, a sailable ship, four hand-built islands, treasure recovery and a shop economy, with boid-driven fish schools shoaling through the reefs.

    Deep Blue screenshot 1Deep Blue screenshot 2Deep Blue screenshot 3Deep Blue screenshot 4
  6. Endless Fortress

    roblox · luau · published

    Multiplayer sword-fighting with server-authoritative combat. Hits are validated on the server, never trusted from the client. This is where the Server Authority demo above is being ported next.

    Endless Fortress screenshot 1Endless Fortress screenshot 2Endless Fortress screenshot 3Endless Fortress screenshot 4Endless Fortress screenshot 5Endless Fortress screenshot 6
  7. Dawn Striker

    unreal · epic online services · prototype

    ~40-player battle royale. Multiplayer lobby, matchmaking flow and the core BR combat loop, the netcode foundation that carried into everything after it.

  8. SkipIt

    webrtc · live

    Not a game, but the reason I understand transport: I built the entire WebRTC stack solo, signalling, NAT traversal, UDP hole punching, TURN fallback. This is the layer Nakama and Photon abstract away.

toolbox

engines
Unreal · Unity · Godot 4 · Roblox Studio
languages
C++ · C# · GDScript · Luau · TypeScript · Python
netcode
server-authoritative gameplay · prediction & reconciliation · interest management · state replication · matchmaking & lobbies · Nakama · Edgegap · EOS · SpacetimeDB · WebRTC, NAT traversal, UDP hole punching
gameplay
enemy AI & FSM · boids · vehicle and suspension physics · raycasting · UI frameworks
infra
Cloudflare Workers · cloud build pipelines · load and soak testing · latency profiling
art & audio
Blender · procedural texturing · rigging · music composition · sound design

writing

contact

Best fit: multiplayer and netcode, gameplay systems, or being the engineer who owns a hard problem end to end.