When to Use
- Planning or implementing any feature, mechanic, or system in a Unity game (jam or prototype)
- An agent is about to write C# or build scenes via the Unity MCP
- Deciding between building something vs. using an existing asset, package, or placeholder
- Reviewing scope when time is limited and the game must ship
Prerequisites — validate the environment BEFORE anything
The skill only works when the agent can reach Unity through the MCP bridge. Run this checklist once per session and report the result:
| Check | How to validate | Required |
|---|
| Unity Editor connected via MCP | tools respond; editor state ready | ✅ |
| installed | manage_packages(action="list_packages")
shows it (bridge from https://github.com/CoplayDev/unity-mcp) | ✅ |
| installed | manage_packages(action="list_packages")
shows it (Unity AI Agents) | ✅ |
| installed | manage_packages(action="list_packages")
shows it | ✅ for EditMode tests |
If any required package is missing, STOP and tell the user how to install it — do NOT start building. Do not guess package names: read the actual package list.
Install commands (when missing)
bash
# unity-mcp (CoplayDev) — Package Manager → Add from git URL
manage_packages(action="add_package", package="https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#main")
# Unity AI Assistant (Agentes.IA) — requires Unity 6.0+, project linked to Unity Cloud
manage_packages(action="add_package", package="com.unity.ai.assistant")
# Test Framework (for EditMode/PlayMode validation)
manage_packages(action="add_package", package="com.unity.test-framework")
Idea Validator — from theme to ONE playable concept
The jam starts with a theme, not a game. Go from theme → ONE direction whose core loop is buildable in the jam time. This is a KILLER of ideas, not a cheerleader: it says NO to ~90% of ideas.
Collect preferences first — ask, don't assume
The theme shapes the idea, but the human shapes the choices. ASK the user's preferences BEFORE generating directions — do NOT invent their skills. Keep it to 5 questions max, ask one at a time:
| # | Question | Why it matters |
|---|
| 1 | What genre are you strongest at / enjoy most? (e.g. shooter, platformer, puzzle) | Strongest genre = highest odds of finishing well |
| 2 | How much jam time do you have? (hours) | Sets the scope ceiling for "Finish in jam time" |
| 3 | Solo or team? Team size? | More hands = more scope allowed |
| 4 | Unity + C# comfort level? (beginner / comfortable / strong) | Beginner → simpler architecture + more placeholders |
| 5 | Any must-haves or must-avoids? (e.g. no 3D, love roguelikes, want local multiplayer) | Hard constraints that can kill an idea instantly |
Rules:
- Preferences are a FILTER, not the whole game: genre narrows the field, theme shapes the idea. A shooter preference + theme "growth" → a shooter about growing, not just a shooter.
- If the user does not answer, use sensible defaults (top-down action, 48h, solo, comfortable) and STATE the assumption.
- When generating directions, honor hard preferences (genre, must-avoids) in EVERY pitch; use soft ones (time, team, skill) to tune scope.
Generate 3–5 directions
Give every direction a one-sentence pitch: genre + the exact 10-second action the player does + how it interprets the theme.
| Direction | One-sentence pitch | Theme take (literal / metaphor) |
|---|
| A | ... | ... |
| B | ... | ... |
| C | ... | ... |
Validate each direction
| Criterion | Question | Fail → |
|---|
| Core loop | Can you state what the player does every 10 seconds in ONE sentence? | Not ready — rephrase or cut. |
| Prototype in <1h | Can the core loop be grey-boxed in 1 hour? | Too many systems — simplify or cut. |
| Fun-risk | Is the fun testable in play mode immediately (1 object, 1 target)? | Defer — needs 5 systems to feel anything. |
| Finish in jam time | Can it be FINISHED (not just started) in the jam hours? | Cut or shrink scope. |
| Standout | What makes it memorable vs 100 entries with the same theme? | No answer — it's the crowd idea, rethink. |
| Theme tie | Can you defend the theme connection in one sentence? | Literal ties are safe but crowded; metaphor is riskier but more memorable. |
Verdicts
- BUILD NOW — passes everything: start the mini-prototype in the first hour.
- VALIDATE FIRST — fun is uncertain: build only the core loop grey-box; fun in that hour decides if it stays.
- CUT — fails core loop, scope, or standout: record it, move to the next direction.
Rules
- The first hour of the jam is a MINI-PROTOTYPE of the chosen idea. If it is not fun after that hour, switch to the #2 direction. Do NOT polish it.
- Do not fall in love with an idea. The validator says NO until an idea survives every criterion.
- Division of labor: the AI proposes directions and enforces constraints (quantity + discipline); the human owns taste and the final pick. The AI is the strict mentor, NOT the creative brain.
Critical Patterns
1. The Decision Gate — run it BEFORE proposing any code
For EVERY feature request, answer these five questions internally, in order, and show the verdict when you propose:
| # | Question | Pass | Fail → do this |
|---|
| 1 | Does it serve the CORE LOOP? | It directly supports the primary gameplay loop | Don't build now. Write it down, move on. |
| 2 | Can it be done in <1 hour? | Small, single-mechanic scope | Split it, cut it, or timebox it. |
| 3 | Is there a 10x simpler version? | The simplest possible version is identified | Keep simplifying until the 10x version is obvious. |
| 4 | Asset over custom? | An existing asset/placeholder is good enough | Use the asset. Do NOT hand-roll. |
| 5 | Does it raise the odds of FINISHING? | The game gets closer to playable | Cut it. Finishing beats polish. |
A feature that fails the gate is not wrong — it is NOT NOW. Record it and protect the core loop.
2. Gameplay-first mandate
- Validate the fun BEFORE the architecture. A grey-boxed mechanic in play mode beats a clean-but-unplayable system.
- Minimal architecture: no DI containers, no event buses, no "extensible systems" in a jam. One scene, plain MonoBehaviours, direct references.
- Placeholders are features: cubes, capsules, and white sprites are acceptable stand-ins for art until the loop is fun.
3. Kill-or-simplify timebox
- If a mechanic is not fun after one focused iteration, kill it or simplify it. Do NOT polish a bad idea.
- Prefer deleting code over refactoring it when the feature is not core.
Unity MCP Workflow
- Idea validated first: ask the user's preferences (genre, time, team, skill, must-haves) → run the Idea Validator with theme + preferences → ONE direction with a core loop stated in one sentence. Do NOT open the editor before this exists.
- Validate prerequisites first (see Prerequisites section): editor connected via MCP + required packages installed. Then check for compile errors — never build on a broken compile.
- Create or modify scripts, then immediately to catch compilation errors before proceeding.
- Validate visual/gameplay changes with play mode ( play/pause/stop) + screenshots; validate logic with (EditMode/PlayMode).
- Build the scene with the minimum GameObjects needed: camera, light, one playable object, one interactable target.
- Iterate: change → compile check → play → confirm fun → commit.
Code Examples
Minimal before polished — the whole game loop in a handful of MonoBehaviours:
csharp
// Placeholder player controller — enough to validate the core loop
public class Player : MonoBehaviour
{
public float speed = 5f;
void Update()
{
var h = Input.GetAxis("Horizontal");
var v = Input.GetAxis("Vertical");
transform.position += new Vector3(h, 0, v) * speed * Time.deltaTime;
}
}
Pure logic, easily testable in EditMode — keep game rules outside MonoBehaviours so they can be validated fast:
csharp
public class Health
{
public int Current { get; private set; }
public Health(int start) => Current = start;
public void TakeDamage(int amount) => Current = Mathf.Max(0, Current - amount);
}
csharp
// Assets/Tests/EditMode/HealthTests.cs
public class HealthTests
{
[Test]
public void Health_NeverGoesBelowZero()
{
var h = new Health(5);
h.TakeDamage(99);
Assert.AreEqual(0, h.Current);
}
}
Commands
bash
# Unity MCP: validate environment first
manage_packages(action="list_packages") # required: com.coplaydev.unity-mcp, com.unity.ai.assistant, com.unity.test-framework
# Unity MCP: validate logic fast
run_tests(mode="EditMode") # then poll get_test_job
# Unity MCP: validate feel
manage_editor(action="play") # play mode
read_console(types=["error"]) # compile + runtime errors
Resources
- Unity MCP tools: full tool list in the session (unityMCP server).
- Decision Gate: keep the 5-question table in front of every proposal.