Vincent's Ray Tracing

"... We slept on floors. We waded across rivers."

  :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

如果不去读quake3代码,作为一个游戏程序员是说不过去的,现在去读还不晚,肯定会碰到很多问题,解决问题的过程就是练级。

hacking之前,首先是建立环境,运行调试环境。quake3是99年推出的,到现在已经十二年了,网上能找到一些关于quake3编译运行的只言片语
但都不可行,自己只有基于这些再加上自己试验,make it works!

 在开始之后,需以下几个文件.
 1.Quake 3 Demo版(我们需要里面的资源相关的东西)
 ftp://ftp.idsoftware.com/idstuff/quake3/win32/Q3ADemo.exe
 2.Quake 3 源代码
 ftp://ftp.idsoftware.com/idstuff/source/quake3-1.32b-source.zip
 3.Quake 3 发行版q3pointrelease_132.exe(单纯照其他网上的步骤,只使用demo资源始终要报错)
 
 进入正题.
 1.打开代码下/code/quake3.sln,直接编译,不出意外会报错:
   ui.def : error LNK2001: unresolved external symbol vmMain
   将solution configuration从Debug Alpha改为Debug,OK!
  
 2.关键这样还不是很好,因为这样直接把生成的quake3.exe拿去运行会有问题:
   打开"quake3"工程中的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中的tatic void FS_SetRestrictions()函数的全部内容注释,仅剩下如下的空壳函数
 static void FS_SetRestrictions( void ) {
 }
 
 3.安装Quake 3 Demo版的Q3ADemo.exe和Quake 3发行版q3pointrelease_132.exe,到C:盘的根目录,安装后分别为C:\3Ademo与C:\Quake III Arena,
   将C:/Q3Ademo/demoq3目录下的pak0.pk3文件复制到C:/Quake III Arena/baseq3 目录下
  
 4.接下来就是用vs进行跟踪调试的关键步骤:
   change quake3 project property -> Linker -> output file C:\Quake III Arena\quake3.exe
   change quake3 project property -> Debugging -> Command $(TargetPath)
   change quake3 project property -> Debugging -> Command $(TargetDir)   //C:\Quake III Arena
  
 5.现在,前往金银岛的船已经好了,Let's Hack !


              |    |    |
             )_)  )_)  )_)
            )___))___))___)\
           )____)____)_____)\\
         _____|____|____|____\\\__
---------\                   /---------
  ^^^^^ ^^^^^ ^^^^  ^^^^^^^  ^^^^^    ^^^

posted on 2011-09-12 15:35  Vincent Pan  阅读(2572)  评论(1)    收藏  举报