Respuestas:
Por lo tanto, debe comenzar mirando el artículo de Wikipedia sobre id Tech 3 . Eso se puede aumentar con el resumen de la charla GDC de Brian Hook y algunas cosas antiguas en el blog de Element 61 . Además de eso, tendrás que rastrear un montón de tutoriales de mods antiguos que puedas encontrar para intentar reconstruir lo que está sucediendo.
Sugeriría comenzar desde el lanzamiento original de la fuente de id, en lugar de ioquake3 o what-have-you, para ver realmente el contexto de lo que está sucediendo (cómo se maneja y dirige la entrada dentro del motor, qué tipo de evento subyacente estructura utilizada, etc.).
Algunos puntos clave que me ayudaron cuando estaba trabajando con él:
quake3.exe +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0
para permitir que el motor ejecute código nativo en lugar de código VM.Algunas cosas interesantes que he hecho con un compañero de trabajo:
Personalmente, descubrí que el motor era una gran combinación de cosas realmente inteligentes hechas de maneras realmente tontas, cosas realmente tontas hechas de maneras realmente inteligentes y cosas realmente inteligentes hechas de maneras realmente inteligentes. Es un gran ejemplo de cómo tener modularidad y un buen diseño estructurado en un proyecto C de mediana escala.
Por último, no te sientas mal si tardas un poco en asimilar. Me llevó tal vez un mes realmente saber dónde encontrar lo que estaba buscando en el motor; Si todo lo demás falla, comience en el inicio de la aplicación y simplemente haga un túnel hacia abajo en las funciones, dejando comentarios para usted como señales. Mi monitor terminó cubierto de notas adhesivas rosadas con nombres de funciones, números de línea y descripciones breves de lo que hicieron.
El libro Focus On Mod Programming en Quake III Arena lo ayudará a comprender la forma en que se desconectan la lógica del cliente y del servidor, la predicción del cliente, los efectos gráficos del cliente, etc.
Absolutamente.
http://en.wikipedia.org/wiki/Quake_engine es una buena descripción general de lo que existe, pero puede entrar en los detalles de su arquitectura rápidamente a través de sus citas.
También puedo sugerir un par de libros sobre la arquitectura del motor de juego que pueden estar más en línea con lo que estás buscando. Si bien no son específicos de Quake, entran en detalles del diseño del motor y se ejecutan en paralelo a muchos aspectos de los motores Quake: