agentleFS
scotidevscotidev/GameDevStudio/.agents/skills/setup-engine/SKILL.md

setup-engine

Skill1 starsChanged 8 months agoMITView on GitHub

Configure the project's game engine and version. Pins the engine in AGENTS.md, detects knowledge gaps, and populates engine reference docs via WebSearch when the version is beyond the LLM's training data.

12 other projects use a version of this, 8 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use asset-spec, create-control-manifest and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • lilangMaxSkill

    asset-spec

    Generate per-asset visual specifications and AI generation prompts from GDDs, level docs, or character profiles. Produces structured spec files and updates the master asset manifest. Run after art bible and GDD/level design are approved, before production begins.

    Also in 9 projects that use this

  • lilangMaxSkill

    create-control-manifest

    After architecture is complete, produces a flat actionable rules sheet for programmers — what you must do, what you must never do, per system and per layer. Extracted from all Accepted ADRs, technical preferences, and engine reference docs. More immediately actionable than ADRs (which explain why).

    Also in 9 projects that use this

  • MRCalderon3DSkill

    art-bible

    Define a visual direction that artists, UI, technical art, and marketing can execute consistently.

    Also in 10 projects that use this

  • +9 more from lilangMax

The file

Show its rules and text

We split this skill into the rules it gives an agent

31 rules. 1 is common, 23 are distinctive, and 7 are very specific to this project.

  • 1

    Common

    Most of the 11 edited versions we read keep these.

  • 23

    Distinctive

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Common:

    When this skill is invoked:

    line 9
  2. Distinctive:

    If no engine is specified, run an interactive engine selection process:

    line 23
  3. Very specific:

    Read design/gdd/game-concept.md if it exists — extract genre, scope, platform targets, art style, team size, and any engine recommendation …

    line 27
  4. Distinctive:

    If no concept exists, inform the user:

    line 29
  5. Distinctive:

    Use this decision matrix:

    line 44
  6. Distinctive:

    If version was provided, use it

    line 67
  7. Distinctive:

    If no version provided, use WebSearch to find the latest stable release:

    line 68
  8. Very specific:

    Read AGENTS.md and update the Technology Stack section.

    line 76
  9. Very specific:

    After updating AGENTS.md, create or update .agents/docs/technical-preferences.md with engine-appropriate defaults.

    line 110
  10. Distinctive:

    Wait for approval before writing the file.

    line 159
  11. Distinctive:

    Check whether the engine version is likely beyond the LLM's training data.

    line 165
  12. Very specific:

    Create a minimal docs/engine-reference/<engine>/VERSION.md:

    line 188
  13. Distinctive:

    Do NOT create breaking-changes.md, deprecated-apis.md, etc.

    line 208
  14. Distinctive:

    Create the full reference doc set by searching the web:

    line 213
  15. Distinctive:

    For module files: Only create modules for subsystems where significant changes occurred.

    line 241
  16. Very specific:

    Update the @ import under "Engine Version Reference" to point to the correct engine:

    line 248
  17. Distinctive:

    If the previous import pointed to a different engine (e.g., switching from Godot to Unity), update it.

    line 257
  18. Distinctive:

    Check deprecated APIs before suggesting code

    line 271
  19. Distinctive:

    Check breaking changes for relevant version transitions

    line 272
  20. Distinctive:

    Use WebSearch to verify uncertain APIs

    line 273
  21. Very specific:

    If invoked as /setup-engine refresh:

    line 279
  22. Very specific:

    Read the existing docs/engine-reference/<engine>/VERSION.md to get the current engine and version

    line 281
  23. Distinctive:

    Use WebSearch to check for:

    line 283
  24. Distinctive:

    Update all reference docs with new findings

    line 287
  25. Distinctive:

    Update "Last verified" dates on all modified files

    line 288
  26. Distinctive:

    After setup is complete, output:

    line 295
  27. Distinctive:

    NEVER guess an engine version — always verify via WebSearch or user confirmation

    line 320
  28. Distinctive:

    NEVER overwrite existing reference docs without asking — append or update

    line 321
  29. Distinctive:

    If reference docs already exist for a different engine, ask before replacing

    line 322
  30. Distinctive:

    Always show the user what you're about to change before making AGENTS.md edits

    line 323
  31. Distinctive:

    If WebSearch returns ambiguous results, show the user and let them decide

    line 324

“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

When this skill is invoked:

1. Parse Arguments

Three modes:

  • Full spec: /setup-engine godot 4.6 — engine and version provided
  • Engine only: /setup-engine unity — engine provided, version will be looked up
  • No args: /setup-engine — fully guided mode (engine recommendation + version)

2. Guided Mode (No Arguments)

If no engine is specified, run an interactive engine selection process:

