Game Mower wiki

Dev

Tools & MCP

The tools a session uses to work on the game: the Unity and Blender MCP servers, the image and audio CLI tools, and the rules for sharing one Unity editor between sessions.

Unity

  • Editor: Unity 6000.2.12f1, at /Applications/Unity/Hub/Editor/6000.2.12f1/Unity.app/Contents/MacOS/Unity.
  • Unity MCP: the unity-editor-mcp server, set in ~/.claude.json (user scope). Its command is the absolute path /Users/lobodart/.unity/bin/unity mcp --project-path <game-mower>, because ~/.unity/bin is not on PATH. It needs the com.unity.pipeline package (installed) and the editor open on the project.
  • If it can't connect: check whether the editor is in Safe Mode (compile errors).
  • It disconnects on every domain reload. See Testing for waiting it out and the other editor quirks.
  • Editor preference ScriptCompilationDuringPlay = 1 (recompile after play), so edits don't reload in the middle of a play test.
MenuWhat it does
Game Mower › Rebuild Generated ContentRebuilds materials, prefabs, scenes and build settings. Data assets are only created when missing.
Game Mower › Rebuild Hub (house + garage scene)Rebuilds the hub only. It never touches the Garden or Store scenes, nor the Van/DadCar/GarageRoom prefabs.
Game Mower › Rebuild Net PrefabsRebuilds the FishNet prefabs in Assets/_Game/Net/Resources/Net.
Game Mower › Rebuild UI FontsRegenerates the TextMeshPro font assets.
Game Mower › Reset Data Assets To DefaultsOverwrites data assets with the defaults written in the setup scripts.
Game Mower › Export Voice LinesWrites ArtSource/voice/lines.json, flagging lines that have no clip yet.
Game Mower › Delete Save FileDeletes the save. Back it up first.

Sharing one Unity editor

Several sessions can work on the project at the same time, and they share one editor. Any file you save gets compiled by their refresh too.

  • Callees before callers. Add new methods, fields and files first, then the calls (or land both in one write). A call to a method that doesn't exist yet breaks everyone's compile.
  • Announce it. Say "taking Unity" before a rebuild or play mode, and "done with Unity" after.
  • Commit only your own paths. Other sessions' uncommitted files stay theirs: don't commit or revert them. When you share a file, stage only your own hunks.

Blender

  • Blender MCP: the Claude extension "Blender" (Blender Lab) plus the Blender Lab add-on in Blender 5.2, port 9876. Blender must be open with the add-on server running.
  • Models are built by the Python scripts in ArtSource/scripts, exec'd into the live Blender. Each MCP call gets a fresh namespace, so keep the loaded scripts in bpy.app.driver_namespace["gm"].
  • Parallel Blender work: take a mkdir lock first. There's one scene, with shared selection and globals.
  • Axes: Blender (x, y, z) becomes Unity (-x, z, -y).

Image and audio CLI tools

Installed on the machine: inkscape, rsvg-convert (librsvg), ImageMagick (magick), ffmpeg, pandoc, and Pillow for /opt/homebrew/bin/python3.

  • 2D art: write the SVG by hand, convert to PNG with rsvg-convert or inkscape, then use magick or Pillow for atlases, recolours and checks. The company logos work this way (ArtSource/logo/make_logos.py).
  • Audio: ffmpeg turns downloaded mp3 ambience into WAV, so loops decode gaplessly and don't click.

ElevenLabs

Voices and ambience come from the ElevenLabs MCP: voices on eleven_v4, American English, recorded clean (phone and room effects are applied in Unity by Core/Voice.cs). The cast, flows and download steps will get their own page under Game › Cast and Dev › Content pipeline.

Publishing the wiki

The wiki is online as a Cloudflare Pages project, on its pages.dev URL, behind Cloudflare Access: only the emails on its list get in, with a code sent by email. Cloudflare rebuilds it on every push to main that touches docs/ or tools/wiki/. Zero Trust Free covers up to 50 people.

  • Letting someone in or out: Zero Trust › Access › Applications › the wiki's app › Policies, the email list. Nothing in the repo changes.
  • The Access app covers two domains: <project>.pages.dev and *.<project>.pages.dev (every deployment also gets its own link). The "Enable access policy" switch in the Pages settings only covers the second: never rely on it alone.
  • How: tools/wiki/scripts/cloudflare-build.sh fetches the full git history first (Cloudflare clones shallow, and the "last edited" dates come from git), then runs the same check and build as on your machine.

Pages build settings (the project › Settings › Build, repo lobodart/game-mower):

SettingValue
Production branchmain
Framework presetNone
Build commandbash tools/wiki/scripts/cloudflare-build.sh
Build output directorydocs/site
Root directory(empty: the repo root)
Environment variableNODE_VERSION = 22
Build watch pathsinclude docs/* and tools/wiki/*
Source docs/dev/tooling.mdEdited 2026-10-03