optimization-performance
21
总安装量
14
周安装量
#17169
全站排名
安装命令
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-game-developer --skill optimization-performance
Agent 安装分布
claude-code
13
gemini-cli
10
opencode
10
antigravity
9
cursor
9
codex
8
Skill 文档
Optimization & Performance
Performance Targets
FRAME 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 â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Profiling Process
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
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
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 â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Platform-Specific Guidelines
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 â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ð§ Troubleshooting
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â 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 â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Profiling Tools
| 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.