解决方案

初步了解游戏引擎

seo靠我 2023-09-24 09:41:48

初步了解游戏引擎

什么是游戏引擎普通游戏引擎为开发人员提供的基础内容物理系统粒子流体软体物理 输入系统渲染系统碰撞检测人工智能游戏AI的架构模型 常见的游戏引擎1. **Unreal Engine**2SEO靠我. **Unity**3 **GameMaker**4. **Godot**5. **AppGameKit**6. **CryEngine**7. **Amazon Lumberyard**8. **SEO靠我RPG Maker**9 **LibGDX**10. **Urho3D** 国产游戏引擎Messiah引擎(弥赛亚引擎)水银引擎 跋语

什么是游戏引擎

游戏引擎是一个软件开发环境,是为人们开发电子游戏而设SEO靠我计的。开发人员使用游戏引擎为控制台、移动设备和个人计算机构建游戏。游戏引擎通常提供的核心功能包括用于二维或三维图形的渲染引擎(“渲染器”)、物理引擎或碰撞检测(和碰撞响应)、声音、脚本、动画、人工智能SEO靠我、网络、流、内存管理、线程、本地化支持、场景图,可能还包括对电影的视频支持。实现者通常通过重用/改编同一个游戏引擎来产生不同的游戏,从而节省游戏开发过程的成本,或者帮助将游戏移植到多个平台。——维基百SEO靠我

A game engine is a software-development environment designed for people to build video games. DevelSEO靠我opers use game engines to construct games for consoles, mobile devices, and personal computers. The SEO靠我core functionality typically provided by a game engine includes a rendering engine (“renderer”) for SEO靠我2D or 3D graphics, a physics engine or collision detection (and collision response), sound, scriptinSEO靠我g, animation, artificial intelligence, networking, streaming, memory management, threading, localizaSEO靠我tion support, scene graph, and may include video support for cinematics. Implementers often economizSEO靠我e on the process of game development by reusing/adapting, in large part, the same game engine to proSEO靠我duce different games[1] or to aid in porting games to multiple platforms.

———— From Wikipedia

普通游戏引擎为开SEO靠我发人员提供的基础内容

physics (物理系统)input (输入系统)rendering (渲染系统)scripting (脚本)collision detection (碰撞检测)artificial inSEO靠我telligence(人工智能)and more without the need to program them (更简洁的操作)

物理系统

物理引擎使用对象属性(动量、扭矩或者弹性)来模拟刚体行为,这不SEO靠我仅可以得到更加真实的结果,对于开发人员来说也比编写行为脚本要更加容易掌握。好的物理引擎允许有复杂的机械装置,像球形关节、轮子、气缸或者铰链。有些也支持非刚性体的物理属性,比如流体。

PhysX

PhysXSEO靠我物理引擎是一套由AGEIA公司开发的物理运算引擎,物理运算引擎的作用,简而言之,就是令虚拟世界中的物体运动符合真实世界的物理定律,以使游戏更加富有真实感。

PhysX可以由CPU计算,但其程序本身在设计SEO靠我上还可以调用独立的浮点处理器(例如GPU和PPU)来计算,也正因为如此,它可以轻松完成像流体力学模拟那样的大计算量的物理模拟计算。

AGEIA曾为《虚幻竞技场3》开发几张加入PhysX引擎的MOD地图,SEO靠我物理效果非常出色。同时AGEIA也自己开发一个免费的名为《好战者》的物理游戏。此后的一些PhysX游戏,也大都基于虚幻3引擎。例如《镜之边缘》、《蝙蝠侠:阿卡姆疯人院》等等。

2008年NVIDIA宣布SEO靠我正式收购Ageia及该公司的PhysX物理软硬件组件。当NVIDIA发布Forceware 177.79驱动后,意味着GeForce 8/9和GT200系列的GPU都支持PhysX引擎。这是因为NVISEO靠我DIA将PhysX引擎集成到CUDA架构的物理运算中。这样,显卡就能自动进行物理加速运算。当然,PhysX在游戏上的运用仅仅是物理引擎众多运用的一方面,在整个CUDA通用运算领域上,都会有物理引擎的身SEO靠我影,比如计算天体间在相互引力的作用下,各自的运动轨迹等。

