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 optimizati…
All-time #2656Trending #3680First seen Jan 20, 2026
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.
Similar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
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.
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)
Hardcode game values (use ScriptableObjects/data files)
Output Templates
When implementing game features, provide:
Core system implementation (ECS component, MonoBehaviour, or Actor)
Associated data structures (ScriptableObjects, structs, configs)
Performance considerations and optimizations
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() { }
}