UnityBench-Mini3D: Evaluating LLM Agents for 3D Game Development in Unity
Organizations: Unity China · New York University · University of Chinese Academy of Sciences · Xiamen University ·
Abstract
Game development stresses coding agents in ways general software engineering does not: correctness depends on how engine APIs, serialized scene state, and runtime behavior interact, not on source code alone. Existing benchmarks mainly target platforms such as Godot and heavily rely on LLM judges or coarse task-level outcomes. We present UnityBench-Mini3D, a benchmark of 77 project-level Unity tasks organized around seven expert-defined skill categories rather than tutorials or genres, with three difficulty tiers. Each task pairs a complete Unity project with natural-language requirements and is evaluated using 1,178 held-out, human-authored milestone tests covering scene structure, component configuration, and runtime behavior. This in-engine evaluation provides deterministic partial credit, localizes failures, and distinguishes partial implementations from complete solutions without relying on subjective judges. Across 21 models and 9 coding harnesses, the average pass rate reaches 80.9% on easy tasks but falls to 35.2% on hard tasks, with just 57.7% overall. UnityBench-Mini3D provides a reproducible, diagnostic testbed distinguishing systems across difficulty levels.
Figures & tables
| Benchmark | Engine | Src. | Scope | Tk./Ts. | D./P. | Cat. | ||
|---|---|---|---|---|---|---|---|---|
| V-GameGym [17] | Pygame | Repos. | File | 2,219 / | – | ✗ / | ✗ | 100 (C) |
| WebGame [18] | Browser | Web/user | Proj. | 111 / | – | ✗ / | ✗ | 7 (G) |
| GameDev [4] | Godot | Tutorials | Proj. | 333 / | – | ✓ / | ✗ | 4 (S) |
| GameCraft [12] | Godot | Human | Proj. | 140 / | – | ✗ / | ✓ | 15 (G) |
| JamBench [13] | Godot | Jams | Proj. | 300 / | – | ✓ / | ✗ | – |
| GameLogic [1] | Godot | Repos./Games | Proj. | 72 / | 1,451 | ✓ / | ✗ | 7 (S) |
| Category | # Tasks | # Tests | Skills exercised | Primary requirement |
| Scene construction | 19 | 365 | Transforms, hierarchy, prefabs, terrain, cameras, NavMesh | Assemble and organize scene content under spatial, hierarchy, and navigation constraints. |
| Animation | 12 | 179 | Animation clips, Animator, events, layers, Avatar Masks, IK, Playables | Configure animation assets and controllers to produce coordinated runtime motion and character poses. |
| Particles & shaders | 12 | 155 | Particle System, VFX Graph, Shader Graph, shaders, materials | Construct and configure visual effects, and implement or adapt shaders and materials to the required behavior and rendering pipeline. |
| Physics | 11 | 168 | Rigidbodies, colliders, physics materials, joints, WheelCollider, Cloth, procedural meshes | Implement and configure physical motion, collisions, and interactions under specified runtime constraints. |
| User interface | 9 | 111 | UGUI, Canvas, RectTransform, UI Toolkit, Sprite Editor, RenderTexture | Prepare UI assets and implement layouts, input handling, and visual feedback. |
| Editor operations | 11 | 142 | Hierarchy organization, AssetDatabase, importers, Undo, project settings, ScriptableObject, audio integration | Organize and configure scenes, assets, and project settings, and integrate functionality while preserving existing references and behavior. |
| Configuration | Task category (%) | Difficulty (%) | Efficiency | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Setting | Harness | Model | UI | Anm. | Edtr. | Scn. | P.&S. | Phys. | Misc. | O.a. (%) | Easy | Med. | Hard | C. ($) | T. (m) |
| w/o [-0.35ex] MM | OpenCode | Kimi K3 | 60.46 | 69.32 | 65.30 | 52.91 | 83.16 | 62.72 | 31.99 | 63.42 | 91.51 | 64.83 | 31.11 | 13.64 | 34.78 |
| Codex | GPT 5.6 Sol | 65.19 | 73.38 | 88.08 | 61.99 | 87.14 | 74.66 | 58.43 | 73.46 | 92.31 | 67.33 | 60.69 | 18.46 | 14.90 | |
| Codely | Kimi K3 | 65.24 | 72.24 | 78.35 | 50.57 | 83.16 | 73.02 | 55.10 | 68.09 | 94.10 | 68.32 | 39.53 | 16.64 | 34.37 | |
| w/o [-0.35ex] MCP | Codely | GPT 5.6 Sol | 51.32 | 62.55 | 73.37 | 44.01 | 58.33 | 64.45 | 29.63 | 56.54 | 80.42 | 53.40 | 34.54 | 25.44 | 26.42 |
| GLM 5.2 | 56.84 | 55.44 | 71.07 | 33.26 | 67.13 | 62.20 | 51.77 | 55.01 | 82.66 | 51.60 | 29.26 | 11.31 | 24.64 | ||
Appendix figures & tables22 assets
Supplementary material from the paper’s appendix.
Appendix
| CHALLENGE LIST 77 tasks · 7 skill categories |
|---|
| User Interface 9 tasks · 111 milestone tests |
| 0025-FPSCompassHUDCalibration Easy 6 tests Compass HUD Direction Calibration Initial Challenge Template Completed Golden Reference |
| 0050-UIToolkitSnake Easy 23 tests Snake Game Implemented with Unity UI Toolkit Initial Challenge Template Completed Golden Reference |
| 0063-MinimapRealization Easy 7 tests Minimap UI Implementation Initial Challenge Template Completed Golden Reference |
| 0010-SplitTheUI Medium 11 tests UI Sprite Sheet Slicing Initial Challenge Template Completed Golden Reference |
| 0023-UIRedoBench Medium 9 tests GoldenBench UI Recreation Initial Challenge Template Completed Golden Reference |
| SPECIFICATIONS goal · context · constraints · resources | |
|---|---|
| User Interface 9 tasks · 111 milestone tests | |
| 0025-FPSCompassHUDCalibration Easy 6 tests Compass HUD Direction Calibration | |
| Goal | Fix the direction display of the compass HUD in the provided CompassHUD.cs. |
| Context | CompassHUD already contains a compass viewport, repeating texture, and scrolling logic, but its direction mapping is incorrect. |
| Constraints | • Only modify the direction calculation and the NorthCalibrationDegrees calibration value in CompassHUD.cs. Do not modify the compass UI creation logic, texture repetition method, stripRoot.anchoredPosition displacement formula, or smooth scrolling logic. |
| • When the player’s view faces world Z+, the compass center line should align with N. | |
| TEST CASES 1,178 independent pass/fail checks | |
|---|---|
| User Interface 9 tasks · 111 milestone tests | |
| 0025-FPSCompassHUDCalibration Easy 6 tests Compass HUD Direction Calibration | |
| Test 01 | RuntimeHeading_Earns1Of6_WhenCardinalDirectionsAreWithin6Degrees Checks that runtime behavior heading earns 1 of 6 when cardinal directions are within 6 degrees. |
| Test 02 | RuntimeHeading_Earns2Of6_WhenCardinalDirectionsAreWithin5Degrees Checks that runtime behavior heading earns 2 of 6 when cardinal directions are within 5 degrees. |
| Test 03 | RuntimeHeading_Earns3Of6_WhenCardinalDirectionsAreWithin4Degrees Checks that runtime behavior heading earns 3 of 6 when cardinal directions are within 4 degrees. |
| Test 04 | RuntimeHeading_Earns4Of6_WhenCardinalDirectionsAreWithin3Degrees Checks that runtime behavior heading earns 4 of 6 when cardinal directions are within 3 degrees. |
| Harness: Codely CLI version: 1.0.0-nightly.51 | |
|---|---|
| Tool | Description |
| activate_skill | Activates a specialized agent skill by name. |
| analyze_multimedia | Analyzes images, videos, and audio files using a multimodal model. |
| apply_patch | Apply a structured patch document to edit files. |
| cron_create | Schedule a prompt to be enqueued at a future time. |
| cron_delete | Cancel a cron job previously scheduled with cron_create. |
| Harness: Codex CLI CLI version: 0.147.0 | |
|---|---|
| Tool | Description |
| apply_patch | Apply a structured patch to create, modify, or delete files. |
| current_time | Retrieve the current time when the current-time capability is enabled. |
| exec_command | Execute shell commands in the local execution environment. |
| followup_task | Create a follow-up task for a sub-agent. |
| get_context_remaining | Retrieve information about the remaining context budget. |
| Harness: Claude Code CLI version: 2.1.233 Models: Claude Opus 5 and Claude Sonnet 5 | |
|---|---|
| Tool | Description |
| Task | Launch or resume a subagent for a delegated task. |
| Bash | Execute shell commands in the current workspace. |
| CronCreate | Create a one-shot or recurring scheduled job. |
| CronDelete | Delete a scheduled job by its identifier. |
| CronList | List scheduled jobs in the current session. |
| Harness: Grok Build CLI version: 1.0.5 | |
|---|---|
| Tool | Description |
| ask_user_question | Ask the user structured multiple-choice questions. |
| enter_plan_mode | Enter a read-only planning phase before implementation. |
| exit_plan_mode | Present a completed plan for user approval and leave plan mode. |
| get_command_or_subagent_output | Retrieve status and output from a background command, monitor, or subagent. |
| grep | Search file contents with regular expressions. |
| Harness: DeepSeek Harness CLI version: 0.1.1-rc.2 | |
|---|---|
| Tool | Description |
| create_goal | Create a persistent same-session goal for autonomous continuation. |
| edit | Replace exact literal text in an existing UTF-8 file. |
| exit_plan_mode | Present a complete plan for user review and approval. |
| get_goal | Read the current goal, revision, phase, limits, and blockers. |
| glob | Find file paths that match a glob pattern. |
| Harness: OpenCode CLI version: 1.18.23 | |
|---|---|
| Tool | Description |
| apply_patch | Apply patches to files. |
| bash | Execute shell commands in your project environment. |
| edit | Modify existing files using exact string replacements. |
| glob | Find files by pattern matching. |
| grep | Search file contents using regular expressions. |
| Harness: Qwen Code CLI version: 0.21.13 / 0.21.14 | |
|---|---|
| Tool | Description |
| agent | Use agent to launch a specialized subagent to handle complex, multi-step tasks autonomously. |
| computer_use__kill_app | Terminate a desktop application by process ID. |
| computer_use__list_apps | List running and installed desktop applications with their process IDs. |
| computer_use__list_windows | List the on-screen windows of a desktop application. |
| edit | Edit replaces text within a file. |
| Harness: Antigravity CLI version: 1.1.19 | |
|---|---|
| Tool | Description |
| find_by_name | Find files and directories by name pattern, with extension, type, depth, and exclude filters. |
| grep_search | Search file contents for a query or regular expression, with case-insensitive and file-include filters. |
| list_dir | List the contents of a directory. |
| manage_task | Inspect and control background tasks: list them, query status, or kill by task ID. |
| read_url_content | Fetch and read the content of a URL. |
| Harness: Kimi Code CLI version: 0.36.1 | |
|---|---|
| Tool | Description |
| Agent | Launch or resume one subagent for a delegated task. |
| AgentSwarm | Launch or resume multiple subagents in parallel. |
| AskUserQuestion | Ask the user structured questions with selectable options. |
| Bash | Execute shell commands in the foreground or background. |
| CreateGoal | Create a durable goal that persists across turns. |