第4部: ゲームプログラミングで頻出するパターン¶
GoF(第3部)が汎用の設計語彙だとすれば、この章はゲーム開発の現場で生まれた実戦パターンです。多くはRobert Nystrom『Game Programming Patterns』で整理されたもので、パフォーマンス(毎フレーム動く・大量に出る)とワークフロー(企画が調整する)というゲーム特有の圧力から生まれています。
ページ一覧¶
| ページ | 扱うパターン |
|---|---|
| Game Loop と Update Method | ゲームの心臓部。固定/可変タイムステップ |
| Component と ECS | Component、Entity Component System、継承方式との比較、GameObject/MonoBehaviour方式との比較 |
| Event Queue・Message Bus・Pub/Sub | Observerとの比較を含む通知の全体地図 |
| Service Locator と DI | 依存の配り方2方式の比較 |
| Object Pool | 通常のnew/deleteとの比較 |
| 最適化系パターン | Dirty Flag、Spatial Partition、Data Locality、Double Buffer |
| Type Object・Subclass Sandbox・Bytecode | データ駆動設計の3段階 |
| ステートマシン(FSM/HSM) | 有限/階層型ステートマシン、State と Strategy の比較 |
| Behavior Tree と Blackboard | AIの構造化 |
| Command Buffer と入力処理 | Commandパターンとの関係、描画コマンドバッファ |
| MVC・MVP・MVVM | UIアーキテクチャ3方式の比較 |
| Reactive Programming | R3/UniRx、データフローの考え方 |
仕上げに 演習 を解いてください。
この章の読み方¶
- 各パターンはUnityとUnreal Engineのどこに現れるかを必ず書いています。「自作する」より「エンジンが実装済みのものを正しく使う」場面の方が多いためです。
- 最適化系パターン(Object Pool、Data Locality等)は計測とセットで使うもの。計測なしの適用は早すぎる最適化です。
主要な比較(このカテゴリの核)¶
- Observer vs Event Queue vs Pub/Sub
- State vs Strategy
- Component方式 vs 継承方式 / ECS vs MonoBehaviour
- Service Locator vs DI
- Object Pool vs new/delete
- MVC vs MVP vs MVVM