闲来无事,想看看quake3的源码,就当是学习一下。
我觉得即使是上世纪的代码,还是可以从代码里学习到些东西的,因为核心的思想一直没有变过。
环境搭建
- git clone: https://github.com/id-Software/Quake-III-Arena
- 下载游戏demo:安装Q3ADemo.exe到C:\Q3Ademo
- 安装q3pointrelease_132.exe到C:\Quake III Arena
- 将C:\Q3Ademo\demoq3\pak0.pk3复制到C:\Quake III Arena\baseq3,(这时候打开C:\Quake III Arena\quake3.exe坏掉了)
- 打开编译C:\Users\yzx\Desktop\quake3 data\Quake-III-Arena\code\quake3.sln,选择Debug编译。正常应该在vs2015是可以通过编译的
- 注释一些代码.
files.c
vm.c
vm_x86.c
将活动解决方案配置改为Debug
quake3->属性->配置属性->链接器->常规->输出文件 C:\Quake III Arena\quake3.exe
quake3->属性->配置属性->调试->命令 C:\Quake III Arena\quake3.exe
quake3->属性->配置属性->调试->工作目录 C:\Quake III Arena
quake3->属性->配置属性->C/C+±>预处理器->预处理器定义 添加DLL_ONLY
quake3->设为启动项目
cgame->属性->配置属性->链接器->常规->输出文件 C:/Quake III Arena/cgamex86.dll
game->属性->配置属性->链接器->常规->输出文件 C:/Quake III Arena/qagamex86.dll
q3_ui->属性->配置属性->链接器->常规->输出文件 C:/Quake III Arena/uix86.dll
10. 调试运行
参考
- https://blog.csdn.net/abang1996/article/details/46700741
- https://blog.csdn.net/tailiangliang/article/details/59481429
- https://blog.csdn.net/sky_void/article/details/50372456
- https://blog.csdn.net/tailiangliang/article/category/1145617
- http://fabiensanglard.net/quake3/index.php
- http://fabiensanglard.net/quake3/q3_notes.txt
- http://fabiensanglard.net/quake3/network.php