• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ゲーム開発経験者の方に質問です。)

独学でスマフォ向けの3Dシューティングゲームを作ろうとしています

このQ&Aのポイント
  • ゲーム開発経験者の方に質問です。
  • 独学でスマフォ向けの3Dシューティングゲームを作ろうとしています。
  • 具体的にどの様なステージ(マップ)で、どの様なタイミング・方法でゲームオブジェクト(アクター)を生成するように実装されてきたのか、等の経験談をお伺いさせて頂きたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

現役でゲーム開発に従事しております。 ステージ単位で進行し、敵キャラをやっつける物の場合を簡単に説明してみます。 操作するキャラ、敵キャラ等をオブジェクトとします。 オブジェクトには、 ・生成(newされた物) ・非アクティブ(動作していない) ・アクティブ(動作している) ・破棄(deleteされる) 上記の状態がある様な物を想定して下さい。 1.ステージの開始時にのオブジェクト等は生成される。生成時は基本的に非アクティブ状態です。 2.任意のタイミング(操作するキャラが任意の座標に移動した。等)で生成したオブジェクトをアクティブにします。 3.操作するキャラが敵キャラをやっつけたりした場合は非アクティブにします。 4.3で非アクティブにしたキャラを再度登場させたい場合は、2の状態から動作させます。 5.ステージが終了した際に、全てのオブジェクトを破棄します。 上記の様な感じでステージのリソース管理を行っていました。 ハード性能の高いプラットフォームですと、アクティブ/非アクティブはそのまま生成/破棄が対応する場合もありますし、 逆で貧弱なプラットフォームの場合ですと、ステージ単位ではなくゲーム全体(起動~終了)で上記の制御を行う場合もあります。 個人的にはベストプラクティスってのは無くて、ゲームシステムの構築を行う人が把握出来るモデルが良いのではないかと考えます。 平たく言うと他人が作った凝ったシステムは得てして使いづらいってのが経験則だったりします(w ちなみに、オブジェクトのデータ情報はもちろんメモリ上の物であり、表示する画像や3Dモデル等は 別の管理を行います。

enrik
質問者

補足

ご回答ありがとうございます。 大変参考になります^^ 恐れ入りますが、追加で一点質問させて下さい。 >オブジェクトのデータ情報はもちろんメモリ上の物であり、 >表示する画像や3Dモデル等は別の管理を行います 上記は具体的に、オブジェクトに関連する3Dモデルの頂点データ、 テクスチャ等はオブジェクト(生成済み)がアクティブになる タイミングまでにロードしておく、みたいなイメージでしょうか。 この認識で間違いがなければ、3Dモデルの管理手法についても 経験談を教えて頂ければ、非常に嬉しいです。

その他の回答 (2)

回答No.3

質問者さんが求めている回答は「発生させるエンティティのモデル化の設計の話」ではなく、おそらく「ステージ情報をどのように持って、それをどのように参照してエンティティ/イベントを発生・操作させるか」ですよね?

enrik
質問者

補足

はい。 ご認識の通りです。 分かりづらい質問となっており、申し訳ございません。。

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>その他にも参考になる様な情報があれば、教えて下さい。 私はゲームは作成したことありませんが、「究極のC#プログラミング」という書籍にあった文章が面白かったです。 その著者は、エニクッスでプログラミングをされていたそうです。書かれていた内容は、 「ゲームプログラムには、例外処理がしばしば必要となるけど、そういう処理はクラスベースではとても弱い。なので、クラスのないプロトタイプベースのプログラミングのほうがやりやすい。そしてC#3.0になって、ついにクラスを主役の座から引き下ろした、といえるかもしれない。」 という意味のことが書かれています。つまりは「オブジェクト指向」とか「クラス」さえうまくつかえば、ゲームとか企業のアプリが楽に開発でき、その後の機能拡張も容易であると思っていた。つまりはそれらが問題解決の万能の「銀の弾丸」と思ったけれど、現実はそれほど使えるものではなかったということみたいです。 それよりも、プロトタイプベースとかラムダ式など、RubyとかC#で使われている手法が実践面では役にたつという意見みたいです。 結局、システムがそこそこ大きくなり、多数のクラスができてくると、やはり「ここをいじると、影響が大きくて、いじれない!」と従来のプログラミングと同じような、いやそれ以上に手に負えない状況になるってことなのかもしれません。

関連するQ&A