PhysX在在游戏中有粒子、流体、软体、关节和布料五大应用。

粒子

所谓的粒子运动,主要是指大规模的物理运动,比如此前提到过的用手雷将油桶引爆后所形SEO靠我成的碎石头、冲击波造成的尘土飞扬等效果,这些效果如果都让传统的CPU来进行运算的话,无疑是相当困难的。

流体

流体运动更多的则是展现水从水管内喷出,水冲击到物体后,物体的表现,比如木箱被冲翻。而那些被冲翻SEO靠我的木箱翻倒的方向每次都各不相同,又比如在一个NⅥDIA Logo形状的玻璃容器中,用鼠标来控制玻璃容器的位置,让容器里的液体流动,这种流动的效果和现实中的效果已经相当接近了。

软体

在NⅥDIA展示的演示SEO靠我画面中,还有一个则是“食人花”的场景。讲述的是一朵巨大的食人花(也可以说是花形状的怪兽)被人抓住以后,玩家用激光去攻击食人花,然后这朵“花”就会作出反应。这种软软的身躯扭动起来非常像现实生活中看到的鼻SEO靠我涕虫之类的虫在蠕动一样,感觉相当恶心。

物理

至于在关节和布料方面的应用,在文章的开始处已经提到了,美女们在T型台上用夸张的肢势行走,虽然动作夸张,却丝毫没有虚假的成分在里面,这在传统的3D游戏里是很难做SEO靠我到的。而身上的裙子也跟着关节的移动而跟着摆动。

总而言之,可以看出,所谓物理效果,都是在游戏中模仿现实中真实物理世界的运动方式,在游戏中,大家甚至能感受到箱子、石头、布料以及那些恶心的无脊椎动物的触感是SEO靠我怎样的。游戏之所以能实现如此多的动态效果,都要归功于物理运算。

输入系统

输入系统将支持键盘、鼠标、手柄和游戏垫以及VR设备。因为DirectInput考虑了全部非键盘和鼠标这样的输入设备,所以对诸如游戏SEO靠我控制器、手柄、游戏垫、VR等这样的设备都采用同样的代码进行基本的处理。游戏引擎包含一个输入系统。这个输入系统唯一的目的是创建输入设备,并在必要的时候初始化和关闭API。每种设备都派生于基类。这同样使用SEO靠我于输入系统类。每个设备都包含确定按钮是否处于某种特定状态(向上、向下或被按下等状态)的通用函数。

渲染系统

渲染系统包含了一次渲染大批几何图形的程序代码。例如,为了显示一个角色模型,就要使用缓存在同一时间SEO靠我内将全部数据发送给渲染系统,也就是说,不是每次只发送一个三角形数据。可以使用纹理图像使几何图形发生渐变,从而增添场景的细节层次。角色模型数据、级别数据等之间没有什么差异,对它们采用的是相同的处理方式。SEO靠我要动画显示的模型和其他物体在发送给渲染系统之前都要做动画处理。当谈及级别几何图形时,本书将使用多种不同的技术,这会使数据的渲染率更高。渲染系统只关心发送给自己的数据并将其显示出来,而不管要绘制的是几何SEO靠我图形或是在屏幕上渲染显示文本。渲染系统并不负责哪些内容要渲染,而哪些不需要渲染。

渲染系统负责初始化渲染API、创建和绘制文本、绘制纹理几何图形、实现硬件光照并在完成工作之后整理系统工作。由于纹理的创建SEO靠我和销毁取决于正在使用的渲染API,因此渲染系统将不得不处理这些事情。直接在渲染系统中处理纹理将会使系统显得尽可能独立。将渲染API移植到OpenGL或另一个渲染API,都不会影响到渲染系统之外的代码。SEO靠我这是编写API无关的代码的关键之处。

碰撞检测

固体物体本质上是固态的,它通常不会做出不可能的事情,例如穿透对方。程序员需花许多精力,才能确保不会互相穿透。这是任何游戏引擎的核心元件之一,碰撞检测系统(cSEO靠我ollision detection system)。

