回答:
そのため、Wikipediaのid Tech 3に関する記事を参照することから始めてください。これは、ブライアンフックのGDCトークサマリーとElement 61ブログの古い記事で補強できます。それに加えて、何が起こっているのかを試して再構築するために見つけることができる古いmodチュートリアルの束を探し回る必要があります。
何が起こっているのかを実際に確認するために、ioquake3やwhat-have-youではなくidから元のソースリリースから始めることをお勧めします構造が使用されるなど)。
私がそれを使っていたときに助けてくれたいくつかの重要なポイント:
quake3.exe +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0
、エンジンがVMコードの代わりにネイティブコードを実行できるようにするために、ゲームを実行する必要があります。同僚と一緒に作った素敵なもの:
個人的には、このエンジンは、非常に賢いやり方で行われる本当に賢いこと、本当に賢いやり方で行われる本当に愚かなこと、そして本当に賢いやり方で行われる本当に賢いことの素晴らしい組み合わせであることがわかりました。これは、中規模のCプロジェクトでモジュール性と優れた構造化設計を行う方法の優れた例です。
最後に、少し時間がかかっても気にしないでください。エンジンで探しているものがどこにあるかを本当に知ることができるようになるには、おそらく1か月かかりました。他のすべてが失敗した場合は、アプリケーションのinitで開始し、関数にトンネルして、コメントを標識として残します。私のモニターは、関数名、行番号、およびそれらの機能の簡単な説明が付いたピンク色のポストイットノートで覆われました。
Quake III Arenaの「Focus On Mod Programming」という本は、クライアントとサーバーのロジックの分離方法、クライアントの予測、クライアント側のグラフィック効果などを理解するのに役立ちます。
絶対に。
http://en.wikipedia.org/wiki/Quake_engineは、そこにあるものの良い概要ですが、引用を介して非常に迅速にそのアーキテクチャの詳細を知ることができます。
また、ゲームエンジンアーキテクチャに関する書籍をいくつかお勧めします。Quake固有ではありませんが、エンジン設計の詳細に入り、Quakeエンジンの多くの側面と並行して実行されます。