Game guide · source of truth
Start

Setup before development

Everything to install and verify on the owner's machine before the first game task, with the verification command for each step and what Claude can do alone.

The machine was probed on 2026-10-03: Apple M3, 24 GB, macOS 26, Node 22, pnpm 10, Python 3.9 + Pillow, Git, Chrome, Docker Desktop, Blender 4.2.3 LTS (~/Applications/Blender.app; it reports 4.5.9 LTS since, measured by M0-02 on 2026-10-08). Rust 1.99.0 and the .NET SDK 10.0.401 were installed on 2026-10-06 (owner approved; ~/.rustup, ~/.cargo, ~/.dotnet, commands linked in ~/.local/bin, no shell profile edits). Unity is not installed yet; the pin is Unity 6.3 LTS. Blender headless was verified by task T009: it built a mesh, exported a GLB and rendered with EEVEE in 18 s.

Setup checklist
1
Git repositoryrequiredowner: human (agents never commit without being asked)
Done: the repository exists. Work of 2026-10-03 to 2026-10-06 is committed on the branch sync/working-tree-20261006; merging to main and pushing are the owner's call.
check: git log -1
2
Node 22 + pnpm 10required✓ verified
node -v && corepack enable && pnpm -v
check: node ≥ 22, pnpm ≥ 10
3
Install workspacerequired✓ verified
cd zoen && pnpm install
check: pnpm -r ls --depth 0
4
Rust toolchainneeded M1+
Done 2026-10-06 (owner approved): rustup-init.sh from https://sh.rustup.rs with -y --no-modify-path --profile default; cargo, rustc and rustup are linked in ~/.local/bin
check: bash tools/setup/toolchain-smoke.sh rust
5
Blender CLI aliasrequired✓ verified (T009)
echo 'alias blender=~/Applications/Blender.app/Contents/MacOS/Blender' >> ~/.zshrc
check: blender --version → 4.5.x LTS (4.5.9 measured by M0-02); then node tools/task-log.mjs test <ID> 'blender smoke' -- pnpm blender:smoke (runs tools/blender/smoke.py and validates the GLB and render)
6
Blender add-onsneeded M3+
Enable Rigify (bundled). Optional: Blender MCP add-on only after the toolchain gatekeeper review.
check: Rigify visible in Add > Armature
7
Playwright with system Chromerequired✓ verified
pnpm --filter @zoen/wiki exec playwright --version
check: tests use channel: 'chrome' (no browser download)
8
PostgreSQL in Dockerneeded M6+
docker run -d --name zoen-pg -e POSTGRES_PASSWORD=dev -p 5432:5432 postgres:17
check: docker ps | grep zoen-pg
9
ffmpeg (optional)optional
brew install ffmpeg
check: ffmpeg -version (videos also work without it via Playwright/Blender)
10
Mixamo account (free)needed M3+owner: human (agents do not create accounts)
Create an Adobe account; download clips manually into zoen/art/source/mixamo/ (In Place, FBX, 30 fps, no skin)
check: list in docs/production/ANIMATION.md
11
Test devicesneeded M1+owner: human
Record Low baseline: Galaxy A07 4G / 4 GB; iPhone SE (2020) / A13; Intel N150 / 8 GB / integrated GPU / Windows 11. See reference-devices.json; keep this M3 as a secondary High reference. Physical probe and benchmarks pending.
check: recorded in docs/adr/ADR-006
12
Token + test loggingrequired✓ verified
node tools/task-log.mjs start <ID> "<title>" … test … finish
check: pnpm tasks:report → logs/tasks.json
13
Unity Hub + Unity 6.3 LTSneeded M0owner: agent may install by command line; human signs in (agents never create accounts or enter passwords)
Install Unity Hub and the newest Unity 6.3 LTS patch with modules: Android Build Support (OpenJDK, SDK & NDK), iOS Build Support, Web Build Support, Windows Build Support (Mono). An agent may run the Hub command line (owner, 2026-10-06); the owner signs in with the Unity ID.
check: "/Applications/Unity/Hub/Editor/<version>/Unity.app/Contents/MacOS/Unity" -batchmode -quit -version
14
Full Xcode (iOS builds)needed M4+ (iOS device builds)owner: human (Apple ID)
Install Xcode from the App Store, open it once, accept the licence
check: xcodebuild -version
15
Unity toolkit gateneeded M0+
Follow docs/tech/UNITY_TOOLKIT.md: Unity Test Framework 1.6.0 + Performance Testing 3.5.0 pinned (M0-07); no Unity MCP (owner direction, 2026-10-08)
check: PlayMode performance tests logged under M0-07
16
Tripo API key + credit checkneeded M0-08owner: human (key creation; agents never create keys or accounts)
In the Tripo Console create an API key; export TRIPO_API_KEY in your shell (or ~/.config/zoen/tripo.env). Check whether your plan's credits cover API calls.
check: python3 -m pip install tripo3d (venv) then a 1-asset dry run with a credit cap
17
Tripo Blender Bridge add-on (optional)optionalowner: human or agent after the toolchain gate review
Blender → Edit → Preferences → Add-ons → Install from Disk → tripo ai/Tripo3d_Blender_Bridge-latest.zip
check: Sidebar → Tripo Bridge appears; server on 127.0.0.1:60600
18
.NET SDK (LTS)needed M0-09
Done 2026-10-06 (owner approved): dotnet-install.sh from https://dot.net/v1 with --channel LTS into ~/.dotnet; dotnet is linked in ~/.local/bin; set DOTNET_CLI_TELEMETRY_OPTOUT=1
check: bash tools/setup/toolchain-smoke.sh dotnet

