Portfolio — game & live-service backend
EMBERBOUND
a complete online mobile RPG — client, server, and a living economy
Emberbound is a personal project built end to end by one developer — game design, Unity client, game server, live operations. It is currently in a private, invite-only playtest; nothing here is a commercial offering. Every number on this page is measured from the shipped content, not aspiration.
What it is
A portrait-mode creature-collection RPG in a dying world called the Long Dusk — and, underneath it, the full anatomy of a live online game: a Unity client that plays entirely offline as a guest, a .NET server that owns accounts, trading and (behind staged flags) the economy itself, and a content pipeline where the entire game is data — 737 familiars, 524 skills, 94 enemies and every campaign board are authored records, validated by machine, rendered by one client. Adding a creature is authoring a file, not writing code.
The architecture
-
01
Content
every unit, skill, board and event is a validated JSON record; generators author campaigns and events; a validator gate refuses anything malformed.
-
02
Client
Unity, portrait-only, offline-first: the whole game runs as a local guest save; going online is a choice, not a wall.
-
03
Sync
client-authoritative saves with server adoption, a conflict resolver, and an anti-duplication binding so one save can never mint two accounts' worth of units.
-
04
Server
.NET API owning auth, vault custody, the player marketplace, guilds, mail, PvP and seasons — every vertical shipped dark behind flags and lit by ceremony.
-
05
Economy
a server-authoritative ledger (staged rollout): seeds each account from its own save at first contact, rolls the gacha server-side, and settles trades atomically.
-
06
Operations
one prod box: nginx, invite-gated registration, rate limits, encrypted off-box backups with restore drills, GDPR-correct account erasure, phased flag ceremonies with rollback stories.
The marketplace is barter-first. The Bazaar lets players list a familiar for gold, for items, for another familiar — or any mix; gold is optional, the ask is exact ("a 1-star of this unit, precisely — it matters for evolution"). Listings wrap real vault custody server-side: the traded creature genuinely leaves one account and lands in the other, atomically, fee-settled, with zero-gold barter as a first-class settle rather than a hack.
Everything dark ships dark. New capability deploys behind flags with the surface stubbed, then lights in witnessed phases: backup first, one flag at a time, a named check between each step, rollback rehearsed before the flip. The economy cutover was proven this way at population two — the one real bug it surfaced (a shop spend that granted client-side only) was caught by a witness at the stop-point, fixed, and never reached a player.
The player owns their progress — provably. Offline guest play is the default; registering binds the save to exactly one account; deleting the account is a real GDPR erasure that scrubs audit PII and survives edge cases like "the buyer of your listing erased themselves" (found, schema-fixed, regression-scripted).
The UI was rebuilt around play, not mockups. A screenshot harness renders every screen at four aspect ratios and diffs against goldens; an information-architecture sheet of 63 dev-ruled decisions governed an eight-batch rebuild — full-bleed campaign boards with a following camera, a gacha reveal that is a moment instead of a list, tap-depth targets counted and printed, and a hard law that fixed-pixel layout only ever decreases.
Feature highlights
-
Campaign boards
Isometric node boards, full-bleed with a following camera; one renderer serves campaign, events and the endless descent.
-
Capture & rites
Capture mid-run; grow familiars through Sacrifice, Empower, Evolve and the Mythic Forge — stakes confirmed, costs always visible.
-
The Calling
The summon: server-rolled, pity-tracked, revealed full-screen one card at a time.
-
The Bazaar
A real player market — barter-first listings, exact-star asks, vault custody, atomic settles.
-
Guilds & friends
Friend codes, guild founding with a real cost, invites — one identity idiom throughout.
-
PvP — the Trial
Asynchronous ladder with defense setups, seasons, and rank rewards claimed exactly once.
-
Live events
Windows-honest event system — the UI renders from schedule truth and can never advertise a dead event.
-
Ops you can audit
Invite-gated registration, rate limits, restore-drilled backups, GDPR erasure, and a forensics habit that once proved a mystery restart was just Ubuntu.
How it was built
Emberbound is developed with a disciplined multi-agent AI workflow: one planning instance that rules on evidence and never touches code, two coding instances owning client and server, the developer as ferry and final gate — and a written law above all of it: a ruling is not a fact about the code. Every change is contract-first, machine-verified, then human-played before it counts. The same method built Neptune; Emberbound is it at full scale — twenty-plus rounds, a lit economy, zero player-facing incidents.
Tech stack
- Unity
- C#
- .NET
- PostgreSQL
- nginx
- JSON-schema content pipeline
- custom screenshot-diff harness
- Claude (multi-agent)
Visit the world
The playtest is invite-only — but the world is open: devlog, wiki and the living bestiary at
emberbound.euEmberbound — an online RPG built end to end by one developer. Real client, real server, real economy.