Réponses:
Donc, vous devriez commencer par consulter l'article de Wikipedia sur id Tech 3 . Cela peut être augmenté par le résumé de la discussion GDC de Brian Hook et quelques vieux trucs sur le blog Element 61 . En plus de cela, vous devrez parcourir un tas de vieux tutoriels de mod que vous pouvez trouver pour essayer de reconstruire ce qui se passe.
Je suggère de partir de la version d'origine de id, au lieu de ioquake3 ou what-have-you, afin de vraiment voir le contexte de ce qui se passe (comment les entrées sont gérées et dirigées à l'intérieur du moteur, quel type d'événement sous-jacent structure, etc.).
Quelques points clés qui m'ont aidé lorsque je travaillais avec:
quake3.exe +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0
pour permettre au moteur d'exécuter du code natif au lieu du code VM.Certaines choses intéressantes que j'ai faites pour cela avec un collègue:
Personnellement, j'ai trouvé que le moteur était une excellente combinaison de choses vraiment intelligentes faites de manière vraiment stupide, de choses vraiment stupides faites de manière vraiment intelligente et de choses vraiment intelligentes faites de manière vraiment intelligente. C'est un excellent exemple de la façon d'avoir la modularité et une bonne conception structurée dans un projet C à moyenne échelle.
Enfin, ne vous sentez pas mal s'il faut du temps pour grogner. Il m'a fallu peut-être un mois pour vraiment savoir où trouver ce que je cherchais dans le moteur; si tout le reste échoue, commencez par l'initialisation de l'application et descendez dans les fonctions, en vous laissant des commentaires sous forme de panneaux indicateurs. Mon moniteur a fini par être recouvert de post-it roses avec des noms de fonction, des numéros de ligne et de courtes descriptions de ce qu'ils ont fait.
Le livre Focus On Mod Programming in Quake III Arena vous aidera à comprendre comment les logiques client et serveur sont découplées, la prédiction client, les effets graphiques côté client, etc.
Absolument.
http://en.wikipedia.org/wiki/Quake_engine est un bon aperçu de ce qui existe, mais vous pouvez entrer dans les détails de son architecture assez rapidement grâce à ses citations.
Puis-je également suggérer quelques livres sur l'architecture du moteur de jeu qui peuvent être plus en phase avec ce que vous recherchez. Bien qu'ils ne soient pas spécifiques à Quake, ils entrent dans les détails de la conception du moteur et fonctionnent parallèlement à de nombreux aspects des moteurs Quake: