Problem
Issue #70 identified the real pain point: when a developer runs python run.py, there's no clear path to get the game running. The original fix proposed documentation and screenshots for navigating the Godot IDE. But the root problem is deeper: Agent Arena users should never touch the Godot editor at all.
Our target audience is AI/Python developers learning agentic programming. Requiring them to install and navigate a game engine IDE is a massive barrier. The Godot editor is a developer tool for us (the framework maintainers), not for agent developers.
Vision
The user experience should be:
- Write agent code in
agent.py
- Run
python run.py --scenario foraging
- A game window appears, the scenario loads, and their agent starts running
One command. No Godot IDE. No manual scene selection. No pressing SPACE.
Design: Option D (Combination)
Primary flow: Python-driven launch
python run.py --scenario foraging
- Starts the Python agent server on port 5000
- Auto-launches the compiled game executable with
--scenario foraging
- Game loads the scene, auto-connects to backend, auto-starts simulation
Fallback: In-game launcher menu
If the game executable is launched directly (double-click or no --scenario arg):
- Shows a simple launcher/menu scene listing available scenarios
- Each scenario shows: name, description, difficulty tier, concepts taught
- User clicks one → scene loads → waits for Python backend connection → auto-starts
Power user: CLI args to executable
agent_arena.exe --scenario foraging --port 5000 --auto-start
For scripting, CI/eval runs, and advanced workflows.
Implementation Plan
Phase 1: Godot — Launcher scene + CLI args
Phase 2: Godot — Export as executable
Phase 3: Python — Auto-launch integration
Phase 4: Documentation
Acceptance Criteria
Architecture Notes
Current state (what changes)
project.godot main scene: foraging.tscn → launcher.tscn
- Simulation start: manual SPACE key → auto-start on backend connection
- Scene selection: open
.tscn in editor → CLI arg or launcher menu
- Game delivery: source project → compiled executable
New autoload: LaunchConfig
Parses CLI args and exposes them as a singleton:
# scripts/autoload/launch_config.gd
var scenario: String = "" # --scenario value, empty = show launcher
var port: int = 5000 # --port value
var auto_start: bool = false # --auto-start flag
Existing autoloads (unchanged)
IPCService — HTTP client to Python backend (just needs to read port from LaunchConfig)
ToolRegistryService — tool schema management
Estimated Effort
~3-4 days across all phases (can be split across multiple PRs)
Supersedes
This issue supersedes #70 (onboarding guide with screenshots). The documentation work from #70 is captured in Phase 4, but the core approach changes from "document the Godot IDE workflow" to "eliminate the Godot IDE workflow entirely."
Problem
Issue #70 identified the real pain point: when a developer runs
python run.py, there's no clear path to get the game running. The original fix proposed documentation and screenshots for navigating the Godot IDE. But the root problem is deeper: Agent Arena users should never touch the Godot editor at all.Our target audience is AI/Python developers learning agentic programming. Requiring them to install and navigate a game engine IDE is a massive barrier. The Godot editor is a developer tool for us (the framework maintainers), not for agent developers.
Vision
The user experience should be:
agent.pypython run.py --scenario foragingOne command. No Godot IDE. No manual scene selection. No pressing SPACE.
Design: Option D (Combination)
Primary flow: Python-driven launch
--scenario foragingFallback: In-game launcher menu
If the game executable is launched directly (double-click or no
--scenarioarg):Power user: CLI args to executable
For scripting, CI/eval runs, and advanced workflows.
Implementation Plan
Phase 1: Godot — Launcher scene + CLI args
scenes/launcher.tscnmenu scene (simple UI with scenario cards)scripts/autoload/launch_config.gd) usingOS.get_cmdline_user_args()--scenario <name>→ load that scene directly--port <number>→ override IPC port (default 5000)--auto-start→ skip waiting for SPACE, start simulation immediatelylauncher.tscnas the new main scene inproject.godotPhase 2: Godot — Export as executable
export_presets.cfg).exein releases? Separate download? Git LFS?Phase 3: Python — Auto-launch integration
run.pyscripts to accept--scenarioflagsubprocess.Popen()to start the gamerun_foraging_demo.pyto use new launch flowPhase 4: Documentation
CLAUDE.mdandproject-context.mdwith new architectureAcceptance Criteria
python run.py --scenario foraginglaunches game + agent with zero manual stepsagent_arena.exedirectly shows a scenario selection menuagent_arena.exe --scenario foraging --auto-startloads and starts immediatelyArchitecture Notes
Current state (what changes)
project.godotmain scene:foraging.tscn→launcher.tscn.tscnin editor → CLI arg or launcher menuNew autoload:
LaunchConfigParses CLI args and exposes them as a singleton:
Existing autoloads (unchanged)
IPCService— HTTP client to Python backend (just needs to read port from LaunchConfig)ToolRegistryService— tool schema managementEstimated Effort
~3-4 days across all phases (can be split across multiple PRs)
Supersedes
This issue supersedes #70 (onboarding guide with screenshots). The documentation work from #70 is captured in Phase 4, but the core approach changes from "document the Godot IDE workflow" to "eliminate the Godot IDE workflow entirely."