Check for existing game concept

  • Read design/gdd/game-concept.md if it exists — extract genre, scope, platform targets, art style, team size, and any engine recommendation from /brainstorm
  • If no concept exists, inform the user:

    "No game concept found. Consider running /brainstorm first to discover what you want to build — it will also recommend an engine. Or tell me about your game and I can help you pick."

If the user wants to pick without a concept, ask:

  1. What kind of game? (2D, 3D, or both?)
  2. What platforms? (PC, mobile, console, web?)
  3. Team size and experience? (solo beginner, solo experienced, small team?)
  4. Any strong language preferences? (GDScript, C#, C++, visual scripting?)
  5. Budget for engine licensing? (free only, or commercial licenses OK?)

Produce a recommendation

Use this decision matrix:

FactorGodot 4UnityUnreal Engine 5
Best for2D games, small 3D, solo/small teamsMobile, mid-scope 3D, cross-platformAAA 3D, photorealism, large teams
LanguageGDScript (+ C#, C++ via extensions)C#C++ / Blueprint
CostFree, MIT licenseFree under revenue thresholdFree under revenue threshold, 5% royalty
Learning curveGentleModerateSteep
2D supportExcellent (native)Good (but 3D-first engine)Possible but not ideal
3D quality ceilingGood (improving rapidly)Very goodBest-in-class
Web exportYes (native)Yes (limited)No
Console exportVia third-partyYes (with license)Yes
Open sourceYesNoSource available

Present the top 1-2 recommendations with reasoning tied to the user's answers. Let the user choose — never force a recommendation.


3. Look Up Current Version

Once the engine is chosen:

  • If version was provided, use it
  • If no version provided, use WebSearch to find the latest stable release:
    • Search: "[engine] latest stable version [current year]"
    • Confirm with the user: "The latest stable [engine] is [version]. Use this?"

4. Update AGENTS.md Technology Stack

Read AGENTS.md and update the Technology Stack section. Replace the [CHOOSE] placeholders with the actual values:

For Godot:

- **Engine**: Godot [version]
- **Language**: GDScript (primary), C++ via GDExtension (performance-critical)
- **Build System**: SCons (engine), Godot Export Templates
- **Asset Pipeline**: Godot Import System + custom resource pipeline

For Unity:

- **Engine**: Unity [version]
- **Language**: C#
- **Build System**: Unity Build Pipeline
- **Asset Pipeline**: Unity Asset Import Pipeline + Addressables

For Unreal:

- **Engine**: Unreal Engine [version]
- **Language**: C++ (primary), Blueprint (gameplay prototyping)
- **Build System**: Unreal Build Tool (UBT)
- **Asset Pipeline**: Unreal Content Pipeline

5. Populate Technical Preferences

After updating AGENTS.md, create or update .agents/docs/technical-preferences.md with engine-appropriate defaults. Read the existing template first, then fill in:

Engine & Language Section

  • Fill from the engine choice made in step 4

Naming Conventions (engine defaults)

For Godot (GDScript):

  • Classes: PascalCase (e.g., PlayerController)
  • Variables/functions: snake_case (e.g., move_speed)
  • Signals: snake_case past tense (e.g., health_changed)
  • Files: snake_case matching class (e.g., player_controller.gd)
  • Scenes: PascalCase matching root node (e.g., PlayerController.tscn)
  • Constants: UPPER_SNAKE_CASE (e.g., MAX_HEALTH)

For Unity (C#):

  • Classes: PascalCase (e.g., PlayerController)
  • Public fields/properties: PascalCase (e.g., MoveSpeed)
  • Private fields: _camelCase (e.g., _moveSpeed)
  • Methods: PascalCase (e.g., TakeDamage())
  • Files: PascalCase matching class (e.g., PlayerController.cs)
  • Constants: PascalCase or UPPER_SNAKE_CASE

For Unreal (C++):

  • Classes: Prefixed PascalCase (A for Actor, U for UObject, F for struct)
  • Variables: PascalCase (e.g., MoveSpeed)
  • Functions: PascalCase (e.g., TakeDamage())
  • Booleans: b prefix (e.g., bIsAlive)
  • Files: Match class without prefix (e.g., PlayerController.h)

Remaining Sections

  • Performance Budgets: Leave as [TO BE CONFIGURED] with a suggestion:

    "Typical targets: 60fps / 16.6ms frame budget. Want to set these now?"

  • Testing: Suggest engine-appropriate framework (GUT for Godot, NUnit for Unity, etc.)
  • Forbidden Patterns / Allowed Libraries: Leave as placeholder

Collaborative Step

Present the filled-in preferences to the user:

"Here are the default technical preferences for [engine]. Want to customize any of these, or shall I save the defaults?"

Wait for approval before writing the file.


6. Determine Knowledge Gap

Check whether the engine version is likely beyond the LLM's training data.

Known approximate coverage (update this as models change):

  • LLM knowledge cutoff: May 2025
  • Godot: training data likely covers up to ~4.3
  • Unity: training data likely covers up to ~2023.x / early 6000.x
  • Unreal: training data likely covers up to ~5.3 / early 5.4

Compare the user's chosen version against these baselines:

  • Within training data → LOW RISK — reference docs optional but recommended
  • Near the edge → MEDIUM RISK — reference docs recommended
  • Beyond training data → HIGH RISK — reference docs required

Inform the user which category they're in and why.


7. Populate Engine Reference Docs

If WITHIN training data (LOW RISK):

Create a minimal docs/engine-reference/<engine>/VERSION.md:

# [Engine] — Version Reference

| Field                    | Value                                     |
| ------------------------ | ----------------------------------------- |
| **Engine Version**       | [version]                                 |
| **Project Pinned**       | [today's date]                            |
| **LLM Knowledge Cutoff** | May 2025                                  |
| **Risk Level**           | LOW — version is within LLM training data |

## Note

This engine version is within the LLM's training data. Engine reference
docs are optional but can be added later if agents suggest incorrect APIs.

Run `/setup-engine refresh` to populate full reference docs at any time.

Do NOT create breaking-changes.md, deprecated-apis.md, etc. — they would add context cost with minimal value.

If BEYOND training data (MEDIUM or HIGH RISK):

Create the full reference doc set by searching the web:

  1. Search for the official migration/upgrade guide:
    • "[engine] [old version] to [new version] migration guide"
    • "[engine] [version] breaking changes"
    • "[engine] [version] changelog"
    • "[engine] [version] deprecated API"
  2. Fetch and extract from official documentation:
    • Breaking changes between each version from the training cutoff to current
    • Deprecated APIs with replacements
    • New features and best practices
  3. Create the full reference directory:

    docs/engine-reference/<engine>/
    ├── VERSION.md              # Version pin + knowledge gap analysis
    ├── breaking-changes.md     # Version-by-version breaking changes
    ├── deprecated-apis.md      # "Don't use X → Use Y" tables
    ├── current-best-practices.md  # New practices since training cutoff
    └── modules/                # Per-subsystem references (create as needed)
  4. Populate each file using real data from the web searches, following the format established in existing reference docs. Every file must have a "Last verified: [date]" header.
  5. For module files: Only create modules for subsystems where significant changes occurred. Don't create empty or minimal module files.

8. Update AGENTS.md Import

Update the @ import under "Engine Version Reference" to point to the correct engine:

## Engine Version Reference

@docs/engine-reference/<engine>/VERSION.md

If the previous import pointed to a different engine (e.g., switching from Godot to Unity), update it.


9. Update Agent Instructions

For the chosen engine's specialist agents, verify they have a "Version Awareness" section. If not, add one following the pattern in the existing Godot specialist agents.

The section should instruct the agent to:

  1. Read docs/engine-reference/<engine>/VERSION.md
  2. Check deprecated APIs before suggesting code
  3. Check breaking changes for relevant version transitions
  4. Use WebSearch to verify uncertain APIs

10. Refresh Subcommand

If invoked as /setup-engine refresh:

  1. Read the existing docs/engine-reference/<engine>/VERSION.md to get the current engine and version
  2. Use WebSearch to check for:
    • New engine releases since last verification
    • Updated migration guides
    • Newly deprecated APIs
  3. Update all reference docs with new findings
  4. Update "Last verified" dates on all modified files
  5. Report what changed

11. Output Summary

After setup is complete, output:

Engine Setup Complete
=====================
Engine:          [name] [version]
Knowledge Risk:  [LOW/MEDIUM/HIGH]
Reference Docs:  [created/skipped]
AGENTS.md:       [updated]
Tech Prefs:      [created/updated]
Agent Config:    [verified]

Next Steps:
1. Review docs/engine-reference/<engine>/VERSION.md
2. [If from /brainstorm] Run /map-systems to decompose your concept into individual systems
3. [If from /brainstorm] Run /design-system to author per-system GDDs (guided, section-by-section)
4. [If from /brainstorm] Run /prototype [core-mechanic] to test the core loop
5. [If fresh start] Run /brainstorm to discover your game concept
6. Create your first milestone: /sprint-plan new

Guardrails

  • NEVER guess an engine version — always verify via WebSearch or user confirmation
  • NEVER overwrite existing reference docs without asking — append or update
  • If reference docs already exist for a different engine, ask before replacing
  • Always show the user what you're about to change before making AGENTS.md edits
  • If WebSearch returns ambiguous results, show the user and let them decide

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.