天天看点

3D游戏引擎编写(3)--quake3代码分析笔记(1)

(所有笔记没有整理,涂鸦式记录,全部完成后整理成文档。)

一、quake3编译和调试环境搭建

1. 安装quake3 III Area,升级到1.32,有些机器不升级到1.32无法运行

2. 下载quake3-1.32b 源代码

3. 安装visual studio 2008(我用2008,vc6就可以)

4. 安装directx9.0c(quake3是纯OpenGL,为什么需要directx,目前还不清楚,以后再研究)

5.  拷贝 quake3 III Area 的baseq3(资源文件,包括模型,贴图等)到code目录下。

6. 打开code/quake3.sln编译下列项目

     1. quake3 主项目,也是唯一的执行程序,程序主入口。编译后生成quake3.exe文件

         修改项目属性,将exe文件生成在code目录下

     2.  q3_ui   UI模块,编译后生成uix86.dll

         将文件生成在baseq3目录下

     3.  cgame  客户端游戏模块,编译后生成 cgamex86.dll

         将文件生成在baseq3目录下

     4. game 服务端游戏模块,编译后生成qagamex86.dll

         将文件生成在baseq3目录下

     5. renderer  渲染模块,生成renderer.lib,被其他项目静态包含

     6. splines 目前没有研究过做什么用

     5. ui 新的ui模块目前没用

7. 编译工具项目

    1. lcc quakeC编译工具

    2. qasm qvm生成工具

    3. q3map map编译工具(目前没用过)

    4. q3radiant   map编写工具,需要.prj文件,目前不会用

8. 在quake3中uix86.dll,cgamex86.dll,qagamex86.dll可以编译成.qvm方式。

    编译方式:设置lcc,qasm等执行文件的目录,运行各自目录下的bat文件即可,

    如:q3_ui/q3_ui.bat会在/quake3/baseq3/vm/ui.qvm文件。

    注:qvm和dll区别,

          qvm是quake中的一个虚拟机类似于jvm,在qvm中的程序不能有所限制,安全性好。

          baseq3/q3config.cfg中的seta vm_ui "0" 配置项是控制采用加载dll还是qvm。

编译完成,可以调试跟踪项目了。

继续阅读