PluginBench
Skill
Pass
Audit score 90

game-developer

jeffallan/claude-skills

Build optimized game systems with ECS architecture, physics, networking, and performance targeting 60+ FPS.

What is game-developer?

A specialist skill for implementing game mechanics in Unity and Unreal Engine. Use it when architecting game systems, configuring physics and multiplayer networking, optimizing performance, developing shaders, and applying patterns like object pooling and state machines.

  • Implement Entity Component System (ECS) architecture and game design patterns
  • Configure physics systems, colliders, and collision detection
  • Set up multiplayer networking with lag compensation and client-server synchronization
  • Profile and optimize frame rates to 60+ FPS targets across platforms
  • Develop shaders and graphics optimizations
  • Apply object pooling, state machines, and component caching for performance

How to install game-developer

npx skills add https://github.com/jeffallan/claude-skills --skill game-developer
Claude Code
Cursor
Windsurf
Cline

How to use game-developer

  1. 1.Analyze your game requirements: genre, target platforms, performance targets, and multiplayer needs
  2. 2.Design your architecture using ECS or component-based patterns appropriate for your engine
  3. 3.Implement core mechanics, physics, graphics, AI, and networking systems
  4. 4.Profile using Unity Profiler or Unreal Insights to identify CPU/GPU bottlenecks
  5. 5.Optimize iteratively until frame time is ≤16 ms (60 FPS) and validate under stress load
  6. 6.Run cross-platform and multiplayer testing before shipping

Use cases

Good for
  • Building a multiplayer action game with lag-compensated networking and 60 FPS targets
  • Implementing an ECS-based game engine with optimized physics and collision systems
  • Optimizing a mobile game by profiling CPU/GPU bottlenecks and applying LOD systems
  • Developing a game AI system with state machines and behavior patterns
  • Creating shader effects and graphics pipelines for console or PC platforms
Who it's for
  • Game developers using Unity or Unreal Engine
  • Performance engineers optimizing game frame rates and memory usage
  • Multiplayer game architects designing networking systems
  • Game programmers implementing core mechanics and systems

game-developer FAQ

What engines does this skill support?

Primarily Unity (C#) and Unreal Engine (C++/Blueprints). The skill provides patterns and guidance for both.

How do I achieve 60 FPS?

Profile with Unity Profiler or Unreal Insights to identify bottlenecks. Apply LOD systems, object pooling, async loading, component caching, and avoid allocations in Update/FixedUpdate loops.

What is object pooling and why use it?

Object pooling reuses pre-allocated objects instead of instantiating/destroying them repeatedly. This eliminates GC pressure and frame stutters in tight loops.

How do I implement multiplayer networking?

Use client-server architecture with lag compensation. The skill provides patterns for synchronizing state, handling latency, and stress-testing multiplayer systems.

Should I use Find methods in Update loops?

No. Cache all component references in Awake and reuse them. Find methods are expensive and will cause frame rate drops if called every frame.

Full instructions (SKILL.md)

Source of truth, from jeffallan/claude-skills.


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 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:

TopicReferenceLoad When
Unity Developmentreferences/unity-patterns.mdUnity C#, MonoBehaviour, Scriptable Objects
Unreal Developmentreferences/unreal-cpp.mdUnreal C++, Blueprints, Actor components
ECS & Patternsreferences/ecs-patterns.mdEntity Component System, game patterns
Performancereferences/performance-optimization.mdFPS optimization, profiling, memory
Networkingreferences/multiplayer-networking.mdMultiplayer, 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#)

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#)

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#)

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() { }
}

Documentation