Antworten:
Schauen Sie sich zunächst den Wikipedia-Artikel zu id Tech 3 an . Das kann von Brian Hook GDC Gespräch ergänzt werden Zusammenfassung und einige alte Sachen auf dem 61 - Element - Blog. Darüber hinaus müssen Sie eine Reihe von alten Mod-Tutorials durcharbeiten, um zu versuchen, die aktuellen Vorgänge zu rekonstruieren.
Ich würde vorschlagen, statt von ioquake3 oder what-have-you von der ursprünglichen Quellenfreigabe von id auszugehen, um wirklich den Kontext dessen zu sehen, was vor sich geht (wie Eingaben innerhalb der Engine gehandhabt und geleitet werden, welche Art von zugrunde liegendem Ereignis) Struktur verwendet wird, etc.).
Einige wichtige Punkte, die mir bei der Arbeit geholfen haben:
quake3.exe +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0
ausführen, damit die Engine nativen Code anstelle von VM-Code ausführen kann.Einige nette Dinge, die ich mit einem Kollegen gemacht habe:
Persönlich stellte ich fest, dass der Motor eine großartige Kombination von wirklich intelligenten Dingen war, die auf wirklich dumme Weise ausgeführt wurden, von wirklich dummen Dingen, die auf wirklich intelligente Weise ausgeführt wurden, und von wirklich intelligenten Dingen, die auf wirklich intelligente Weise ausgeführt wurden. Es ist ein großartiges Beispiel für Modularität und ein gut strukturiertes Design in einem mittelgroßen C-Projekt.
Zuletzt, fühlen Sie sich nicht schlecht, wenn es eine Weile dauert, um zu grillen. Ich brauchte vielleicht einen Monat, um wirklich zu wissen, wo ich im Motor das finden konnte, wonach ich suchte. Wenn alles andere fehlschlägt, starten Sie beim Anwendungsstart und tunneln Sie einfach in die Funktionen. Hinterlassen Sie Kommentare für sich als Wegweiser. Mein Monitor war mit rosafarbenen Haftnotizen mit Funktionsnamen, Zeilennummern und kurzen Beschreibungen der Aktionen versehen.
Das Buch Focus On Mod Programming in der Quake III Arena hilft Ihnen zu verstehen, wie die Client- und Serverlogik entkoppelt werden, wie die Clientvorhersage funktioniert, welche Grafikeffekte auf dem Client auftreten usw.
Absolut.
http://en.wikipedia.org/wiki/Quake_engine bietet einen guten Überblick über das, was da draußen ist, aber Sie können die Details der Architektur recht schnell anhand der Zitate erfassen.
Darf ich Ihnen auch ein paar Bücher über die Architektur von Game Engines vorschlagen, die vielleicht mehr zu dem passen, wonach Sie suchen? Obwohl sie nicht Quake-spezifisch sind, gehen sie auf die Details des Motordesigns ein und verlaufen parallel zu vielen Aspekten der Quake-Motoren: