game-developer — Claude Code skill: Unity, Unreal, optimization
Skill for game development in Unity and Unreal Engine. Builds game systems, configures physics, multiplayer networking, shaders, and optimizes performance to 60+ FPS.
npx skills add Jeffallan/claude-skills --skill game-developer -a claude-codeWhat game-developer does
game-developer activates when you work with Unity, Unreal Engine, ECS architecture, physics systems, multiplayer networking, optimization, or shader programming. The skill provides ready-made patterns: object pooling, component caching, state machines, and async resource loading. It includes profiling checkpoints — the skill requires you to verify frame time (≤16 ms for 60 FPS) before shipping.
Internal reference materials cover Unity C#, Unreal C++ and Blueprints, ECS patterns, and memory optimization. Constraints: do not instantiate or destroy objects in Update loops, avoid string comparisons for tags (use CompareTag), and respect platform limits for mobile and console.
What it helps with
- Build game architecture using Entity Component System
- Optimize frame rate to 60+ FPS on target platforms
- Set up multiplayer networking with lag compensation
- Develop shaders and visual effects
- Apply object pooling and state machine patterns
Example prompts for the agent
- Implement an ECS system to manage enemies in the game
- Optimize physics: set up LOD systems and cache component references
- Write multiplayer code with lag compensation for a networked game
How to install game-developer
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill game-developer -a claude-code2Manually: put the files in place
~/.claude/skills/game-developer/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/game-developer/
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill game-developer -a codex2Manually: put the files in place
.agents/skills/game-developer/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill game-developer -a cursor2Manually: put the files in place
.cursor/skills/game-developer/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Jeffallan/claude-skills game-developer2Manually: put the files in place
.github/skills/game-developer/SKILL.md1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill game-developer -a gemini-cli2Platform CLI
gemini skills install https://github.com/Jeffallan/claude-skills --path skills/game-developerManually: put the files in place
.devin/skills/game-developer/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill game-developer -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set61
The whole set →Similar
Questions about game-developer
How do I install game-developer in Claude Code?
Run npx skills add Jeffallan/claude-skills --skill game-developer -a claude-code, then open ~/.claude/skills/game-developer/SKILL.md.
What does the game-developer skill do?
It activates automatically when working with Unity, Unreal Engine, game physics, multiplayer networking, and optimization. It provides code patterns, profiling requirements, and constraints to follow.
Which platforms does this skill support?
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, and OpenCode. Each platform has its own install command.
Source text
SKILL.md · MIT
---
name: game-developer
description: "Use when building game systems, implementing Unity/Unreal Engine features, or optimizing game performance. Invoke to implement ECS architecture, configure physics systems and colliders, set up multiplayer networking with lag compensation, optimize frame rates to 60+ FPS targets, develop shaders, or apply game design patterns such as object pooling and state machines. Trigger keywords: Unity, Unreal Engine, game development, ECS architecture, game physics, multiplayer networking, game optimization, shader programming, game AI."
license: MIT
metadata:
author: https://github.com/Jeffallan
company: https://synergetic.solutions
version: "1.1.0"
domain: specialized
triggers: Unity, Unreal Engine, game development, ECS architecture, game physics, multiplayer networking, game optimization, shader programming, game AI
role: specialist
scope: implementation
output-format: code
related-skills:
---
# Game Developer
## Core Workflow
1. **Analyze requirements** — Identify genre, platforms, performance targets, multiplayer needs
2. **Design architecture** — Plan ECS/component systems, optimize for target platforms
3. **Implement** — Build core mechanics, graphics, physics, AI, networking
4. **Optimize** — Profile and optimize for 60+ FPS, minimize memory/battery usage
- ✅ **Validation checkpoint:** Run Unity Profiler or Unreal Insights; verify frame time ≤16 ms (60 FPS) before proceeding. Identify and resolve CPU/GPU bottlenecks iteratively.
5. **Test** — Cross-platform testing, performance validation, multiplayer stress tests
- ✅ **Validation checkpoint:** Confirm stable frame rate under stress load; run multiplayer latency/desync tests before shipping.
## Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When |
|-------|-----------|-----------|
| Unity Development | `references/unity-patterns.md` | Unity C#, MonoBehaviour, Scriptable Objects |
| Unreal Development | `references/unreal-cpp.md` | Unreal C++, Blueprints, Actor components |
| ECS & Patterns | `references/ecs-patterns.md` | Entity Component System, game patterns |
| Performance | `references/performance-optimization.md` | FPS optimization, profiling, memory |
| Networking | `references/multiplayer-networking.md` | Multiplayer, client-server, lag compensation |
## Constraints
### MUST DO
- Target 60+ FPS on all platforms
- Use object pooling for frequent instantiation
- Implement LOD systems for optimization
- Profile performance regularly (CPU, GPU, memory)
- Use async loading for resources
- Implement proper state machines for game logic
- Cache component references (avoid GetComponent in Update)
- Use delta time for frame-independent movement
### MUST NOT DO
- Instantiate/Destroy in tight loops or Update()
- Skip profiling and performance testing
- Use string comparisons for tags (use CompareTag)
- Allocate memory in Update/FixedUpdate loops
- Ignore platform-specific constraints (mobile, console)
- Use Find methods in Update loops
- Hardcode game values (use ScriptableObjects/data files)
## Output Templates
When implementing game features, provide:
1. Core system implementation (ECS component, MonoBehaviour, or Actor)
2. Associated data structures (ScriptableObjects, structs, configs)
3. Performance considerations and optimizations
4. Brief explanation of architecture decisions
## Key Code Patterns
### Object Pooling (Unity C#)
```csharp
public class ObjectPool<T> where T : Component
{
private readonly Queue<T> _pool = new();
private readonly T _prefab;
private readonly Transform _parent;
public ObjectPool(T prefab, int initialSize, Transform parent = null)
{
_prefab = prefab;
_parent = parent;
for (int i = 0; i < initialSize; i++)
Release(Create());
}
public T Get()
{
T obj = _pool.Count > 0 ? _pool.Dequeue() : Create();
obj.gameObject.SetActive(true);
return obj;
}
public void Release(T obj)
{
obj.gameObject.SetActive(false);
_pool.Enqueue(obj);
}
private T Create() => Object.Instantiate(_prefab, _parent);
}
```
### Component Caching (Unity C#)
```csharp
public class PlayerController : MonoBehaviour
{
// Cache all component references in Awake — never call GetComponent in Update
private Rigidbody _rb;
private Animator _animator;
private PlayerInput _input;
private void Awake()
{
_rb = GetComponent<Rigidbody>();
_animator = GetComponent<Animator>();
_input = GetComponent<PlayerInput>();
}
private void FixedUpdate()
{
// Use cached references; use deltaTime for frame-independence
Vector3 move = _input.MoveDirection * (speed * Time.fixedDeltaTime);
_rb.MovePosition(_rb.position + move);
}
}
```
### State Machine (Unity C#)
```csharp
public abstract class State
{
public abstract void Enter();
public abstract void Tick(float deltaTime);
public abstract void Exit();
}
public class StateMachine
{
private State _current;
public void TransitionTo(State next)
{
_current?.Exit();
_current = next;
_current.Enter();
}
public void Tick(float deltaTime) => _current?.Tick(deltaTime);
}
// Usage example
public class IdleState : State
{
private readonly Animator _animator;
public IdleState(Animator animator) => _animator = animator;
public override void Enter() => _animator.SetTrigger("Idle");
public override void Tick(float deltaTime) { /* poll transitions */ }
public override void Exit() { }
}
```
Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)
[Documentation](https://jeffallan.github.io/claude-skills/skills/specialized/game-developer/)
© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills