尽管游戏物理学可视为一类新生事物,但近30年来,其实现方式发生了显著的变化最初,各类视效仅对自身内容进行编程设计,对应物理学内容仅局限于某一游戏作品例如,弓箭沿某一轨迹运行,开发人员针对该轨迹方程予以编程实现除此之外,该方程别无他用,下面我们就来聊聊关于常用引擎?接下来我们就一起去了解一下吧!

常用引擎(3.物理引擎)

常用引擎

尽管游戏物理学可视为一类新生事物,但近30年来,其实现方式发生了显著的变化。最初,各类视效仅对自身内容进行编程设计,对应物理学内容仅局限于某一游戏作品。例如,弓箭沿某一轨迹运行,开发人员针对该轨迹方程予以编程实现。除此之外,该方程别无他用。

针对简单的模拟操作(代码量较少且物理应用范围有限),该过程工作良好。稍后将会看到,基本的粒子系统将包含数百行代码,随着复杂度的不断增加,直接获取令人可信的物理效果将变得越发困难。例如,在首款Half-Life游戏中,当玩家移动箱体时,错误的物理实现代码使得箱体对象以一种奇怪的方式运动。物理效果的实现难度以及多款游戏中的同一效果迫使开发人员寻找通用的解决方案,进而实现代码的复用。

复用技术体现了某种通用特征,例如,弹道模拟器仅处理弓箭的运动轨迹,并于随后对其进行硬编码。若同一段代码需要处理子弹的运动行为,则软件系统须对特定的弹道轨迹进行抽象,进而生成具有某种共性的物理方案——这体现了物理引擎的含义,即基于物理学的公共代码段,而非针对各游戏方案进行程序设计。

这里的问题是。若存在特定代码对弓箭对象进行模拟,则该操作可胜任模拟过程中的全部任务;若采用通过引擎模拟任意弹道轨迹,针对当前弓箭对象,则需向引擎提供该对象的各类特征,因而需要设定弓箭、子弹以及箱体的属性。

这一重要差别须引起读者的关注。通常情况下,物理引擎可视为一类大型计算器,即执行数学运算并对物理行为进行模拟,且并不了解模拟的具象内容。对此,除了引擎自身之外,读者还需要提供表达游戏关卡的特定游戏数据。

尽管各类游戏数据将贯穿于本书中,但本书重点并非讨论数据的获取方式。在商业级引擎中,关卡编辑器使得设计人员可方便地设置箱体、旗帜、布娃娃对象以及飞行器对象,包括重量、在空气中的行进方式以及弹射行为等内容。

3.1 物理引擎的优点

物理引擎的优点主要体现在以下两方面:首先,物理引擎可缩短开发周期。若计划在多款游戏中加入物理效果,则可将其一次性地植入物理引擎中,并于随后简单地将其导入至各新增项目中。另外,所讨论的轻量级、多功能引擎其程序实现亦相对简单,数千行代码即可实现游戏所需的物理效果。

其次则是质量问题。随着时间的推移,游戏中将包含更多的物理效果,读者须在必要时对其予以实现,包括斗篷或旗帜的布料模拟器、漂流盒体的水流模拟器以及独立的粒子引擎。

,