Quake3代码研究后记

现在看Quake3雷神之锤3代码,游戏引擎代码,我以前老是认为是3d引擎,偏向于渲染,以前都

不知道包括了,关卡编辑器,什么Ai,脚本的,ui,游戏逻辑,网络等其实是个 游戏 引擎!以前

我的很多认知不全的!!很不全的!!很不全的!!!!!

游戏 引擎,而不是单一的 3d引擎,其实它要比 Quake1,2很多我觉好 理解,Quake 1,2代很多其

实软件渲染,还要软件,cpu处理很多画线段,等等处理,那两个其实难一些,doom的源代码,有

的我觉得编辑器,二维的其实没有3维的快,大部分硬件,已经不是以前80——90年代...

doom画面很多,我个人暂时是是看不下去,所以不怎么研究,只是我个人意见...玩不一定玩得下

去,但是很多的doom文化,各种硬件上能够运行doom很多挺厉害的,只是编辑器有点难以操作,

所以不研究,Quak3是关卡编辑器比如GTKRadiant 等可以用的,所以才,实际doom游戏设计还

有很多技巧,我觉得很厉害!!真的.....衍生出来太多的doom类游戏,很多哔哩哔哩动画的视频其

他古老的很多游戏《太空侵略者》《宇宙大战》?很多老游戏其实是值得看一看的............

很多的老游戏,值得再次,多次看看,创意,创新,我见了不少的单机游戏,但是真的没多少感觉

好玩的,我觉得有的好比象棋有的玩法很多,未必今人就比古人强,很多属于画面还有音乐,物理

各种创新,玩法其实未必就能超越..........

《doom启示录》

《图形人员开发指南》有关于Quake1,2的一些渲染,各种,

《Doom启示录》,嗯,每种技术各有千秋,嗯,现在Quake,Doom引擎,现在看,有好,有

中,有差,比如ui设计就普通的,其他画面也没有当年的惊艳..亮丽等等了, doom3其实还可以

的, 时间长期看下来,实际很多游戏,玩法可以的!!游戏程序员!!并不是3d计算机专业很多

专业的..可以说是开发 的id 的游戏 的游戏引擎,并不是什么3d 渲染引擎,非要一个劲的画面好

看,不是CryEngine!从《德军总部3d》很多就是,包括doom,确实是超前了,但是并不是专一为

了画面,主要游戏用................

玩法很多我觉并不是什么技术,很多属于克制的很多,应该是给关卡设计者和美工的时间洽谈多,克制!!!代码后来看,doom3很多比unreal,cryengine,代码少,

   在我当年研究看quake3源代码中,是学习《openg编程指南》,c语言编写程序,那时候对于c++实在是不了解,更重要的是,c语言加上opengl,简单入门,方便快捷,再后来的Cg语言的学习,时间和代价上面,完全的速度快捷。

所以才看的Quake3等代码,主要是更简单一些,其他的感觉都复杂一些.......是根据自身情况的..

我仍然认为,你有c语言知识,windows编写程序,还有Opengl的编程知识,我觉得quake3的源代码,懂一些,触类旁通,你或许还能看懂,其他的源代码,

例如虚幻3,4,ce5,我估计大部分人下载源代码,就是收藏起来,然后堆着不看了。

  在当时的网上q3场景分析,现在网络上面一搜索也不少。对于q3的研究资料不少,除了id持续开放引擎,其他的厂商有谁?国产的更不用提了。

 我觉得要比C++和D3D,说实话,一个人入门就必须先搞懂C++,stl,boost,我觉得时间和代价上面划不上来。

 Orge源代码到现在都懒得读,我后来看了虚幻和cryengiene的源代码,根本在核心部分,根本上什么继承,标准的根本不找找Orge那一套子来了。

后来我从google搜索得到了几个国产的C++和d3d的源代码,但是实在是没有学到什么像样子的东西了,没有耐心再看游戏引擎的源代码,看着都烦。

根本上来看doom3的源码结构上面要比quake3好很多了。但是难度也是增加了很多了

c++编写, 当然很多是c与c++混用的

simd,1,2,3,4,5使用,3dnow!指令,来对于向量的加减乘除,再加上

nvidia,amd显卡,对应 各自的程序。

      doom3这个代码很多的地方完全我没有想得到了,我觉得整个的代码就是为了doom3游戏而制作的,有一些命令来生成法线贴图的。

  比如 生成megetexture的命令,

doom3的ui不仅仅乃是游戏界面的Ui,如果你玩过这个游戏的话,

在这个游戏里鼠标点中的ui很多,也是使用ui的脚本来处理的,

很多的地方我根本没有想到的,阴影体以前在《opengl游戏编程》中看到,

但是doom3的阴影体直接在编译前就计算处理阴影体了,

 doom3增加了物理部分,关卡编辑器中材质文件,增加一大批的属性,模型为lwo模型

增加抓取,drag拖拉,force力的计算

关卡编辑中增加了对于材质编辑,相对于quake的光照贴图,

doom3增加了bump,diffuse,specular,等等其他的贴图文件

增加了脚本编辑器,

decl定义编辑器

灯光编辑,角色的动画,模型换成了骨骼动画,支持ik,等等

