Emberbound key art — a painted scene of the Long Dusk

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

  1. 01

    Content

    every unit, skill, board and event is a validated JSON record; generators author campaigns and events; a validator gate refuses anything malformed.

  2. 02

    Client

    Unity, portrait-only, offline-first: the whole game runs as a local guest save; going online is a choice, not a wall.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

Screens

  • Emberbound home screen on a phone in portrait orientation
    Home
  • Emberbound campaign board — an isometric node map in portrait orientation
    Campaign board
  • Emberbound battle screen in portrait orientation
    Battle
  • Emberbound familiar detail screen in portrait orientation
    Familiar detail

source: the multi-aspect harness contact sheet — real renders, not mockups

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.eu

Emberbound — an online RPG built end to end by one developer. Real client, real server, real economy.