Game optimization, performance profiling, multi-platform support, and frame rate optimization for smooth gameplay experiences.
Provides game performance profiling and optimization techniques for CPU/GPU bottlenecks, frame rate targets, and multi-platform constraints. Use when analyzing slow frames, reducing draw calls, or tuning for mobile/VR.
/plugin marketplace add pluginagentmarketplace/custom-plugin-game-developer/plugin install custom-plugin-game-developer@pluginagentmarketplace-game-developerThis skill inherits all available tools. When active, it can use any tool Claude has access to.
assets/optimization_config.yamlreferences/OPTIMIZATION_GUIDE.mdscripts/perf_analyzer.pyFRAME BUDGETS:
┌─────────────────────────────────────────────────────────────┐
│ TARGET FPS │ FRAME TIME │ PLATFORM │
├─────────────┼────────────┼─────────────────────────────────┤
│ 30 FPS │ 33.3 ms │ Console (heavy games) │
│ 60 FPS │ 16.6 ms │ PC, Console, Mobile │
│ 90 FPS │ 11.1 ms │ VR (minimum) │
│ 120 FPS │ 8.3 ms │ Competitive games │
│ 144+ FPS │ 6.9 ms │ High-end PC │
└─────────────┴────────────┴─────────────────────────────────┘
FRAME TIME BREAKDOWN (16.6ms target):
┌─────────────────────────────────────────────────────────────┐
│ CPU: 8ms │
│ ├─ Game Logic: 3ms │
│ ├─ Physics: 2ms │
│ ├─ Animation: 1.5ms │
│ └─ Audio/Other: 1.5ms │
│ │
│ GPU: 8ms │
│ ├─ Geometry: 2ms │
│ ├─ Lighting: 3ms │
│ ├─ Post-process: 2ms │
│ └─ UI: 1ms │
└─────────────────────────────────────────────────────────────┘
OPTIMIZATION WORKFLOW:
┌─────────────────────────────────────────────────────────────┐
│ 1. MEASURE: Profile before optimizing │
│ → Never guess, always profile │
│ │
│ 2. IDENTIFY: Find the bottleneck │
│ → CPU-bound: Frame time > GPU time │
│ → GPU-bound: GPU time > CPU time │
│ │
│ 3. ANALYZE: Drill into specific systems │
│ → Which function? Which shader? Which asset? │
│ │
│ 4. OPTIMIZE: Fix the actual bottleneck │
│ → One change at a time │
│ → Measure before/after │
│ │
│ 5. VERIFY: Confirm improvement │
│ → Check all platforms │
│ → Test edge cases │
│ │
│ 6. REPEAT: Move to next bottleneck │
└─────────────────────────────────────────────────────────────┘
CPU OPTIMIZATION TECHNIQUES:
┌─────────────────────────────────────────────────────────────┐
│ ALGORITHMIC: │
│ • Use appropriate data structures (spatial hashing) │
│ • Early-out conditions │
│ • Reduce O(n²) to O(n log n) │
├─────────────────────────────────────────────────────────────┤
│ CACHE: │
│ • Data-oriented design (SoA vs AoS) │
│ • Minimize cache misses │
│ • Process data linearly │
├─────────────────────────────────────────────────────────────┤
│ ALLOCATION: │
│ • Object pooling │
│ • Avoid GC in hot paths │
│ • Pre-allocate collections │
├─────────────────────────────────────────────────────────────┤
│ THREADING: │
│ • Offload work to job system │
│ • Async loading │
│ • Parallel processing │
└─────────────────────────────────────────────────────────────┘
GPU OPTIMIZATION TECHNIQUES:
┌─────────────────────────────────────────────────────────────┐
│ DRAW CALLS: │
│ • Static/dynamic batching │
│ • GPU instancing │
│ • Merge meshes │
│ Target: <2000 on PC, <200 on mobile │
├─────────────────────────────────────────────────────────────┤
│ OVERDRAW: │
│ • Front-to-back rendering │
│ • Occlusion culling │
│ • Reduce transparency │
├─────────────────────────────────────────────────────────────┤
│ SHADERS: │
│ • Reduce instruction count │
│ • Use lower precision (half) │
│ • Minimize texture samples │
├─────────────────────────────────────────────────────────────┤
│ GEOMETRY: │
│ • LOD systems │
│ • Mesh simplification │
│ • Frustum culling │
└─────────────────────────────────────────────────────────────┘
MOBILE OPTIMIZATION:
┌─────────────────────────────────────────────────────────────┐
│ CRITICAL CONSTRAINTS: │
│ • Thermal throttling │
│ • Battery drain │
│ • Memory limits (500MB-2GB) │
│ │
│ TARGETS: │
│ • Draw calls: 100-200 │
│ • Triangles: 100K-500K/frame │
│ • Texture memory: 200-500MB │
│ • 30-60 FPS stable │
└─────────────────────────────────────────────────────────────┘
VR OPTIMIZATION:
┌─────────────────────────────────────────────────────────────┐
│ CRITICAL: Maintain 90 FPS constantly │
│ • Single-pass stereo rendering │
│ • Fixed foveated rendering │
│ • Aggressive LOD │
│ • Minimal post-processing │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Frame rate drops during gameplay │
├─────────────────────────────────────────────────────────────┤
│ DEBUG: │
│ → Profile to find CPU vs GPU bound │
│ → Check for GC spikes │
│ → Look for expensive operations in Update() │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS: │
│ → Move logic to FixedUpdate or coroutines │
│ → Implement object pooling │
│ → Add LOD for distant objects │
│ → Reduce draw calls with batching │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Long loading times │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS: │
│ → Async loading with progress bar │
│ → Stream assets in background │
│ → Compress assets more aggressively │
│ → Pre-warm caches │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Inconsistent frame pacing │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS: │
│ → Enable VSync │
│ → Use fixed timestep for physics │
│ → Spread heavy work across frames │
│ → Check for background processes │
└─────────────────────────────────────────────────────────────┘
| Engine | CPU Profiler | GPU Profiler | Memory |
|---|---|---|---|
| Unity | Profiler | Frame Debugger | Memory Profiler |
| Unreal | Insights | RenderDoc | Memreport |
| Godot | Profiler | GPU Debugger | Built-in |
| Any | Platform tools | RenderDoc/PIX | Valgrind/Instruments |
Use this skill: When optimizing games, profiling performance, or supporting multiple platforms.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.