C++とシューティングゲーム
ということでこの二つの親和性について改めて考えてみました。
C++言語の特徴を列挙してみて、それらが個人レベルでシューティングゲームを作る上でどのように生かせるのかを主眼においてみます。
- 動的オブジェクト(newの利用)
実行時にオブジェクトを作ることで平常時のメモリ消費量を節約できる。しかしメモリ確保の処理は比較的重く、大量に使用するとかなりの処理時間がかかる。
→シューティングゲームは大量のオブジェクトを扱い、かつ処理にはリアルタイム性が欠かせないので必要なオブジェクトは事前に用意するのが普通。不要。
- 継承(派生)・カプセル化
同属のオブジェクトについて、コードを使いまわせる。呼び出し側に対してメンバへのアクセスを制限できる。
→個人で作ってるんだから呼び出し側が危険なアクセスをするとかありえない。逆に下手にアクセス制限があるとオブジェクト間のやり取りが複雑になってスパゲッティ化する。不要。
派生クラスへのポインタを基底クラス型にアップキャストすることで、呼び出し側はその中身を知らなくとも共通のインターフェースでオブジェクトを利用できる。
→個人で作ってるんだから呼び出し側がオブジェクトの正体をしらないとかありえない。別にいちいち派生クラス型で作っちゃってもぜんぜん無問題。むしろ派生クラス独自のメソッドがあるとダウンキャストが必要になったりして逆効果。不要。
OTL
( ゚д゚ )TL
いや、アプリケーションの面では便利な使い方ができるんだけど、シューティングゲームの面ではホント無用の長物だなあ。まあ地味なところでは参照(リファレンス)とか便利だけど・・・。個人開発は好き勝手やっちゃっていいのかねやっぱ・・・