2

C++ でゲーム エンジンを作成したとします。adPlayer(Vec3f位置、モデルplayerModel)、addExplosion(Vec3f位置、サイズexplosionSize)などの関数でした。

これで、これらの関数をある種のテスト クラスで呼び出すことができ、プロジェクトをコンパイルして実行することができます。これには永遠に時間がかかります。

理想的なのは、これらの関数を入力できる基本的なテキスト エディターを用意し、ctrl+u を押すと、ゲーム エンジンのプリコンパイル済み関数を何らかの方法で呼び出すことです。たとえば、ゲーム エンジンを再コンパイルしません。

これはどのように行われますか?

4

2 に答える 2

2

通常、エンジンを .dll にコンパイルし、それをプロジェクトにリンクします。次に、関数をリンクするだけで、関数を使用するだけの場合はコンパイルする必要はありません。

于 2012-07-16T14:18:10.220 に答える
2

設計の反復について質問している場合は、読み込まれてシーン グラフ内のエンティティに変換されるデータ形式を作成します。factory パターンを使用する必要があります。各オブジェクトがそれ自体を読み取り/書き込み/永続化する方法を知っているシリアライゼーション ライブラリを使用できます。

ゲーム状態の「スナップショット」を表すデータ形式を使用することで、ゲームとエディターの両方から読み取り/保存できます。実行時にデータを再読み取りする関数を使用することで、実行中のゲーム インスタンスに後でデザイン変更を加えることができます。

現時点では、クライアント コードとエンジン コードがハードコード化/混合されているようで、分離するのが難しい場合があります。

コンパイルについて質問している場合は、ライブラリ (.dll または static .lib/.so) にコンパイルする必要があります。次に、クライアント/固有のコードをエンジン ライブラリに対してコンパイルします。それらは別々のプロジェクトにある必要があります。

于 2012-07-16T14:18:44.343 に答える