碰撞检测在3D游戏中至关重要,好的碰撞检测要求人物在场景中可以平滑移动,遇到一定高度内的台阶可以自动上去,而过高的台阶则把人挡住,遇到斜率较小的斜SEO靠我坡可以上去,斜率过大则把人挡住,在各种前进方向被挡住的情况下都要尽可能地让人物沿合理的方向滑动而不是被迫停下。在满足这些要求的同时还要做到足够精确和稳定,防止人物在特殊情况下穿墙而掉出场景。

早期3D游SEO靠我戏的碰撞检测多数基于格子或者BSP树,基于格子的系统实现简单但精度不够,不属于严格意义的3D碰撞检测。基于BSP树的碰撞检测一度十分流行,算法基本已经成熟定型,但它的固有缺点却使它不太适合现在的游戏。SEO靠我BSP树需要很长的预处理时间不适合加载时计算,BSP划分经常会产生原多边形数三到四倍的多边形,考虑到不用保存法线、颜色、uv等信息也要增加将近一倍的资源容量,在一个大的游戏中将模型资源的容量从200MSEO靠我增加到400M相信是大部分人都不愿接受的。目前对于任意复杂三角形集合(mesh)的碰撞检测多数基于BVTree(bounding volume tree),具体可以是aabb tree,obb treSEO靠我e或者K-dop tree,这也是当今各种物理引擎和碰撞检测引擎流行的做法。

目前成功商业3D游戏普遍采用的碰撞检测是采用BSP树及包装盒方式。简单讲就是采用一个描述用的正方体或者球型体包裹住3D物体对SEO靠我象整体(或者是主要部分),之后根据“描述用”包装盒的距离、位置等信息来计算是否发生碰撞。

人工智能

游戏AI的架构模型 运动层:AI的具体行为,比如移动决策层:决定AI下一时间步该做什么战SEO靠我略层:从集体层面对个体AI进行控制

以下分为单个AI和集群AI

Single AI: 1.Seek 是最常见的AI行为,最简单的实现是给AI添加一个修正力使之向目标移动2.Flee 和Seek相反,通常我们SEO靠我都要设置一个Distance范围判断结束行为。用Vector3.sqrMagnitude向量平方长度,计算会更快3.Arrival 到达目标减速至停止,可设置一个StopDistance,距离大于停止SEO靠我距离时给一个Force移向目标4.Pursuit 追逐会预测Target的未来位置,比如预测t时间内Target不会转向,AI将计算未来位置朝之移动。另外还可以用点乘计算夹角,判断双方是不是面对面5.SEO靠我Evade 逃避。与Pursuit反向6.Wander 随机徘徊。设置一个圆周半径,每帧给Target附加随机位移,比AI只按照预设好的路线移动更加真实7.FollowPath 路径跟随。设置radiSEO靠我us路点半经,让AI在路径间切换更加真实8.CollisionAvoidance 避开障碍。向前射线检测障碍物的包围圈,产生一个排斥力。

集群AI:

集群行为

1.分离:避免局部拥挤2.队列:朝向附近同伴的SEO靠我平均朝向3.聚集:向附近同伴的平均位置移动

AI寻路

1.基于单元的导航图

将地图划分为多边形单元组成的规则网格。易于动态更新,但时间空间消耗都大

2.创建可见点导航图

先手工放置一些路径点,然后若路径点之间可SEO靠我视,就能以边连接。可以设置一些特殊点,适合简单的寻路

3.创建导航网格NavMesh

将可行走区域划分为凸多边形。可以是多种多边形的组合,让网格划分更加合理

采用“视线确定”方法,向前跳到视线最远途经点,对SEO靠我路径进行后处理,得到更平滑的路径

效率高,空间小

AI感知

1.轮询(主动查询信息)

轮询类似编程中的switch-case,是AI周期性地查询所需要的信息,轮询非常常见,容易维护,但有效信息率低,花费性能较SEO靠我

轮询中心(没有必要每个AI都进行一遍查询,而是集中处理需要查询的信息)

2.事件驱动(被动得知信息)

事件是一种高效的消息传递机制,由事件分发者主动通知每个感兴趣的AI,这样就使AI准时获得有效信息

可以SEO靠我做一个中心检测系统(事件管理器),记录每个AI感兴趣的事件,并通知他们,还方便了调试

3.Trigger触发器

