quake3源代码分析

 Quake3 雷神之锤3 是一个 Fps射击游戏.....嗯。

很多我个人建议阅读源码,我的很多的理解未必就对!

我的很多领悟 仅供参考!

仅供参考!!!!!!!

真的!

相对于十年前,现在我对于这个代码很多是有一定的理解了,以前最开

始就是逐个用 记事本打开阅读的,都没有使用什么vc之类阅读....

到目前了整理这些文章,由于整理我发现我以前写的很多有错误,我不得不再次找出来源码,

阅读,我觉得我很多理解有问题....我还是觉得阅读 源代码 本身比较好,我的只代表我个人的一个领悟,而且随着时间,年龄,很多我也有了新的一些领悟,很多以前的认识不够!!!很多!!!很多!!!

就代码本身,我现在感觉 你最多六七成领悟,其实可以了,有的地方,也不妥当,仁者见仁,智者见智,最多六七成这个代码领悟,最多了(有的有必要深究,有的没有必要,有的翻译一些国外文章就可以了,我目前的一个认识)

很多经过时光,我觉得游戏因人而异,现在看这个游戏有好有差,嗯,我现在的看法,经过了很多时间后,相对很多游戏,Quake3雷神之锤3嗯,是个好游戏!嗯,用心制作的好游戏,其他的待定,很多我自己也发现我自己的多多观点看法未必就一定正确..........所以待定.......可能也是上了一定年纪了......

主要代码文件如下(我自己大致的分法)

common代码文件夹 包括了很多 3ds,文件,图像文件,bsp文件定义,数学计算函数文件,

线程,脚本文件分析等等 各种定义

ui    ui界面定义的一些函数等等

  工具部分的代码

lcc文件包是用来编译quake 代码里面的game,cgame,ui的代码,卡马克对开源的lcc进行了改写,

   再使用qasm来进行编译成为了qvm文件,在游戏时候调用

labs文件夹中 jpeg图像文件的各种定义, pak压缩文件加载,压缩解压锁等等 各种

   qasm 文件夹将game.cgame.ui等等文件夹里的东西汇编为机器码,形成一个虚拟机,执行速度快,也可跨平台。

 q3radiant(地图编辑器可以编辑地图,生成这个地图 map文件) 代码文件夹中包含了很多

地图编辑器的很多代码,主要使用的 微软的 MFC等框架 

   q3map 文件夹里包括

场景处理部分,那是将.map文件经历bsp树分割,生成入口pvs,光照贴图生成等等处理

aas  文件夹 中生成很多区域文件,比如机器人导航用的

文件包,其实是关卡编辑器编辑生成很多区域导航路径用的。

引擎代码

code文件夹里 内是雷神之锤3引擎主要的代码,

  分为客户端和服务器端了

客户端

   botlib是用于机器人部分,用于单人模式的一部分,其中包括加载BSP文件,

 加载机器人模型,脚本,机器人AI部分等等

   

   q3ui是quake3的用户界面部分。

 cgame 部分是用于客户端程序的逻辑部分,

调用client的函数代码

   client 主要键盘,有鼠标驱动的实现方式,以及键盘键值的绑定,输入输出 ,套接字以及控制台代码的使用等等

    Render渲染器主要是 将视频,2dui,字体,3d模型,地图进行显示了

   sound加载wav部分代码,解码进行播放。

服务器端

  sever 网络部分,一个游戏运行时

1 单人时运行时仿照多人部分的服务器端

2,LAN或者Internet部分这个服务器部分实现

game 是用于服务器端的逻辑部分,分两部分,1单人时运行时的人工智能部分,

模拟网络连线对战。2网络连线时,运行网络部分代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值