|
我们可以把游戏的引擎比作赛车的引擎,大家知道,引擎是赛车的心脏,决定着赛车的性能和稳定性,赛车的速度、操纵感这些直接与车手相关的指标都是建立在引擎的基础上的。游戏也是如此,玩家所体验到的剧情、关卡、美工、音乐、操作等内容都是由游戏的引擎直接控制的,它扮演着中场发动机的角色,把游戏中的所有元素捆绑在一起,在后台指挥它们同时、有序地工作。简单地说,引擎就是“用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等。”
可见,引擎并不是什么玄乎的东西,无论是2D游戏还是3D游戏,无论是角色扮演游戏、即时策略游戏、冒险解谜游戏或是动作射击游戏,哪怕是一个只有1兆的小游戏,都有这样一段起控制作用的代码。经过不断的进化,如今的游戏引擎已经发展为一套由多个子系统共同构成的复杂系统,从建模、动画到光影、粒子特效,从物理系统、碰撞检测到文件管理、网络特性,还有专业的编辑工具和插件,几乎涵盖了开发过程中的所有重要环节,以下就对引擎的一些关键部件作一个简单的介绍。
首先是光影效果,即场景中的光源对处于其中的人和物的影响方式。游戏的光影效果完全是由引擎控制的,折射、反射等基本的光学原理以及动态光源、彩色光源等高级效果都是通过引擎的不同编程技术实现的。
其次是动画,目前游戏所采用的动画系统可以分为两种:一是骨骼动画系统,一是模型动画系统,前者用内置的骨骼带动物体产生运动,比较常见,后者则是在模型的基础上直接进行变形。引擎把这两种动画系统预先植入游戏,方便动画师为角色设计丰富的动作造型。
引擎的另一重要功能是提供物理系统,这可以使物体的运动遵循固定的规律,例如,当角色跳起的时候,系统内定的重力值将决定他能跳多高,以及他下落的速度有多快,子弹的飞行轨迹、车辆的颠簸方式也都是由物理系统决定的。
碰撞探测是物理系统的核心部分,它可以探测游戏中各物体的物理边缘。当两个3D物体撞在一起的时候,这种技术可以防止它们相互穿过,这就确保了当你撞在墙上的时候,不会穿墙而过,也不会把墙撞倒,因为碰撞探测会根据你和墙之间的特性确定两者的位置和相互的作用关系。
渲染是引擎最重要的功能之一,当3D模型制作完毕之后,美工会按照不同的面把材质贴图赋予模型,这相当于为骨骼蒙上皮肤,最后再通过渲染引擎把模型、动画、光影、特效等所有效果实时计算出来并展示在屏幕上。渲染引擎在引擎的所有部件当中是最复杂的,它的强大与否直接决定着最终的输出质量。
引擎还有一个重要的职责就是负责玩家与电脑之间的沟通,处理来自键盘、鼠标、摇杆和其它外设的信号。如果游戏支持联网特性的话,网络代码也会被集成在引擎中,用于管理客户端与服务器之间的通信。
通过上面这些枯燥的介绍我们至少可以了解到一点:引擎相当于游戏的框架,框架打好后,关卡设计师、建模师、动画师只要往里填充内容就可以了。
好的,我们现在要直接面对一个问题,如何测试游戏引擎?
首先来切分一下我贴图的两个游戏的引擎,第一款“太空杀手”的引擎具体可以分为:
1.图形驱动引擎
2.脚本控制引擎
3.物理规则引擎
4.声音驱动引擎
5.磁盘操作或者网络驱动引擎
... ...(我暂时只能想这么多了)
第一个图形驱动引擎可以更加细化为:
1.光影效果(最简单的就是让画面有一种层次效果)
2.爆炸效果(粒子演算,这里的爆炸全部都是计算的即时由计算机绘制)
... ...
第二个脚本控制引擎可以更加细化为:
1.陨石运动轨迹(不同色彩的陨石有不同的运行方式)
2.敌对物体出场数量及轨迹特征(不同级别的敌对物体有不同的顺序组合和运动特征)
3.BOSS出场前控制(停止关卡脚本,清场加入BOSS脚本)
... ...
第三个脚本物理规则引擎可以更加细化为:
1.我方物理碰撞效果
2.敌方物理碰撞效果
3.陨石物理碰撞效果
4.边框物理阻止效果
... ...
总之很多,每一个引擎所使用的测试技术肯定是开发导入,如果认为只要去玩就是做测试那就绝对是个误解了,我在后面会把两个游戏的测试方法写出来,包括代码展示,希望大家能对游戏测试有个粗浅的认识 |
评分
-
查看全部评分
|