游戏开发心得——书籍篇——《游戏引擎框架》-导论

游戏开发心得——书籍篇——《游戏引擎框架》-导论
FOR THE SIGMA
FOR THE GTINDER
FOR THE ROBOMASTER

简介:

学习《游戏引擎框架》并总结出属于自己的知识,诸君共勉之!

内容:

一、典型游戏团队的架构

这一内容我已结合国内的典型游戏公司的职务做了较为详细的介绍:
游戏开发心得——资料篇——游戏行业的详细职位介绍与定义分析

二、游戏是什么?

“游戏”是什么,想必大家多半会有自己非常直观的理解。棋牌类,军事战争类、甚至是学术上的“博弈论”,它是指在一个明确的游戏规则框架下,多个或单个代理人选择战略或战术,以求自身利益的最大化。可以看做一种互动体验,为玩家提供一连串渐进式挑战,最终能通过学习而精通该游戏。

大多数的互动电子游戏都是时间性模拟,即游戏世界是动态的,将会随着游戏事件与故事的展开,世界状态会随着时间改变。游戏会回应玩家的输入,而大部分情况下,这些输入是游戏本身不可预知的。

时限是所有实时模拟的核心概念。即一个屏幕上面每秒至少刷新24次一达到运动的错感。在这里又分为软实时系统与硬实时系统,其最大的差别是若帧数不够,人类操作者会不会在现实中因此而死亡,前者是不会,例如绝大多数的游戏,后者则会,例如直升机的航空电子系统等。

在模拟虚拟世界许多是否都是用到数学模型,可分为解析式与数值式,大多数情况下,不应当期望可以用解析式对整个游戏进行建模。
例如:

一个刚体因为地心引力而以恒定加速度落下,由解析式可得:
y ( t ) = 1 2 g t 2 + v o t + y 0 y(t)=\frac{1}{2} gt^{2}+v_ot+y0 y(t)=21gt2+vot+y0
由数值式可得:
y ( t + Δ t ) = F ( y ( t ) , y 1 ( t ) , y 2 ( t ) , . . . ) y(t+\Delta t)=F(y(t),y_1(t),y_2(t),...) y(t+Δt)=F(y(t),y1(t),y2(t),...)
为了实现上面数值式的模拟,通常要不断重复计算,以巨鼎每个离散时步的系统状态,游戏也是这样运行的,一个主“游戏循环”不断执行,在循环的每次迭代中,多个游戏系统,例如人工智能、游戏逻辑、物理模拟等,就会有机会计算或更新其下一离散时步的状态。这些结果最后可渲染成图像显示、发出声效、或者到其他识别,例如游戏手柄的力反馈。

三、游戏引擎是什么?

利用获得的游戏授权,只需要制作新的美术、关卡布局、武器、角色、载具、游戏规则等,对引擎软件做出很少的修改,就可以吧游戏打造成新的产品。通常游戏与其引擎之间的分界线较为模糊,一些引擎有相当清晰的划分,一些则没有,而大部分游戏引擎是针对特定游戏及特定硬件平台所精心制作及微调的。
随着硬件速度的提高及专业显卡的应用,再加上更高效的渲染算法及数据结构,不同游戏类型的图形引擎差异已经缩小了,但是即便这样,也经常用微调引擎制作更精美的游戏。

三、不同类型游戏中的引擎差异?

这里我会介绍主要的4种游戏类型,而RPG类因为因素过多则不再介绍,其实游戏类型并没特定的,例如《半人马座》这款游戏就是策略游戏+第一人称兼第三人称游戏。
1、第一人称射击
FPS游戏是开发技术难度极高的游戏类型之一。能与其相比的只有第三人称射击/动作/平台游戏,以及大型多人在线游戏。
技术重点:

  • 高效地渲染大型三维虚拟世界
  • 快速反应的摄像机控制及瞄准机制
  • 玩家的虚拟手臂的武器的逼真动画
  • 各式各样的手持武器
  • 宽容的玩家角色运动及碰撞模型
  • 非人类角色有逼真的动画及智能

FPS使用的渲染技术几乎总是经过高度优化,并且按特定场景类型仔细调整过的,例如室内“地下城爬行”游戏通常会利用二元空间分割数。为了让玩家亲临其景,除了优化的高质量的图像技术,还需要角色动画、音效音乐、刚体物理、游戏内置电影及大量其他技术必须是最前沿的。这类游戏的技术需求也是业界最严格、最全面的。

2、平台游戏及第三人称游戏
这一般是指人物角色的第三人称游戏在这类游戏中,主要的游戏机制是在平台之间跳跃的。在技术上通常与第三人称射击/动作/冒险游戏类型一并考虑,例子有《战争机器》系列与《神秘海域》系列,与第一人称不同的是,第三人称游戏比较看重主角的能力及运动模式,同时之类游戏的主角化身(指玩家控制的角色)需要有高度逼真的全身动画。在平台游戏主角可能是比较卡通的形象,很少用真实细腻的,而第三人称射击通常使用非常真实的人形玩家角色,这两类都需要非常丰富的行为与动画。
技术重点:

  • 移动平台、梯子、等其他物体的运动模式
  • 用来解密的环境元素
  • 跟踪摄像机会一直注视玩家角色,会随着玩家鼠标/摇杆的变化而旋转摄像机
  • 复杂的摄像机碰撞系统,以保证视点不会穿过背景几何物体或动态的前景物体

