Ответы:
Итак, вы должны начать с просмотра статьи Википедии об id Tech 3 . Это может быть дополнено резюме выступления Брайана Хука на GDC и некоторыми старыми материалами в блоге Element 61 . В дополнение к этому, вам придется пройтись по куче старых учебников по модам, которые вы сможете найти, чтобы попытаться восстановить происходящее.
Я бы предложил начать с исходного исходного релиза с id, а не с ioquake3 или what-have-you, чтобы действительно увидеть контекст того, что происходит (как обрабатывается ввод и направляется внутри движка, какого рода основное событие структура используется и т. д.).
Некоторые ключевые моменты, которые помогли мне, когда я работал с ним:
quake3.exe +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0
, чтобы позволить движку запускать нативный код вместо кода виртуальной машины.Некоторые изящные вещи, которые я сделал для этого с коллегой:
Лично я обнаружил, что движок - это отличная комбинация действительно умных вещей, сделанных очень глупыми способами, действительно глупых вещей, сделанных действительно умными способами, и действительно умных вещей, сделанных действительно умными способами. Это отличный пример того, как иметь модульность и хороший структурированный дизайн в среднем C-проекте.
И наконец, не расстраивайтесь, если вам нужно некоторое время, чтобы впасть в уныние. Мне потребовался месяц, чтобы действительно узнать, где найти то, что я искал в двигателе; если ничего не помогает, начните с инициализации приложения и просто туннелируйте функции, оставляя комментарии для себя в качестве указателей. Мой монитор был покрыт розовыми заметками с именами функций, номерами строк и краткими описаниями того, что они сделали.
Книга « Ориентация на программирование модов в Quake III Arena» поможет вам понять, как отделены логика клиента и сервера, предсказание клиента, графические эффекты на стороне клиента и т. Д.
Абсолютно.
http://en.wikipedia.org/wiki/Quake_engine - хороший обзор того, что там есть, но вы можете довольно быстро разобраться в деталях его архитектуры через его цитаты.
Могу ли я также предложить пару книг по архитектуре игрового движка, которые могут в большей степени соответствовать тому, что вы ищете. Хотя они не являются специфичными для Quake, они углубляются в детали конструкции двигателей и работают параллельно со многими аспектами двигателей Quake: