Answers:
因此,您应该首先查看Wikipedia关于id Tech 3的文章。Brian Hook的GDC演讲摘要和Element 61博客上的一些旧内容可以进一步增强这一点。除此之外,您还必须浏览所有可以找到的旧Mod教程,以尝试重建正在发生的事情。
我建议从id的原始源代码版本开始,而不是ioquake3或what-have-you,以便真正看到正在发生的事情的上下文(如何在引擎内部处理和定向输入,发生什么样的底层事件)结构等)。
当我使用它时,一些关键点对我有所帮助:
quake3.exe +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0
以使引擎运行本机代码而不是VM代码。我与同事为此所做的一些整洁的事情:
就个人而言,我发现引擎是将以真正愚蠢的方式完成的真正聪明的事情,以非常聪明的方式完成的非常愚蠢的事情以及以非常聪明的方式完成的非常聪明的事情完美地结合在一起。这是一个很好的示例,说明了在中型C项目中如何具有模块化和良好的结构化设计。
最后,如果要花些时间,不要感到难过。我大概花了一个月的时间才真正知道如何在引擎中找到所需的内容。如果其他所有方法均失败,则从应用程序init开始,然后直接进入功能,将注释留作路标。我的显示器最后被粉红色的便利贴覆盖着,上面有函数名称,行号以及它们的简短说明。
《在Quake III Arena中专注于Mod编程》一书将帮助您了解客户端和服务器逻辑的分离方式,客户端预测,客户端图形效果等。
绝对。
http://en.wikipedia.org/wiki/Quake_engine很好地概述了其中的内容,但是您可以通过引文很快地了解其架构的详细信息。
我还可以建议一些有关游戏引擎体系结构的书,这些书可能与您正在寻找的东西更加吻合。尽管不是Quake特有的,但它们详细介绍了引擎设计并与Quake引擎的许多方面并行运行: