游戏引擎到底是什么?

转帖:

我们经常会碰到“发动机”这个词。引擎在游戏中起什么作用?它的演变对游戏的发展有什么影响?

什么是引擎:

我们可以把游戏的引擎比作赛车的引擎。众所周知,发动机是赛车的心脏,决定着赛车的性能和稳定性。赛车的速度、操控感等与驾驶者直接相关的指标,都是以发动机为基础的。游戏也是如此。玩家体验到的故事、关卡、美工、音乐、操作都是由游戏的引擎直接控制的。它扮演中场引擎的角色,将游戏中的所有元素捆绑在一起,并指挥它们在后台同时有序地工作。简单来说,引擎就是“用来控制所有游戏功能的主程序,从计算碰撞、物理系统与物体的相对位置,到接受玩家的输入,以正确的音量输出声音等。”

可见发动机并不是什么神秘的东西。无论是2D游戏还是3D游戏,无论是角色扮演游戏、即时战略游戏、冒险解谜游戏还是动作射击游戏,即使是只有1兆的小游戏也有这样的控制代码。经过不断的进化,如今的游戏引擎已经发展成为一套由多个子系统组成的复杂系统,从建模和动画到光影、粒子特效,从物理系统和碰撞检测到文件管理、网络特性,以及专业的编辑工具和插件,几乎涵盖了开发过程中的所有重要环节。下面简单介绍一下发动机的一些关键部件。

首先是光影效果,即场景中的光源对其中的人和物的影响方式。游戏的灯光效果完全由引擎控制,折射、反射等基本光学原理,以及动态光源、彩色光源等高级效果都是由引擎不同的编程技术实现的。

其次,动画。目前游戏中使用的动画系统可以分为两种:一种是骨骼动画系统,一种是模型动画系统。前者是利用内置骨骼来驱动物体移动,比较常见,后者是在模型的基础上直接变形。引擎将这两个动画系统提前嵌入到游戏中,方便动画师为角色设计丰富的动作造型。

引擎的另一个重要作用是提供一个物理系统,可以使物体的运动遵循一个固定的规律。比如一个角色跳跃的时候,系统中设定的重力值会决定他能跳多高,下落的速度。子弹的飞行轨迹和车辆的颠簸方式也是由物理系统决定的。

碰撞检测是物理系统的核心部分,可以检测游戏中物体的物理边缘。当两个3D物体发生碰撞时,这种技术可以防止它们相互交叉,这就保证了当你与一面墙发生碰撞时,你不会越过墙或撞倒它,因为碰撞检测会根据你与墙之间的特征来确定两者之间的位置和相互作用。

渲染是引擎最重要的功能之一。3D模型做出来后,美国工会根据不同的脸型给模型材质贴图,相当于把骨头盖住了。最后通过渲染引擎实时计算出模型、动画、光影、特效等所有效果并显示在屏幕上。渲染引擎是引擎所有组件中最复杂的,它的功率直接决定了最终的输出质量。

引擎的另一个重要职责是负责播放器和计算机之间的通信,并处理来自键盘、鼠标、操纵杆和其他外围设备的信号。如果游戏支持网络功能,网络代码也将集成到引擎中,以管理客户端和服务器之间的通信。

通过这些枯燥的介绍,我们至少可以学到一点:引擎相当于游戏的框架。框架打下后,关卡设计师、建模师、动画师只需要填写内容即可。所以在3D游戏的开发中,引擎的制作往往会占用大量的时间。马克思·佩恩的MAX-FX引擎从最终现实的最初原型到最终产品* * *用了四年多,LithTech引擎* * *的开发用了五年时间,耗资七百万美元。Monolith(lith tech发动机的开发商)的老板詹森·霍尔甚至后悔地说,“如果我们意识到制造自己的发动机要花这么多钱,我们绝不会做这种傻事。没人能预测五年后市场会是什么样。”

正是出于节约成本、缩短周期、降低风险的考虑,越来越多的开发者倾向于使用第三方现成的引擎来制作自己的游戏,一个庞大的引擎授权市场已经形成。

对了,一楼那家已经够恶心了。很明显是转贴的,据说“最后一部分是我自己的看法”。强烈鄙视!