全部版块 我的主页
论坛 数据科学与人工智能 IT基础 JAVA语言开发
1242 0
2018-11-04
Quake  2  编译

q2-3.24-x86-full-ctf-1.5.zip
大小:(30.62 MB)

 马上下载

本附件包括:

  • quake2.exe
  • ref_gl.dll
  • ref_soft.dll
  • Patch 3.24 readme.txt



- Visual Studio 2015
  - add MFC library
VS 2015 add MFC library
You probably need to modify the Visual Studio 2015 setup and add the MFC .

Please close VS2015 and go to Control Panel -> Programs and Features -> Microsoft Visual Studio -> Change -> Modify -> Add Microsoft Foundation Classes



- download quake 2 source code from github  
  - use VS 2015 to build
    - compile in x86 mode


- download baseq2
- to create quake 2 run dir
  - quake2.exe
  - ref_gl.dll
  - ref_soft.dll
  - base2q
    - gamex86.dll


quake2游戏是id software公司的第一人称视角游戏,源代码开放(也有quake3),这些代码使用的某些技术也许已经过时(如那时的gpu编程技术还不完备),但出自著名的fps游戏之父john carmark的quake游戏源代码使我们今天在研究游戏框架,游戏引擎设计,c/s通信等方面都有着难得的借鉴和学习价值,更重要的是,这是一款商业程序的开源,也能领悟到john  carmark高超的编程技术




研究目标:
quake2工程分为6个部分:
- ctf(组队作战)
- game(游戏逻辑部分)
- quake2(游戏引擎部分)
- radar(雷达系统)
- ref_gl(opengl图形支持)
- ref_soft(软件其他 图形支持)

先分析游戏引擎部分,也就是quake2工程.



打开quake2工程,我们先看它的头文件:


- cdaudio: cd音频支持
- client: 定义了客户端状态和桢数等一些重要的数据结构,全局变量还有客户端一些重要的实现引擎功能的函数,我们在后面会详细分析client.
- conproc: 实现一个类似控制台的功能
- console: 实现控制台的输入
- game: 定义了game模块的输入和输出函数,也就是定义了quake2引擎和上层的游戏逻辑部分如何交互
- init: 实现一个简单的dll加载回调函数
- input: 输入子系统,和引擎交互(鼠标,键盘和游戏杆)
- keys: 键盘支持
- q_shared: 共享的数学库,数据结构定义和枚举变量
- qcommon: 相当于引擎中的一个通用库
- qfiles: 游戏中的文件格式的定义和解析.
- qmenu: 菜单界面支持
- ref: 定义了引擎和图形模块(ref_gl和ref_soft)部分的交互,输入和输出函数
- screen: 屏幕操作的一些支持
- server: 游戏引擎的服务器端,这也是很重要的部分,我们后面会详细分析.
- snd_loc: 定义了本地的底层音频处理函数
- sound: 声音系统的支持
- vid: 视频系统的一些函数
- winquake: 和windows系统相关的一些函数



- 编译Quake 2的经历 ONLINE



- 雷神之锤2 操作秘籍

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群