Lumos
An open-world game project in Unreal Engine 5, built solo, and used as the sandbox for every system on this site. One-line pitch of the game itself goes here.
What it is
Two or three paragraphs describing the game — setting, genre, the player fantasy, the shape of a session. Written for someone who has never heard of it.
Then the honest framing: what state the project is in, and what it is for.
<video autoplay loop muted playsinline>
Goals
Lumos is deliberately not a vertical slice. It exists to force systems to be built at the scale where the hard problems actually appear — streaming, save and load, quest state, transitions — rather than the scale where they can be faked.
- Production shape over production polish Systems are built the way they would be built on a team: data-driven, designer-facing, with debug surfaces. Art and content stay rough on purpose.
- Everything authored outside C++ If a designer would need an engineer to change it, that is a flaw in the system, not a task for the engineer.
- Iteration time is a feature Any beat in the game should be reachable in seconds, from the editor, without replaying what came before.
- Reusable across projects Anything not specific to Lumos lives in a separate plugin, so it can be dropped into the next project intact.
How it is put together
Short section on the split between the game project and the reusable gameplay plugin, and why the line is drawn where it is. This is where the separation discipline gets explained, with the quest system as the worked example.
Systems
Each one covers the problem, what I built, how it works, and what it changed for the people using it.
Quest System
A node-graph scripting language for narrative flow, where any beat can be launched directly and everything before it is replayed as end state.
Area Loading
Reference-counted data layer streaming that arbitrates spatial demand against quest force-load overrides, with a debug HUD for diagnosing what asked for what.
Save System
Save and load, plus an editor tab that deserialises a .sav for inspection and save slots wired straight into the engine Play menu.
Debug Systems
The cross-cutting diagnostic layer: on-screen overlays, console commands and editor surfaces that make every other system on this page inspectable while it runs.
Cinematics
Sequence playback with hold-to-skip and subtitles, plus a placeholder mode so cinematic beats are testable before any content exists.
Boot Flow
Main menu into the world without a load flash — the save is read before the player spawns, so streaming resolves the right layers on the first frame.