原文地址:http://blog.csdn.net/zlstone/article/details/4651271
总体而言, quake系列引擎的整体架构非常漂亮,是学习的好材料。
并且从quake1到quake3,整体逻辑端代码变化不大, 真正比较有突破性的是渲染引擎。
.本人在学习quake引擎过程中常常敬佩卡马克的想象力,api函数是如此之简洁,整体框架是如此之完美,面向对象的c写得如此之漂亮。
通过quake引擎,可以学到游戏设计的各个概念以及各个模块,外部工具是如何完美的结合起来,这一点是非常非常重要的.
QUAKE1 及其基于 QUAKE1 框架的扩展引擎 DARKPLACES
QUAKE2 及其基于 QUAKE2 框架的扩展引擎 QFUSION
QUAKE3 及其基于 QUAKE3 框架的扩展引擎 XREAL/EVQ3
这些扩展引擎都是非常著名的开源项目,资料比较多,而且都有相应使用这些扩展引擎作成的游戏,可以观看到游戏实时效果。
例如
基于 DARKPLACES引擎的游戏—NEXUIZ,渲染效果极其惊人啊!!!
基于 QFUSION 引擎的游戏-----WARSOW
基于 XREAL/EVQ3引擎的游戏-----REVOLUTION
A:DARKPLACES使用QUAKE1的框架结构,重写了全部的渲染模块,网络协议以及传输模块,支持DOOM3类型的光影特效,根据我的感觉,应该是渲染效果最好的开源的项目,使用到了相当多的特效(DOOM3光影特效=Stencil Shadow Volume, Per Pixel Lighting, NormalizationCubeMap, 2D+1D Attenuation Texturing, and Light Projection Filtering).该 引擎可以使用著名的QUAKEC进行服务器端游戏逻辑的开发(相当于QUAKE3中的GAME.DLL模块),同时相对于QUAKE1的QUAKEC内置 函数,该引擎扩展了相当多的服务器端QUAKEC函数.更漂亮的是他同时扩展了客户端逻辑部分的函数,通过这些函数可以编写客户端游戏逻辑(相当于QUAKE3中的CGAME.DLL模块,但不完全等同).事实上本人是非常喜欢QUAKEC的编码方式,简练而强大.
B:QFUSION引擎最大的特点是他的逻辑结构非常清晰,他所扩展的骨骼动画系统是其最大的特点.本人的感觉是极其漂亮(当然每个人的观点不同,这只是本人的观点罢了).他使用了skm骨骼动画文件格式.正是通过该引擎的骨骼动画系统,让本人完全掌握整个骨骼动画的精髓,真是收益非浅啊!!!而且整个游戏逻辑端非常清晰,在代码分析时候主要以该引擎作为原代码基础.
C:xreal/evq3整体框架与quake3变化不大,但是最重要的一点是,本人最喜欢的渲染器结构是quake3的render.dll,简直是太完美了,quake3的渲染器可以使用双处理器,为了支持双处理器的运作,quake3自己实现了一条渲染命令流水线,及其完美,收益非浅啊!!!!又要说一句非常重要的话了,伟大的慷慨的卡马克.而引xreal/evq3擎完美的保留了quake3的渲染器框架结构同时扩展了较多的功能,光影特效足够强大.增加了md5骨骼模型的渲染
http://ioquake3.org
http://www.openarena.ws
http://xreal-project.net/
http://www.moddb.com/engines/qfusion
http://icculus.org/twilight/darkplaces/