optimization-performance について
optimization-performance は、CPU、GPU、各種プラットフォームを対象に、ゲームの性能を分析・改善するスキルです。目標フレームレートに取り組む開発者向けに、最適化手順、プラットフォーム別の指針、問題調査方法、プロファイラーの資料をまとめています。
主な機能
- 01フレーム時間と FPS の目標
- 02計測を先行するプロファイリング手順
- 03CPU 最適化技術
- 04GPU 最適化技術
- 05プラットフォーム別の指針
- 06エンジン別プロファイラー資料
活用シーン
- 01ゲーム中のフレームレート低下の診断
- 02CPU または GPU のボトルネック特定
- 03モバイルや VR 向けの性能調整
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pluginagentmarketplace/ custom-plugin-game-developer --skill optimization-performanceインストール後、Claude Code で/optimization-performanceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/optimization_config.yamlreferences/OPTIMIZATION_GUIDE.mdscripts/perf_analyzer.py詳細
最適化とパフォーマンス
パフォーマンス目標
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 │
└─────────────────────────────────────────────────────────────┘
プロファイリングのプロセス
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 の最適化
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 の最適化
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 │
└─────────────────────────────────────────────────────────────┘
プロファイリングツール
| エンジン | CPU プロファイラー | GPU プロファイラー | メモリ |
|---|---|---|---|
| Unity | Profiler | Frame Debugger | Memory Profiler |
| Unreal | Insights | RenderDoc | Memreport |
| Godot | Profiler | GPU Debugger | Built-in |
| Any | プラットフォームのツール | RenderDoc/PIX | Valgrind/Instruments |
このスキルを使用する場面:ゲームの最適化、パフォーマンスのプロファイリング、または複数のプラットフォームのサポート。
コメント
Markdown 対応