3、格斗类游戏
这类游戏其特征为一个或两个玩家控制角色在一个场景里面进行互相对打。典型的有《铁拳》系列、《七龙珠》系列、《灵魂力量》等
技术重点:

  • 丰富的格斗动画
  • 准确的攻击判定
  • 能侦查复杂的按钮及摇杆组合的玩家输入系统
  • 背景布置(动态还是静态的)
  • 高清建模图像
  • 逼真的人物动画

4、实时策略类游戏与回合策略类游戏
前者是是属于游戏中发生的时间会与外部显示时间按照一定设置好的比列同步进行,后者则采用回合制,将游戏的操作,产生的效果直接一个时间段一个时间段的输出。前者的代表作有《红色警戒》、《帝国时代》等,后者则有《全面战争》系列、《文明》系列。一般来说这些策略类游戏是尽可能的避免玩家改变视角以观看不同距离的事物,但是现在可以接收在一定程度上的视角旋转与缩放了。
技术重点:

  • 每个作战单位使用合适解析度的模型,使游戏能支持大量单元
  • 除了部署兵力以外,地图会有一些已有的建筑物,且兵种可以与其交互
  • 用户交互方式通常为单击及以范围选取单元,再加上包含一些指令、装备、作战单元种类、建筑种类、技能等操作或是菜单及工具栏
四、游戏引擎概观

这里将重点介绍虚幻引擎与OGRE引擎,当然这里也先给出一个《雷神之锤》与《雷神之锤2》的源代码,只是由id-Software公司研发的,这些代码库很好的例子,能够说明工业级游戏引擎时怎么制作的。下载地址https://github.com/id-Software

1、虚幻引擎
由Epic Games公司研发的游戏引擎,可以用它来做很多mods,其中包括一些大学的项目与商业游戏。著名的《战争机器》就是其研发的。该引擎以其全面的功能及内聚易用的工具见称,当其虚幻引擎并非完美,大部分开发者是会以不同方式优化它在具体硬件平台上的运行情况。虚幻引擎是极其强大的原型制作工具和商业游戏平台,可以用来制作几乎任何一款第一或第三人称的3D游戏(也可以用来制作其他类型的游戏)

因为博主也是在学习UE4的,可以看这个UE4学习心得——安装篇——UE4介绍与安装流程

2、OGRE引擎
一个架构优良、又易学易用的三维渲染引擎。其拥有含高阶照明及阴影的全功能三维渲染系统、良好的骨骼角色动画系统、用作平视显示器和图形用户界面的二维覆盖层系统,以及用全做屏幕效果的后期处理系统。

3、其他
例如博主之前用过的COCOS游戏引擎,还有CE等。

四、运行时引擎架构

在这里插入图片描述如上图所示,游戏引擎确实庞大,且以软件构造,上层依赖下层,而下层并不依赖上层,因为这里需要考虑到一个系统间复杂性的耦合,防止软件变得难以测试,即避免循环依赖。途中可以把其分为7个层次,底层由硬件层A1、A2、A3负责,B、C、D、E则为开发资源层即开发一款游戏需要的软件资源、软件层由F1、F2、F3、F4构成,在这里面都是利用开发资源层对游戏的各个部分进行开发与设计,N为游戏子系统层,负责游戏性的强弱,功能越多,所消耗的时间就越长。

从下往上的分析:
硬件层:代表用来执行游戏的计算机系统或游戏主机
设备驱动程序:负责管理硬件资源,隔离操作系统及上层引擎
操作系统:协调计算机上游戏运行的大规模软件,用于集合所有游戏需要的配置软件
第三方软件开发包和中间件:C++的STL、STLport、Boost、Loki。图形的OpenGL、DirectX、libgcm等。碰撞检测与刚体动力学的Havok、PhysX。角色动画的Granny与Havok Animation。
平台独立层:隔离引擎和底层平台
核心系统:有用的实用软件(utility)
资源管理:提供接口访问游戏资产
渲染引擎:最大最复杂的组件,由低阶渲染器提供原始的渲染功能
剖析和调试工具:用以剖析游戏的性能,以便优化
碰撞和物理:碰撞检测,物理系统
动画:含有机或半有机角色的游戏需要,骨骼动画是最盛行的动画方式
人体学接口设备:处理玩家输入
音频:完整的优秀游戏需要出色的音频引擎
在线多人/网络:供多位玩家游玩于同一虚拟世界
游戏性基础系统:提供一组功能方便实现游戏专有逻辑
个别游戏专用子系统:实现游戏本身的特性

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值