オブジェクト指向とは、プログラミングの際に「1つの関数に1つの役割を持たせる」考え方です。超噛み砕くとこんな感じな意味になると思う。たぶん。
ゲームプログラミングの際に分割を考えた場合、たとえばこのようになります。
- タイトル画面を処理する関数
- メインゲーム関数
- ゲームクリア画面を処理する関数
- ゲームオーバー画面を処理する関数
どこまでを「1つの役割」と考えるかは状況によって異なりますし、必ず1つでないといけないというわけでもありません。
さらに深く考えてみるために、「シューティングゲーム」について考えてみます。シューティングゲームの場合、メインゲーム関数の中にはさらに
さらに深く考えてみるために、「シューティングゲーム」について考えてみます。シューティングゲームの場合、メインゲーム関数の中にはさらに
- 自機を制御する関数
- 敵を制御する関数
- サウンドを制御する関数
などが考えられます。これらをそれぞれ関数にします。
さらに、「自機を制御する関数」について考えてみると、
- キー入力で自機を移動する関数
- キー入力で弾を発射する関数
- 自機の当たり判定を監視する関数
などが考えられます。これらもそれぞれ関数にするべきです。
このように1つの関数の行数を減らし、各関数の役割を明確にすることで作成の見通しが良くなります。バグを探す際や、ソースファイルを後で見直す際もすっきりとしていて効率が良くなります。ファイル分割の際も、役割ごとにソースファイルを作ると把握しやすくなります(title.cppにはタイトルの関数を、enemy.cppには敵の関数を書くなど)。
多人数でプログラミングをする際はこのようにプログラムを分割して開発されるそうです。この形式になれておけば多人数での開発に比較的容易に対応できるかもしれません。ある会社が自社のプログラムの関数の行数ついて調べてみたところ、20~30行程度のものが最も多く、100行を超えるものにいたっては1%も存在しなかったそうです。
多人数でプログラミングをする際はこのようにプログラムを分割して開発されるそうです。この形式になれておけば多人数での開発に比較的容易に対応できるかもしれません。ある会社が自社のプログラムの関数の行数ついて調べてみたところ、20~30行程度のものが最も多く、100行を超えるものにいたっては1%も存在しなかったそうです。