The Embark guide
How it's built
One app, no server: the architecture, the repo and the decisions.
How it's built
One app, no server
Everything runs on Apple's own services. Your game syncs through your iCloud, shared things (invites, quests, events) live in CloudKit's public database, and company comes from Game Center. Tap any box to see what it does.
On your devices
Apple services
Release
Tap a box.
Where things live in the repo
apps/rally/
Embark/ the production app (XcodeGen: project.yml)
App/Sources/ screens, AR, sync, store, notifications
EmbarkKit/ the game rules as a Swift package (114 tests)
Widgets/ Watch/ widgets + Live Activity, Watch app + complication
UITests/ end-to-end walk, Live Activity, AR, accessibility audit
CloudKit-schema.ckdb 10 record types (deployed to Production)
fastlane/ alpha lanes
docs/specs/ game-design.md · game-systems.md · growing-world-and-rewards.md
docs/reference/ the UI prototype + 31 reference screens
DECISIONS.md RLY-001 … RLY-038
The decisions that shaped it
RLY-031 · Start in your world
AR first, with the painted station as a silent fallback. The camera prompt appears only at first AR use, never at launch.
RLY-032 · Worlds are layers, the cast grows
Districts paint in from sketches. Residents (the heron, the ferry keeper, the fox) appear as the world grows. More companions come later (Enzo, the city route).
RLY-033 · A productivity game, on purpose
A growing world, finds and ranks: Embark deliberately gamifies starting. ADR-0085 removed nearly every mechanic ban. The aim is "famous and addictive", with no anxiety mechanics and no selling of data.
RLY-034 · Scheduled ferries have real pull
Fixed departures make you want to be there for the moment. Missing one is fine, because another leaves in 30 minutes.
RLY-035 · The one design
"Your work paints Basti's world." Two specs, game design and game systems, plus the interactive prototype as the UI reference.
RLY-036 · Embark first, a clean production app
New app at
apps/rally/Embark. Only CloudKit and Game Center: no server of our own. Art is generated (gpt-image-2).RLY-037 · The league waits
A leaderboard needs players, so it ships later.
RLY-038 · The Phase 0.2 rulings
Boarding alerts are scheduled ahead, premium rewards are guaranteed (no paid randomness), invites work through installs (Universal Links plus a "Got an invite?" code), the WeatherKit quota is accepted, and the find style is set by the brass lantern hook.