Devlog

Development Log

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.