原文网址:http://blog.163.com/cp7618@yeah/blog/static/70234777201102032826267/
Quake3组成
2011-01-20 15:28:26| 分类: quake3 | 标签: |字号大中小 订阅
我们的安装目录下面有一个Q ke3.exe,然后有一个叫做“BaseQ3”的文件夹,其中有一些.PK3文件。我们运行游戏时,Q ke3.exe被系统加载,然后Q ke3.exe使用BaseQ3中的.PK3文件,为我们展现一个精彩的世界。正如大家所了解的,.PK3其实是一个压缩包,可以通过修改扩展名为“.zip”,用WinRar、WinZip之类的解压缩软件解压缩。.PK3文件中存放了Q ke3所需要的配置信息、地图、模型、声音、贴图、demo、图标、光标等资源文件。
Q ke3的主程序,也就是我们安装目录下面躺着的Q ke3.exe,是Q ke3的入口(呵呵,好像有点废话)。就是这个可执行程序,我们可以将它称为“引擎”。它负责了几乎所有的与游戏内容无关的任务,比如渲染、网络通讯、用户IO、物理和碰撞检测等。
在Pak0.pk3中一个比较有意思的东东就是vm目录下面三个文件:cgame.qvm、qagame.qvm和ui.qvm。这几个文件的扩展名为.qvm,就是所说的“Q ke Virt l Machine”,即Q ke虚拟机(文件)。它们负责了游戏的所有“实质性”的东西,比如武器系统、伤害计算等等。它们由Q ke3.exe进一步编译后执行。
好了,大家现在已经知道,Q ke3由以下部分组成:Q ke3.exe(引擎)、.qvm文件(游戏逻辑)、游戏资源。有的朋友可能会问,为什么不把引擎和游戏逻辑放到一起,还能够节约Q ke3.exe对于.qvm文件的编译过程。对于这个问题,我的答案:还不是为了方便我们广大玩家!有了这样一个结构,我们就可以很方便的修改或者制作自己的Mod。大家所熟悉的CS,就是在HalfLife的基础上修改而来的,而HalfLife,采用的正是Q ke2的引擎。由此可见,这种框架所带来的方便性。事实上,如果大家乐意,完全可以基于Q ke3制作出一个CS的,修改游戏逻辑、替换游戏资源就是了,至于渲染等比较“苦闷”的活儿,交给Q ke3.exe好了
Q ke3的主程序,也就是我们安装目录下面躺着的Q ke3.exe,是Q ke3的入口(呵呵,好像有点废话)。就是这个可执行程序,我们可以将它称为“引擎”。它负责了几乎所有的与游戏内容无关的任务,比如渲染、网络通讯、用户IO、物理和碰撞检测等。
在Pak0.pk3中一个比较有意思的东东就是vm目录下面三个文件:cgame.qvm、qagame.qvm和ui.qvm。这几个文件的扩展名为.qvm,就是所说的“Q ke Virt l Machine”,即Q ke虚拟机(文件)。它们负责了游戏的所有“实质性”的东西,比如武器系统、伤害计算等等。它们由Q ke3.exe进一步编译后执行。
好了,大家现在已经知道,Q ke3由以下部分组成:Q ke3.exe(引擎)、.qvm文件(游戏逻辑)、游戏资源。有的朋友可能会问,为什么不把引擎和游戏逻辑放到一起,还能够节约Q ke3.exe对于.qvm文件的编译过程。对于这个问题,我的答案:还不是为了方便我们广大玩家!有了这样一个结构,我们就可以很方便的修改或者制作自己的Mod。大家所熟悉的CS,就是在HalfLife的基础上修改而来的,而HalfLife,采用的正是Q ke2的引擎。由此可见,这种框架所带来的方便性。事实上,如果大家乐意,完全可以基于Q ke3制作出一个CS的,修改游戏逻辑、替换游戏资源就是了,至于渲染等比较“苦闷”的活儿,交给Q ke3.exe好了
作用 | 路径 | 作用 | 目标文件 |
引擎相关 | \botlib | 有关bot的信息 | (lib) |
\bspc | bsp计算程序 | (exe) | |
\client | 客户端相关 | () | |
\renderer | 渲染器 | (lib) | |
\server | 服务器相关 | () | |
\splines | 样条曲线 | (lib) | |
游戏相关 | \cgame | 客户端游戏逻辑 | (qvm) |
\game | 服务器端游戏逻辑 | (qvm) | |
\q3_ui | 界面(Q ke3) | (qvm) | |
\ui | 界面(Team Arana) | (qvm) | |
平台相关 | \null | 平台无关代码 | |
\macosx | MAC系统相关 | | |
\unix | UNIX系统相关 | | |
\win32 | Windows系统相关 | | |
外部库 | \jpeg-6 | jpeg编码/解码 | |
通用 | \qcommon | | |