投稿者 うたひこ  (社会人) 投稿日時 2008/11/19 22:26:57
僕は「VBでゲームつくっちゃる」みたいな名前のサイト様をかなり参考にしてました。
vb6ですが。

>これらのオブジェクトは全て単一のクラスからインスタンス化したもの
これは、

>実はゲームの開発は初めてなので、開発が進むと敵のAIの実装で悩むのではないかと思うのです。
そのときの試行錯誤のために、各オブジェクトの振る舞いを出来る限りカプセル化しておきたいという意図があり、一つのオブジェクトがゲーム全体を管理するという構造は取っていませんでした。

を突き詰めるとそうなります。



同じ動きをするオブジェクトがあったとします。

例えば、敵弾、味方弾、敵キャラが別のキャラにホーミングするという動作。

これをポリモーフで実現しようとすると、
似たクラスを三つ作るというバカを丸出す羽目になります。

だったら別のクラスに切り離しちゃえ。



攻撃パターン(武器)が同じキャラが敵、味方にいたら?
武器も切り離しちゃえ。

アニメーションパターンがおんなじ。切り離しちゃえ。

と、クラスの分離を進めるうちに、
「敵、味方、キャラ、弾、エフェクトの区別」をも切り離そうとなったわけです。

そうなった時の最善の策として、「どこに属すか」による区別になりました。



自分が操作するキャラクターでさえ、
「キー入力を受け取るAIを持つキャラクター」として、
他のキャラと同じクラスに汎化されました。

この仕組みができた時はかなり気持ちよかったです(^^)