现在这一部分,很大意义上是游戏的初始化部分。
很大意义上是从你点击3D游戏开始出现的画面,到这个游戏结束的一个过程经历罢了
加载roq视频文件,解压缩
在刚开始的游戏画面一般是游戏公司的标志,例如id的公司标志乃是出现的那个汽车引擎的画面,代表id的引擎
或者人的神经的样子,代表 深思(deep idea) 还记得《doom启示录》里的id公司名字的来临吗?这个就是。
一开始q3游戏就会显示加载,bsp,等等文件,你可以看见,或者在游戏中按下“~”
打开控制台,就可以看见了
windows的代码
windows->load库文件{ 检测cpu,gpu等等显卡的信息者也
检测机器的类型,比如显卡,cpu的种类之类,生成配置文件 ,
初始化d3d,初始化opengl,
初始化网络端口,鼠标,键盘的初始化,时间的记录等等,
加载cfg配置文件,配置各个系统,。。。。。。。。。。。。。等等
初始化内存空间部分,联网,
如果出现问题的话,那么在会出现了控制台就会显出错误来
创建虚拟机, 加载qvm等脚本文件,根据这个ui。qvmcgame.qvm,game.qvm等逻辑部分,
要对于文件进行编译
不断遍历虚拟机的各项状态,例如断开,运行中了等等了
如果是单机, server的配置等等,例如玩家的数目,
开始进行游戏
启动cgame中的内容,对于游戏开始状态的遍历,将硬盘文件中ui的图片,标签来进行调用渲染器来进行显示在了屏幕上面
加载Ui背景音乐
然后加载代表公司的电影,来显示
然后会出现这个ui游戏的界面部分,
一般单人部分,多人部分,设置,制作团队,退出等等这几个选项吧
然后加载代表ui的图像,文字等等在屏幕上显示出来
ui的显示部分,包括了显示部分,鼠标点击部分,菜单子菜单,按钮,标签等等。
可以按格式分为分为icon,string,图片等等,以及相应的位置.颜色。
然后在游戏运行时,被编译为机器码以后,再被render的2D部分渲染之
例如 调用这些函数
draw font
draw icon
draw 3D model
draw 2d image
等等
ui很大意义上能够调用引擎的部分函数,改变游戏中的的设置。
ui与控制台很大意义上对应的是各个部分函数对应的命令,虚拟机通过这个命令把命令转换为对应的真正的函数
来调用之,这个极为重要者也,quake3把各个部分的主要的接口例如渲染,ai,音效等等,的函数,对应成命令,
就像快捷方式一样,通过虚拟机,执行陷入 来实现汇编语言的跳转来转到真正的函数上来,整个quake3其实就是
根据命令行的输入,执行来处理的,
你可以输入控制台命令来使用引擎的功能的,例如god表示无敌,give all,给你所有的东西,这其实是控制台命令罢了
命令行驱动是quake3的运行方式,其实就是有限状态机!状态的变化使得调用的函数不同者也。
例如 (伪代码如下)
loadFile 0
readfile 1
write 2
closefile 3
addEntity 4
renderCurentFrame 5
startAI 6
举了个简单的例子,不太恰当,大致就是quake3使用一个变量,保存的各种状态等等,不断的切换各种状态,来调用的
真实的函数执行。
机器人也是用的这个。
在控制台里可以使用命令行的一部分命令了,要用这种思路来看quake3的代码,
quake3运行时,不光是quake3.exe的运行,还有一个控制台程序运行呢.要用调试的眼光看quake3
的代码。
查看内存的大小,以及那块文件未被加载,实时的调试程序,
查看每一幁的多边形多少,时间的长短,改错误。加载每一副地图,检验有没有问题,这个要求在做引擎时,要进行对
各个部分的处理信息显示完成消息在控制台里
例如我们平时玩的游戏,可以输入作弊命令的,例如god上帝模式,加载地图,加载生命值,其实都是在加载间接调用的
真正的函数运行罢了。
大致的流程
在游戏开始了以后
在cgame文件夹里包含了对于地图的场景数据,音效,等等的记录等等,很像是把物体放到房间里来,摆好位置。
在加载成功后,要在控制台显示加载成功者也。利于程序猿进行知道是否加载成功了。
对文件加载进来后,分析文件有没有问题,在进行游戏的逻辑阶段,客户端的比较简单了,就是其他的玩家显示,你自己的统计
起来发到网络,渲染,等等各部分
在加载地图后,
还要加载表示物体的模型与音效(拿去后的音效),初始化位置,动得要进行运动者也
初始化玩家信息
玩家属性包括了(1)相应的模型(三部分,头部,胸部,下部),放到3D阶段渲染。
(2) 声音(例如起跳时的声音,落到水里时的声音,死亡时的声音,受伤时的声音)
(3)玩家的生命值,弹药数目,武器,装甲等等,通过2D窗口的文字,来进行2D渲染者也
如果是bot,还要加载bot对应的脚本程序,编译,赋给bot以参数者也
等等:
(4)手里预先的的武器,gun!一般从配置文件设置出,quake3初始的默认武器就是一把机关枪。
位置,移动速度。状态(爬着,走路&