Quake3游戏,这些源代码相当精髓,越是低层的函数,越令人叹为观止,效率是如此之高,函数如此之简洁,能读一下,对我们的编程能力相当有帮助.然而我只是初步浏览了一下,还有许多不明白的地方,诸如平台共享性,Quake3"游戏引擎"的更多精髓之处,资源文件的怎样编辑,怎样令CPU始终分配有续而不出现卡屏.
现在Quake3的游戏源代码已经全部开放,对于这个时代的"Quake迷"来说,不失为一个又学习编程与玩游戏的大好机会.费话勿说,进入正题.
在开始之后,请务必下载以下几个文件.
1.Quake 3 Demo版
http://www.cnblogs.com/weiqubo/admin/ftp://ftp.idsoftware.com/idstuff/quake3/win32/Q3ADemo.exe
2.Quake 3 发行版
(直接运行出错,可以是出于版权考虑)
http://www.cnblogs.com/weiqubo/admin/ftp://ftp.idsoftware.com/idstuff/quake3/win32/q3pointrelease_132.exe
3.Quake 3 源代码
(此为我们的处理的重点所在,也是我们学习编程精髓的目标)
http://www.cnblogs.com/weiqubo/admin/ftp://ftp.idsoftware.com/idstuff/source/quake3-1.32b-source.zip
3.用来将Visual C++ 2003工程文件 转换为VC6.0工程文件
(由于Quake 3的引擎是由Visual C++ 2003编译的,而我们要用VC6.0来编译)
http://www.vckbase.com/tools/assist/MagicVC7To6.rar
或许你会纳闷,即然有源代码,为什么要Demo和发行版呢?这是因为游戏运行,不仅要Quake 3 源代码这个"游戏引擎",还需要诸如配置信息、地图、模型、声音、贴图、demo、图标、光标等资源文件,而这些在Demo和发行版里有,我们就不需要去辛辛苦苦去找了.
一.解压Quake 3 源代码quake3-1.32b-source.zip,解压到目录D:\quake3-1.32b-source
二.运行MagicVC7To6转换程序,将软件中的"搜索路径"为D:\quake3-1.32b-source\quake3-1.32b,点击"搜索",再单击"转换"
三.进入目录D:\quake3-1.32b-source\quake3-1.32b\code,找开转换后的工程文件quake3.dsw
1)将所有工程属性Win32 Debug,改为Win32 Release
2)在工作区fileview中,右击"ui files"工程,左击"卸载工程",这一步很关键,否则会出现错误
3)在菜单栏里依次点击"工程"-->"从属性"-->在"选择修改工程"的下拉框中,选择quake3.在"从属以下工程:"选择框中,在botlib和renderer前面打勾,确定即可.
4)在工作区fileview中,右击"quake3 files"工程,再选择"设为活动工程"
5)打开"quake3 files"工程中的files.c,注释 第3263,3264,3266三行,如下
// if ( FS_ReadFile( "default.cfg", NULL ) <= 0 ) {
// Com_Error( ERR_FATAL, "Couldn't load default.cfg" );
// bk001208 - SafeMode see below, FIXME?
// }
然后,将files.c中的static void FS_SetRestrictions()函数的全部内容注释,仅剩下如下的空壳函数
static void FS_SetRestrictions( void ) {
}(#add 没发现有什么用?)
6)保存文件,按F7编译
(其实至此,源代码已编译完成,但为了证明编译后的游戏程序的正确性,请继续以下步骤)
四.安装Quake 3 Demo版的Q3ADemo.exe和Quake 3 发行版q3pointrelease_132.exe,到C:盘的根目录,安装后分别为C:\Q3Ademo与C:\Quake III Arena
五.将C:\Q3Ademo\demoq3目录下的pak0.pk3文件复制到C:\Quake III Arena\baseq3 目录下.
六.将编译后位于目录D:\quake3-1.32b-source\quake3-1.32b\code\Release下的的quake3.exe文件覆盖到目录C:\Quake III Arena
(如果找不到quake3.exe,试试在Debug下目录找找)
七.运行quake3.exe,~~~~~now! 你可以开始疯狂游戏了
附录:
关于QuakeIII游戏的几点知识
Quake3由以下部分组成:Quake3.exe(引擎)、.qvm文件(游戏逻辑)、游戏资源,
我们所编译的是引擎,也就是最关键的部位.
.qvm文件其实在.pk3类文件中,将其后缀名改为.rar,解压即可看见.
大家所熟悉的CS,就是在HalfLife的基础上修改而来的,而HalfLife,采用的正是Quake2的引擎。由此可见,这三个部份的区分所带来的方便性。事实上,如果大家乐意,完全可以基于Quake3制作出一个CS的,修改游戏逻辑、替换游戏资源就是了,至于渲染等比较“苦闷”的活儿,交给Quake3.exe好了