触发器其实和事件比较接近,相比之下,触发器是事件的本源,比如监听声音的声音触发器,检测观察物SEO靠我的视觉触发器,等待时间的时间触发器等等

Trigger 常用一个半径计算检测的范围,

Sensor 感知器则定义了枚举类型和变量,保存了事件管理器

视觉感知:圆锥形探测

听觉感知:衰减范围。而感知器也有对应的SEO靠我感知阈值

触觉感知:碰撞器

记忆感知:记忆List+Time留存时间

状态机

有限状态机,也称为FSM(Finite State Machine),其在任意时刻都处于有限状态集合中的某一状态。当其获得一个输入SEO靠我字符时,将从当前状态转换到另一个状态,或者仍然保持在当前状态。任何一个FSM都可以用状态转换图来描述,图中的节点表示FSM中的一个状态,有向加权边表示输入字符时状态的变化。

—— 转自博客园

BehaviSEO靠我orTree行为树

行为树是由行为节点组成的树状结构

对于FSM,每个节点表示一个状态,而对于BT,每个节点表示一个行为。

行为树层次清晰,易于模块化,封装性好,可重用,是一种效果理想的AI编辑器

在BT中,SEO靠我节点是有层次(Hierarchical)的,子节点由其父节点来控制。

每个节点的执行都有一个结果(成功Success,失败Failure或运行Running),该节点的执行结果都由其父节点来管理,从而决SEO靠我定接下来做什么,父节点的类型决定了不同的控制类型。

图为UE4行为树

AI是一个很深的领域还有很多很多可以去研究的方向。

常见的游戏引擎

图片选自——gamedesigning.org

1. Unreal EngSEO靠我ine

Epic Games的虚幻引擎是最受欢迎和广泛使用的游戏引擎之一。

原始版本发布于1998年,而17年后的每年,它仍继续用于一些最大的游戏中。

在2015年GDC 2015举行期间,Epic GamSEO靠我e宣布开放UE4源码,所有开发者均可免费获得UE4所有的工具、功能、完整项目、更新以及bug修复。只有在每季度盈利超过3000美元后才需要支付5%的版权费用。

使用虚幻引擎制作的著名作品包括 《战争机器》SEO靠我系列《质量效应》系列《生化奇兵》系列《蝙蝠侠:阿卡姆》 系列。

虚幻引擎的优势在于它具有足够的修改能力,可以将游戏变成非常独特的体验。

2. Unity

其中之一是Unity,这是一种多平台游戏引擎,可让SEO靠我您轻松创建交互式3D内容。

许多独立开发人员使用Unity的原因在于其出色的功能,高质量的内容以及几乎可以用于任何类型的游戏的能力。

最近Unity的著名作品包括逃离塔克夫炉石传说永恒之柱KerbaSEO靠我l Space Program

关于Unity 5的最好的事情之一是个人版,每个人都可以免费下载。

它包括具有所有功能的引擎,并且可以(大部分)用于在每个平台上制作游戏。

专业版具有许多出色的工具,需要您SEO靠我每月支付费用。

3 GameMaker

与大多数其他游戏引擎不同,GameMaker:Studio已被广泛使用,因为它不需要使用编程知识。

相反,用户可以“点击”来创建游戏,而不是使用本地语言编写游戏。

GamSEO靠我eMaker制作的一些最佳游戏包括Spelunky,迈阿密热线电话,Super Crate Box和即将推出的Hyper Light Drifter。

GameMaker之所以受欢迎,是因为您无需先学习SEO靠我编程语言就可以制作游戏,并且那些有编码经验的人可以使用它来使自己的游戏更好。

GameMaker和其他点击引擎的问题在于,与其他引擎相比,开发人员的局限性更大。

虽然有免费版本,但要充分利用GameMakSEO靠我er,则需要购买Professional或Master Collection版本。

4. Godot

Godot引擎是非常适合制作2D和3D游戏。该引擎“提供了大量的通用工具,因此您可以专注于制作游戏而无需SEO靠我重新发明轮子。”

它是免费使用的,并且通过MIT许可证是开源的。没有版税,没有订阅费,没有隐藏的字符串-您通过Godot引擎开发的任何东西都是您的。

