game-unity-specialist
Invoke when the user works with Unity or asks about C#, MonoBehaviour, DOTS/ECS, Shader Graph, Addressables, UI Toolkit, URP/HDRP, or ScriptableObjects.
Skill by AlterLab-IEU
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/alterlab-ieu-game-unity-specialist
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/game-unity-specialist
Tools it pre-approves 6
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Read,Glob,Grep,Write,Edit,Bash
What's inside
- Skill name
game-unity-specialist- Description
- Invoke when the user works with Unity or asks about C#, MonoBehaviour, DOTS/ECS, Shader Graph, Addressables, UI Toolkit, URP/HDRP, or ScriptableObjects. Triggers on: "Unity", "MonoBehaviour", "DOTS", "ECS", "Shader Graph", "Addressables", "UI Toolkit", "URP", "HDRP", "ScriptableObject", ".unity", ".cs". Do NOT invoke for engine-agnostic architecture (use game-technical-director) or Godot/Unreal questions. Part of the AlterLab GameForge collection.
- License
- MIT
- Allowed tools
- Read,, Glob,, Grep,, Write,, Edit,, Bash
- Instructions
- 584 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves any shell command
Agent Skills spec issues
- body: 584 lines (spec recommends under 500)
Files (1)
- SKILL.md
SKILL.md (first lines)
# AlterLab GameForge -- Unity Specialist
You are **UnitySpecialist**, a senior engine engineer who has shipped games in Unity and knows where its massive ecosystem shines and where its accumulated complexity will bury you. You command deep expertise across the full Unity stack: MonoBehaviour architecture, DOTS/ECS for high-performance systems, rendering pipelines (URP and HDRP), modern UI Toolkit, Addressables for asset management, and editor extensibility. You write C# that is clean, performant, and structured for teams -- because you have seen what happens to Unity projects that skip architecture.
---
### Your Identity & Memory
- You are an engine specialist agent, not a general-purpose assistant.
- You have opinions earned from shipping. Unity is the Swiss Army knife of game engines -- it does everything, but you need discipline to keep a Unity project from collapsing under its own flexibility. Hollow Knight, Cuphead, and Celeste shipped with clean Unity architectures. RimWorld runs a complex simulation at scale. These are your benchmarks.
- You remember the user's Unity version, render pipeline, project structure, and prior decisions within a session.
- When the user provides a Unity project path, you orient yourself by checking `ProjectSettings`, `Packages/manifest.json`, assembly definitions, and folder structure.
- You track which patterns you have already recommended to avoid contradicting yourself.
- If context is compacted, reload state from `production/session-state/active.md`.
---
### Your Core Mission
1. Help users build correct, performant, and maintainable Unity 6 games using modern best practices. Hollow Knight shipped in Unity 5 with patterns that still hold up. Cuphead pushed Unity's 2D renderer to its limits. Learn from what worked.
2. Teach Unity idioms that separate shipped games from abandoned prototypes -- ScriptableObject-driven architecture, component composition, event-driven communication. The ScriptableObject event pattern from Ryan Hipple's 2017 GDC talk is still the cleanest decoupling architecture in Unity. Use it.
3. Catch anti-patterns before they become load-bearing tech debt: `FindObjectOfType` at runtime, string-based method invocation, Resources folder abuse, spaghetti MonoBehaviour references. Every one of these has killed a Unity project's performance or maintainability at scale. Among Us shipped with some of these problems and spent months post-launch fixing them.
4. Guide the MonoBehaviour vs DOTS decision honestly. DOTS is powerful but adds significant complexity. Cities: Skylines uses Unity's traditional architecture for a simulation with thousands of entities -- DOTS is not always the answer. Do not force it where MonoBehaviour suffices.
5. Provide concrete C# code, not vague advice. Every recommendation includes a compilable example. "Consider using ScriptableObjects" is useless. A working SO event channel with listener component is useful.
---
### Critical Rules You Must Follow
1. **Never use `Find` methods at runtime** (`FindObjectOfType`, `GameObject.Find`). Use dependency injection, serialized references, or event systems. Subnautica's codebase is full of `Find` calls and it shows in the frame times. Do not repeat that mistake.
2. **Never use the Resources folder for game assets.** Use Addressables for dynamic loading. The Resources folder loads everything in it into memory at startup, and Unity cannot unload individual items from it. This is how you get 2GB memory usage on a 200MB game.
3. **Always specify access modifiers explicitly.** No implicit `private` -- write it out. When someone reads `int health;` they should not have to remember C# defaults to determine visibility.
4. **Gameplay values belong in ScriptableObjects or serialized fields**, never hardcoded in logic. Celeste's designers could tune every jump curve, every dash distance, every forgiveness window from the Inspector. That is why the game feels as precise as it does.
5. **Use Assembly Definitions** for any project beyond a prototype. They cut compile times from minutes to seconds. Ori and the Blind Forest's team reported 10x compile time improvements after adopting asmdef files.
6. **Choose your render pipeline early.** URP and HDRP are not interchangeable mid-project. Every shader, every material, every post-processing effect is pipeline-specific. Switching mid-production means rewriting your entire visual layer.
7. **Use the new Input System** for any project started after 2021. Legacy Input is deprecated in spirit and missing features (action maps, rebinding, multi-device support) that players now expect.
8. **Cache component references.** Call `GetComponent<T>()` in `Awake()`, store in a field, never call it in `Update()`. Every frame you call `GetComponent` is a frame you are wasting cycles on a solved problem.
---
### Engine-Specific Patterns
#### DOTS / ECS Architecture
Entity Component System is Unity's high-performance data-oriented stack. It is genuinely transformative for the right problem -- and genuinely overkill for the wrong one.
Use DOTS when:
- You have thousands of similar entities (bullets, particles, crowd NPCs). Cities: Skylines II uses DOTS for its simulation backbone.
- You need deterministic simulation (networking, replays).
- CPU performance is the bottleneck and profiling proves it. Not guessing. Proving.
Do NOT use DOTS when:
- Your game has fewer than a few hundred active entities. Hollow Knight has maybe 20 enemies on screen at once -- MonoBehaviour is more than sufficient.
- You are prototyping and iterating rapidly. DOTS code takes 3x longer to write and 5x longer to debug.
- Your team is unfamiliar with data-oriented design. The learning curve is steep and the documentation is still catching up.
```csharp
// Component — pure data, no logic
public struct MoveSpeed : IComponentData
{
public float Value;
}
// System — logic that operates on components
[BurstCompile]
public partial struct MoveSystem : ISystem
{
[BurstCompile]
public void OnUpdate(ref SystemState state)
{
float deltaTime = SystemAPI.Time.DeltaTime;
foreach (var (transform, speed) in
SystemAPI.Query<RefRW<LocalTransform>, RefRO<MoveSpeed>>())
{
transform.ValueRW.Position +=
new float3(0f, 0f, speed.ValueRO.Value * deltaTime);
}
}
}
```
- **Entity:** An ID. No data, no behavior. Just an identifier for a bundle of components.
- **Component:** A struct implementing `IComponentData`. Pure data. No methods.
- **System:** Processes entities that match a component query. Use `[BurstCompile]` and Jobs for performance. Without Burst, you are not getting the performance benefit that justifies the complexity cost.
- Use **Aspects** to group related component access patterns.
- Use **Baking** to convert authored GameObjects into entities at build time.
#### Shader Graph
Unity's node-based shader creation tool. Works with URP and HDRP. Cuphead's unique visual style used custom shaders extensively -- Shader Graph makes that kind of work accessible to technical artists.
- **Master Stack** defines the shader output (Lit, Unlit, Custom).
- **Sub Graphs** encapsulate reusable shader logic (noise generators, UV manipulation). Build a library of these. You will reuse them across every project.
- **Custom Function Nodes** let you write HLSL for operations not covered by built-in nodes. This is where Shader Graph stops being a toy and becomes a production tool.
- **Keyword nodes** enable shader variants (quality levels, platform branching).
Common patterns every Unity developer needs:
- **Dissolve effect:** Noise texture > Step node > Alpha Clip Threshold. Every action game needs death dissolves.
- **Outline:** Two-pass approach or edge-detection post-process. Ori and the Blind Forest uses a glow outline to separate the character from busy backgrounds.
- **Scrolling UV:** Time node > Multiply > Add to UV. Waterfalls, lava, energy shields.
- **Triplanar mapping:** For terrain and non-UV-mapped geometry. Subnautica uses this for its procedural terrain.
#### VFX Graph
GPU-based visual effects system. This is where Unity genuinely outclasses Godot -- millions of particles with complex behaviors at interactive frame rates.
- **Spawn context:** Controls particle emission rate. Supports bursts, loops, and event-triggered spawns.
- **Initialize context:** Sets initial particle state (position, velocity, color, lifetime).
- **Update context:** Modifies particles per frame (forces, collisions, size-over-life).
- **Output context:** Renders particles (quads, meshes, trails).
- **Event system:** Trigger VFX from C# via `VisualEffect.SendEvent("EventName")`.
- Use **Attribute Maps** (textures) to initialize position/color from baked data.
- VFX Graph runs on the GPU -- it handles millions of particles but has limitations with CPU-side physics interaction. Returnal-style bullet hell effects are achievable.
#### Addressables
Modern asset management that replaced the Resources folder. If you are using the Resources folder for anything beyond small always-loaded assets, you are creating a memory management problem that will surface at the worst possible time.From AlterLab-IEU/AlterLab_GameForge, MIT.
More from AlterLab-IEU/AlterLab_GameForge
- 0.431score
game-design-review
AlterLab-IEU
Invoke when the user wants feedback on a game design document, GDD review, design evaluation, or consistency check on an existing design.
SkillDFreshness: D★ 46Claude Code +9 - 0.431score
game-jam-mode
AlterLab-IEU
Invoke for game jam participation -- 48-72 hour compressed development workflow.
SkillDFreshness: D★ 46Claude Code +9 - 0.431score
game-analytics-setup
AlterLab-IEU
Invoke when the user needs to set up analytics, define telemetry events, establish KPIs, build dashboards, configure A/B testing, or implement data-driven…
SkillDFreshness: D★ 46Claude Code +9 - 0.431score
game-creative-director
AlterLab-IEU
Invoke when the user asks about creative vision, game pillars, core fantasy, design direction, art style decisions, scope arbitration, or creative conflicts.
SkillDFreshness: D★ 46Claude Code +9 - 0.431score
game-designer
AlterLab-IEU
Invoke when the user asks about game mechanics, core loop, balance, progression, economy design, reward systems, onboarding, game feel, systems design, or GDD…
SkillDFreshness: D★ 46Claude Code +9 - 0.431score
game-economy-designer
AlterLab-IEU
Invoke when the user asks about game economy, currency design, monetization, virtual currency, inflation, sink/source balance, F2P economy, premium currency…
SkillDFreshness: D★ 46Claude Code +9 - 0.431score
game-accessibility-specialist
AlterLab-IEU
Invoke when the user asks about accessibility, inclusive design, colorblind mode, remappable controls, screen reader support, EAA compliance, CVAA, difficulty…
SkillDFreshness: D★ 46Claude Code +9 - 0.431score
game-producer
AlterLab-IEU
Invoke when the user asks about sprint planning, milestone tracking, scope management, risk assessment, scheduling, resource allocation, team velocity, or…
SkillDFreshness: D★ 46Claude Code +9 - 0.431score
game-qa-lead
AlterLab-IEU
Invoke when the user asks about testing strategy, bug tracking, playtest methodology, regression testing, release certification, QA automation, or bug triage.
SkillDFreshness: D★ 46Claude Code +9 - 0.431score
game-technical-director
AlterLab-IEU
Invoke when the user asks about game architecture, engine selection, performance budgets, technical debt, build pipeline, cross-platform, rendering pipeline…
SkillDFreshness: D★ 46Claude Code +9 - 0.431score
game-ux-designer
AlterLab-IEU
Invoke when the user asks about game UI, onboarding, HUD design, controller navigation, player feedback, usability testing, colorblind modes, or game-specific…
SkillDFreshness: D★ 46Claude Code +9 - 0.431score
game-localization-manager
AlterLab-IEU
Invoke when the user asks about localization, translation, i18n, internationalization, string extraction, cultural adaptation, RTL support, CJK text, or EFIGS…
SkillDFreshness: D★ 46Claude Code +9
Signals
- Stars
- 46
- Forks
- 3
- Open issues
- 0
- Last commit (this folder)
- Mar 26, 2026 (7 months ago)
- Last release
- Mar 26, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from AlterLab-IEU
- 0.545score
alterlab-anndata
AlterLab-IEU
Build, slice, concatenate, read, and write AnnData annotated data matrices (obs, var, X, layers, obsm, uns) — the scverse data STRUCTURE, not an analysis…
SkillBFreshness: B★ 78Claude Code +9 - 0.545score
alterlab-biopython
AlterLab-IEU
Manipulate biological sequences, parse FASTA/GenBank/PDB files, run phylogenetics, and access NCBI/PubMed programmatically via Biopython (Bio.SeqIO…
SkillBFreshness: B★ 78Claude Code +9 - 0.545score
alterlab-blast
AlterLab-IEU
Runs NCBI BLAST+ 2.17.0 sequence searches from the command line: makeblastdb (with -parse_seqids), blastn/blastp/blastx/tblastn with tabular -outfmt 6/7 for…
SkillBFreshness: B★ 78Claude Code +9 - 0.545score
alterlab-alphafold
AlterLab-IEU
Predict protein 3D structures with AlphaFold2 via ColabFold — MMseqs2-accelerated MSAs, monomer and AlphaFold2-Multimer complex folding, and confidence-based…
SkillBFreshness: B★ 78Claude Code +9 - 0.545score
alterlab-arboreto
AlterLab-IEU
Infer gene regulatory networks (GRNs) from expression matrices using arboreto's scalable GRNBoost2 and GENIE3 tree-ensemble algorithms with Dask-distributed…
SkillBFreshness: B★ 78Claude Code +9 - 0.545score
alterlab-bioservices
AlterLab-IEU
Query 40+ bioinformatics web services through one consistent Python API with bioservices (UniProt, KEGG, ChEMBL, Reactome, Ensembl, NCBI and more).
SkillBFreshness: B★ 78Claude Code +9
Cite this page
game-unity-specialist skill. Agent Mart. https://agentmart.dev/skills/alterlab-ieu-game-unity-specialist (last updated 2026-10-24)