声音的编辑器,声音尤为特色》。。。

af物理和角色属性编辑,脚本编辑器,ui编辑器,

关卡编辑器中大部分跟quake3 使命召唤2,4,5的关卡编辑器相似,大同小异。

新加入了,实时的光照,比如按下f2,f4,f5,等选择声音播放,

fun函数,以及这个target,ai的更多了者也,

cin场景照相机在关卡编辑器中,来进行创建过场动画

对于照相机的移动,轨迹等等

增加了对于粒子系统的编辑器

很多东西真的我就理解了epic的udk,ue4确实是方便,

在材质编辑中doom3写脚本,而udk直接连线来创建材质

在doom3中需要你编写代码来进行,比如地图脚本,武器脚本,敌人脚本,等等各种脚本

游戏逻辑,doom3乃hi一个个的代表触发器,以及函数方块来表示,ue的乃是在kismet中来不断的连线,

和创建对象,我总觉得,这样子ue3的更适合耕种游戏类型,而doom3的引擎被限制住了,

在引擎方面,

这个脚本比以前的更加强大了,编译的时候多线程处理

gui部分更加强大,比如游戏中的电梯的显示密码框,门的点击处的gui,

不仅仅游戏开始界面和设置等截面能够用,而且游戏中也能够使用的

比如游戏中出现的血迹等等

武器上id的武器很熟比quake3的武器函数多了2,3北,唔得子弹,武器升起,

下落等跟我看的cod4 radiant,使命召唤4的脚本中有的一拼,总是有一大批

人喊着使命召唤跟quake3引擎有关系,我看只有关卡编辑器代码有点相同,

其他引擎方面完全不同,

游戏逻辑上跟以前的quake3生成的cgame,game虚拟机的完全取缔了,

直接将game文件夹的,脚本编译,aas,ai,等等编译成了dll文件来使用开了

触发器相当的强大了fun__once,等等

fx例如地震,等等

framework的框架包括了压缩系统,文件系统,内存管理系统,控制台系统等等

声音方面,opengAL,声音有了max.min范围了

场景管理中在加载地图后,生成pvs潜在可视集

地图不行quake3一样bsp了事,而是cm碰见检测,proc地图,分别来进行处理的

渲染上,与渲染的阴影锥,实时逐象素光照,材质脚本中,specular,bump,diffuse,等等支持5,6中不同的材质贴图

碰撞检测,有球星,立方体等等,

跟quake3不同,地图分为多人与单人的

代码上,单人和多人的代码在一个文件包中了

我自己回复一下自己学到了一些感悟

    (0   )  材质脚本

以前在看Opengl编程指南的时候,老是opengl中各种Opengl函数来处理材质,glFilter,glGenTextures,fog等等        opengl扩展,中,根本没有想到一个材质脚本中

包含了,specular,diffuse,bump等等图像文件加到了一块,来作用到了一个多边形面上

    (1)配置文件

 我居然不知道cfg文件,来将程序中要用到的变量在外部来进行定义,以前在学校的时候,全是小程序,根本全部在程序里面写死了,

  根本没想到要在程序外面加上了配置文件这个的

 操作,渲染,声音等等各个方面的定义在配置文件里面搞定相当的爽,

   (2)控制台

     这个也没有想到,配置文件的变量全部可以在控制台里面来进行调整,map 地图名,来加载上了地图了,

god,give health,vid_restart 0, set等等指令,来供关卡设计师来使用的命令,我自己没有想到。

引擎是给人使用,而不单单只是画面。 

  (3)预处理

在我过去的想法中,实时的渲染就是一切,但在游戏中,在当时的游戏,就要尽可能的考虑到游戏并不是等同于现实的世界。

玩家看不掉的几何部分,统统可以裁剪掉了,可以指定哪些物体能够具有阴影,光能够照射多远。

比如玩家FPS持有的枪支,枪口部分玩家可以看见的部分,做的差一点,手里持有枪托部分,美工可以淡化。

阴影可以预先计算。入口 可以预先计算,法线贴图可以预先生成,                                                                                                         

  见过orge,Irright这几个引擎,我觉得没有预处理光照,预先计算下来,我觉得没有在关卡编辑器做成地图以后,

  (4)bsp

   我见过很多的讲bsp场景管理的资料,但是我觉得很多的书籍资料,都是写了很多的bsp是什么,怎么回事,但是没有几个

 讲的很清楚,实践意义不强,quake3,doom3都对于bsp算法,进行了改造,并不直接的照搬。

    quake3的bsp之所以能够的用上,完全乃是brush,室内室外,,地图编辑器,决定的,再去生成bsp,pvs,光照的

完全跟经典的bsp算法两回事情,

  (5)entity,model,bot............

一开始我根本不知道entity是什么意思的英语,一大批的英语单词不知道怎么回事,

entity到后来,逐渐领悟到了,brush,particle,patch,等等东西,抽象出来的一个类,

能够对于,模型,的位置,方向,属性,

bot更是如此了。                                                                                                                                                                                              

在文件加载领域,Quake3,doom3对于文件加载,不断的加载,对于文件类型的检验,检查文件头,我在学校中,都是直接加载文件,

根本就不知道要检验这个文件的属性了

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值