Godot的社区经常修复错误并开发新功能,这始终是一个SEO靠我好兆头。活跃的社区意味着甚至可以回答与您最特定的Godot相关问题。

5. AppGameKit

“ AppGameKit是一个易于学习的游戏开发引擎,非常适合初学者,业余爱好者和独立开发者。”

AppGamSEO靠我eKit专注于快速编码和构建应用程序,并能够跨平台共享它们。这种快速的迭代和跨平台共享是针对移动游戏开发而设计的,但是可以处理大多数平台:iPhones and iPadsLinuxHTML5 BroSEO靠我wsersRaspberry Pi(树莓派)MacOSWindowsAndroid

6. CryEngine

CryEngine平台是免费使用。

您可以获得完整的引擎源代码和所有引擎功能,而不必支付任何许可费SEO靠我,特许权使用费或其他隐藏费用。

CryEngine是视觉上令人惊叹的引擎。图形精美,人物栩栩如生。

您可以使用CryEngine来开发几种不同的平台:

Xbox OnePlayStation 4WindowSEO靠我s PCOculus Rift(头戴式显示器)

没错,如果您想进入虚拟现实游戏创作世界,CryEngine可以满足您的要求。

除了引擎本身,CryEngine还提供了大量免费的学习资源。教程,论坛和文档为SEO靠我您提供了入门所需的工具。由于引擎的强大功能,因此存在一些学习曲线。

7. Amazon Lumberyard

Amazon Lumberyard是Amazon 构建的引擎(顾名思义)。根据该网站,LumbeSEO靠我ryard是“ 免费的、强大、完全可定制的游戏引擎“没有使用费或席位费,与Twitch和AWS的无缝集成,还有更多的即将出现。”

AWS代表Amazon Web Services,这是由Amazon构建SEO靠我和维护的安全云平台。通过Lumberyard进行集成意味着可以轻松地通过在线游戏构建游戏。唯一的问题是通过亚马逊的AWS服务要花钱。不过,您可以选择自己的计划(或根本不包括在线游戏)。

如果您喜欢多人游SEO靠我戏,Lumberyard拥有适合您的工具来实现这一目标。

Lumberyard有一个“入门指南”视频系列,它将使您快速入门并逐步使用引擎构建第一个游戏原型。

8. RPG Maker

几乎每个人都可以使用它来SEO靠我创建游戏。

该软件旨在让您从头到尾构建完整的游戏(即使您对游戏编程一无所知)。

“ RPG Maker系列使您可以通过易于使用的界面自定义游戏的各个方面,使其既适合初学者,又具有足够的专家力量。”

有许多RSEO靠我PG Maker产品。RPG Maker MV的价格为79.99美元。有一个针对Windows用户的免费试用选项。

经验丰富的用户可以利用其Javascript知识来“根据自己的喜好将游戏改变,从BatSEO靠我tles到Menu UI。不具备Javascript知识的用户将仅限于该引擎提供的功能,但仍然有很多东西可以制作游戏。

9 LibGDX

“ Libgdx是一个Java游戏开发框架,提供了可在所有受支持平台SEO靠我上使用的统一API。”

API是应用程序编程接口的缩写—拥有一个API使得libGDX 成为跨平台开发的绝佳选择。所针对的平台无关紧要:Windows,iOS,Linux,Mac OS等都使用相同的APSEO靠我I。

LibGDX允许您在桌面上本地运行和调试游戏。这样可以轻松生成游戏的快速迭代并快速测试更改(因为您无需启动iOS / Android等即可测试这些更改)。

该libGDX论坛是活的,以及与覆盖发展与SEO靠我libGDX主题和教程入门。还有一个“ 源代码指南 ”,其中包含可利用的演示和示例。

10. Urho3D

“ Urho3D是一个免费的轻量级,跨平台的2D和3D游戏引擎,以C ++实现并在MIT许可下发布SEO靠我。”

Urho3D Wiki(Urho3D百科) 包含了你需要开发的资料与原理,包括一切如何指南上设置:Windows with Visual StudioWindows with MinGWAndroSEO靠我idLinux

Urho3D 当前的版本为1.7,它是完全免费下载的。

它提供了完整的功能列表,包括首次实现这些功能的版本。

