A running record of building an MMORPG from scratch — backend, client,
and everything between. Newest first.
Milestone · In progress
M5 — Teaching the mobs to fight back
The world can be walked, seen, and fought. What it cannot yet do is fight back.
Every creature in Infinity Justice today is a target; M5 is the milestone that
turns targets into threats.
That means giving mobs a mind: perception, so they notice you; aggression, so they
choose you; pursuit, so running away is a decision instead of a guarantee. It is
the last piece of the primal loop — see, fight, win or flee — and when it lands,
the world stops being a shooting range and starts being dangerous.
Infrastructure
P3.0 — Surviving a crash
An online world makes one promise above all others: what you earn stays earned.
This milestone was about keeping that promise even when things go wrong.
Player state is now checkpointed as you play, and the server can be killed
mid-session — deliberately, in testing — and come back with nothing lost.
Unglamorous work, but it is the difference between a demo and a world.
Milestone
M4 — First blood: real-time combat
The first skill fired, the first crit landed, the first mob fell — and, a respawn
timer later, came back. Combat in Infinity Justice runs on the server, in real
time: skills with cooldowns, damage rolls, critical hits, death and return.
Combat is where an MMORPG either feels alive or doesn't, so this loop will be
tuned for a long time yet. But the foundation — authoritative, latency-aware,
data-driven — is in and holding.
Milestone
M3 — A world that populates itself
Until now, every creature in the world had been placed by hand. M3 replaced that
with something better: the world reads its own population from the database —
which mobs, where, how many, how strong — and brings them to life on its own.
Kill something, and the world quietly schedules its return. Change a spawn table,
and a zone changes character without a line of code. This is the machinery that
will eventually drive eight nations' worth of creatures.
Milestone
M2 — Seeing each other
Two clients, one world, and the moment that makes it an MMO: another player,
moving, in front of you. M2 built the replication layer that makes this scale —
each player is told only about what is near them, an area-of-interest system
that lets a zone hold far more life than any single screen needs to know about.
Milestone
M1 — First steps
The first milestone was deceptively simple: log in, pick a character, enter the
world, and walk. Underneath it sits the rule everything else depends on — the
server, not the client, decides where you are. Movement is validated, simulated
and confirmed authoritatively, which is the only honest foundation an online
world can stand on.
Foundation
Genesis — why build the server from scratch
Infinity Justice could have started from an off-the-shelf server framework.
It deliberately didn't. The backend is written from scratch in modern C++ as a
set of cooperating microservices — gateway, world, zones, data, and friends —
because an MMORPG lives or dies by systems working together, and owning every
system is the only way to owe nothing to someone else's assumptions.
The client is built on Unreal Engine 5. One developer, eight worlds, and a long
road — documented here, milestone by milestone.