◆Can Claude do it all?

StepClaude alone?Notes
Node/pnpm workspace, Next.js, Playwright✅Already done for this wiki
Rust toolchain✅ installed 2026-10-06rustup from sh.rustup.rs with --no-modify-path. Check: bash tools/setup/toolchain-smoke.sh rust
.NET SDK (LTS)✅ installed 2026-10-06dotnet-install.sh --channel LTS into ~/.dotnet, telemetry opted out. Check: bash tools/setup/toolchain-smoke.sh dotnet
Unity Hub + Unity 6.3 LTS + modules (Android, iOS, Web, Windows Mono)⚠️ install by agent or owner; sign-in by the ownerThe owner allowed a command-line install (2026-10-06). The licence needs the owner's Unity ID; agents then drive the editor in batchmode. See Unity toolkit
Full Xcode (iOS builds)❌ ownerXcode 26.6 seen on this Mac (2026-10-11); iOS is paused (ADR-032); device builds need an Apple ID
Windows PC: Rust + Visual Studio Build Tools (zoen-sim DLL)❌ ownerOn the owner's Windows PC (ADR-032, 2026-10-11); agents can't reach it and never download the Windows SDK/CRT here; steps in WIN-01
Blender scripts (rig, retarget, export, render)✅Headless via CLI; Blender MCP is optional
PostgreSQL in Docker✅Local only, free
git init / commits⚠️ owner asksAgents commit only when asked
Mixamo, Apple/Google developer accounts❌ ownerAgents never create accounts or enter passwords
Image generation (Codex/ChatGPT)⚠️ owner's toolUse art requests
Paid 3D generation, hosting❌ until approvedPHP 5,000 cap for all new expenses

◆Blender pipeline notes

  • Alias: alias blender=~/Applications/Blender.app/Contents/MacOS/Blender
  • Headless: blender -b -P script.py -- <args>. Scripts live in tools/blender/, are idempotent, and write a JSON report.
  • Export glTF 2.0 (.glb): +Y up, metres, apply transforms, export_animations=True, Draco off for skinned meshes (compress later with gltf-transform).
  • Rigify ships with Blender. The canonical humanoid bone names are listed in Animation.
  • Blender MCP (live editor control) is optional. Run the toolchain gatekeeper review before installing it.

◆Verify everything (one go)

node -v && pnpm -v && python3 -c "import PIL; print(PIL.__version__)"
~/Applications/Blender.app/Contents/MacOS/Blender --version | head -1
node tools/task-log.mjs test SETUP "blender smoke" -- ~/Applications/Blender.app/Contents/MacOS/Blender -b -P tools/blender/smoke.py -- logs/evidence/setup
pnpm data:test && pnpm wiki:build
node tools/task-log.mjs test SETUP "rust smoke" -- bash tools/setup/toolchain-smoke.sh rust
node tools/task-log.mjs test SETUP "dotnet smoke" -- bash tools/setup/toolchain-smoke.sh dotnet

Source: zoen/docs/process/SETUP.md · 551 words · edit the Markdown, not this page.