Urho3D还解决了它的局限性,包括您需要具备“ C ++的性能关键代码以及根据SEO靠我您的需要来改进现有子系统(如网络,物理和动画)的技能”的功能,简要的局限性列表可在其全部内容中找到。

国产游戏引擎

Messiah引擎(弥赛亚引擎)

Messiah引擎是网易公司于2013年着手开始研发,在SEO靠我吸取了“寒霜引擎”、和顽皮狗工作室专用的“顽皮狗”引擎等优质产品的经验,最终于2016年中旬正式投入到游戏研发中。

2014 2015 2016 2017 2018 2019 初研发 进行中 《天下3》SEO靠我发行 《荒野行动》登录switch 进度 Messiah引擎开发进程

水银引擎

水银引擎的代表作《天涯明月刀》。

天涯明月刀电影级游戏画面感刷新了国产武侠3D网游图形、技术和画面表现能力的上限。无论是极具写SEO靠我实的场景效果还是人物一招一式,都成为玩家对这部电影网游期待的理由。到场视觉计算技术开发商NVIDIA(英伟达)中国区技术总监林楠表示,“从技术特效、场景设计到性能优化上,天涯明月刀堪称优秀,是近年来国SEO靠我内少见的游戏大成之作。

笔者认为虽然游戏性才是游戏的灵魂所在,但是游戏的画面在很大程度上决定了玩家对游戏的第一印象,这也是吸引玩家的最重要的元素之一。

《天涯明月刀》在一开始就选择了NVIDIA作为合作伙SEO靠我伴。通过合作,《天涯明月刀》能够在游戏图形技术的设计、应用和后期的调试、测试上获得世界顶尖图形业界厂商的全面支持。

《天涯明月刀》在图形引擎上的优势在于无论是天气系统光照系统还是任务系统

,游戏都能做到SEO靠我变化、动态和自然。不要小看这种动态设计对游戏的影响,相比传统的固定天气场景、固定光照以及固定人物表情等,这是首次在国内网游中做出如此重要的飞跃性进步,也是完全开创性的进步。

《天涯明月刀》强大的天气系统SEO靠我

,就是基于RTG系统本身强大的全程序算法而来。从理论上来说,游戏中的每个场景都可以有丰富的日夜变化和天气变幻,在不同时空情境下表现出各自的特色。比如游戏情结中的艳阳高照、大雨倾盆、风沙肆虐这些表现力强SEO靠我的天气也被安排在适宜的剧情桥段中用于展现、渲染剧情,于此同时,游戏中对天空的雾气到潮湿的材质,从茂盛的森林到干枯的大漠,每一个细节都精心的雕琢,带来了相当优秀的图形表现。

《天涯明月刀》在游戏光照

效果方SEO靠我面也颇有建树。传统的网游基本上都采用了单光源场景,这样的好处是设计很容易,但效果上显得呆板、虚假。《天涯明月刀》创新地将多光源系统引入了游戏中,让游戏在不同的光源表现在场景中显得更为鲜明、更为逼真。

SEO靠我天涯明月刀》中各种不同的地形、建筑、道具、服装以及角色的材质上,因为进行了与光线互动的大量计算,其物理光照、材质反射方面正确的粗糙度反馈在游戏非常引人注目。

《天涯明月刀》采用了很多先进的技术来呈现游戏SEO靠我画面,但由于极为优秀的优化,硬件配置要求并不高,强大的引擎优化性能,使得游戏对于不同级别的显卡都能有良好的对应支持。在NVIDIA测试中,甚至是入门级显卡也可以流畅运行游戏,而当显卡级别不断提升时,游SEO靠我戏图形表现也会不断增强。——摘自兔玩网

跋语

总而言之,开发一款游戏引擎是件工程量巨大且非常耗时耗力的事。所涉及到的知识层度和广度也是非常大的,比如《线性代数》的向量和矩阵运算,尤其是点积,叉积,空间变换SEO靠我,《计算机图形学》尤其是渲染管线和着色器以及物理学知识、GPU渲染知识和几何算法等等等等。

在经过无数的技术堆叠之后编成的引擎,还要通过尽可能多的开发游戏的测试、bug的修复、部件的完善、新功能的推出等SEO靠我等的千锤百炼才能成为一个合格的游戏引擎。
“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2