過去に単なるオブジェクトを使用して C++ で 2D ゲームを開発しようとしましたが、設計プロセスでは、エンジンのどの部分をどのように小さなオブジェクトに分割する必要があるのか、正確には何をどのように行うべきかわかりません。それらが互いに適切に相互作用するようにします。ゲーム エンジンの設計を詳細に説明している書籍、チュートリアル、論文などを探しています。ありがとう。
6 に答える
ゲームを作ったことがないなら、どうやってエンジンを作ることができるでしょうか? そこには無料のエンジンがたくさんあります。さもないと、何度も何度も書き直すことになるため、何かを成し遂げようとして 20 年を費やすことになります。
ゲームには2つの重要なタイプのオブジェクトがあります。プロセスを含むオブジェクトと、環境およびユーザーと対話するオブジェクトがあります。
オブジェクトの不透明度を変更するなどのプロセスを実行するオブジェクトの場合、クラスレベルの変数から独立している必要があります。それらは単に値を取り込んで値を返す必要があります。重力を計算するプロセスがある場合、プロセスは重力が計算されているオブジェクトを取り込み、オブジェクトが経験している重力の量と、ゲームが宇宙で行われる場合は重力の方向を返す必要があります。
2番目に重要なタイプのオブジェクトは、ユーザーおよび環境と対話するオブジェクトです。これらのオブジェクトはすべて同じ基本クラスに組み込まれている必要があります。基本クラスには、画像とxおよびy位置が必要であり、変数の速度や方向の変更などの特定のプロセスを実行する変数を持つことができます。この基本クラスを配置すると、速度、方向、xおよびy位置などのすべてのオブジェクトの「組み込み」変数を使用して、前述の重力プロセスのようなプロセスを実行できます。
また、特定の条件下でコードを実行するようにオブジェクトを設定することもできます。これらの条件のいずれかが満たされたときに実行される関数を基本クラスに提供させることをお勧めします。いくつかの便利な条件関数は、オブジェクトが最初に作成されたときと破棄されたときに実行される条件関数です。タイマーが設定された後に実行する条件付き関数。画面に画像を描画するためのコードを配置できる、継続的に実行する条件付き関数。キーボードまたはマウスボタンが押されたときにオフになる条件付き関数。オブジェクトの重力などを計算するために、1秒間に設定された回数だけオフになる条件関数。
このフレームワークは、ゲームを作成するときに非常にうまく機能しました。それはあらゆるタイプのゲームで機能し、他のタイプのプログラムではひどく機能します。書き込みが不明確な場合は申し訳ありませんが、iPodで入力しているので、ここに戻って編集するのは難しいでしょう。
http://fivedots.coe.psu.ac.th/~ad/jg/
この男は良い oop スタイルをレイアウトし、本を通してエンジン フレームを構築するのに役立ちます。それは良いものにスポットです。
Eberly の3D Game Engine Architectureと3D Game Engine Designは、理論に重きを置いていますが、すべての基礎を十分にカバーしています。