ゲーム開発に頻出する品質特性
https://gyazo.com/1bd8b2d55e85b03d26ec043b3a2cf576
魔術遠眼鏡
Design It!では、ソフトウェアアーキテクチャが促進するものの対象に品質特性があると説明されている。
kidooom.icon自分の現在の仕事はゲーム開発なので、ゲーム開発に頻出する品質特性がアーキテクチャの観点になることが多い
Game Programming Patternsでは、ゲームに頻出する品質特性としてタイミングと順序を挙げており、そのためのパタンランゲージを構築している
ざっと列挙すると
書かれたコードの理解容易性
これはかなり重要
中心の形成、大きな中心となる
変更容易性に直結する
具体的なものばかりでは時間がかかる。パターンや関数、いい名前付(名前付けの7段階) などを通して、抽象化された知識のほうが早く理解ができる
リーダブルコード
実行順序とタイミングの制御容易性
ゲームでは、時間や実行順序が重要
コード上で時間の概念を表しにくいのがゲームプログラミングの難しい点
イテレーションの高速性
複数人開発に耐えうる疎結合性
コードのコンフリクトはリズムを大きく狂わせる
データとビヘイビアを外から注入できる設計
FPSを維持するパフォーマンス設計
メモリを破綻させないリソース設計
大量のリソースを管理しやすい運用容易性
特定条件を発生させやすい外部環境注入性
バトル結果画面を見るために毎回バトルをするのは開発効率が悪い
開発後半に行われる最適化が考慮されていること
開発初期にはまだ最適化はできない
R.A.フィッシャーの基本定理
まず、「面白いゲーム」を作ってからパフォーマンス最適化をする方がいい
パフォーマンス最適化をしてから「面白いゲーム」を作ろうとするのは、とてもむずかしい