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

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)=21​gt2+vo​t+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. 游戏开发心得——书籍篇——《游戏引擎框架》-专业工具

    游戏开发心得--书籍篇--<游戏引擎框架>-专业工具 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 学习<游戏引擎框架&g ...

  2. 【通知】▁▂▃ Himi 最新著作《iOS游戏编程之从零开始—Cocos2d-x与cocos2d引擎游戏开发》★书籍源码+第4/5/6样章★-免费下载★ ▃▂▁

    2013年新年,Himi的第二本著作:<iOS游戏编程之从零开始-Cocos2d-x与cocos2d引擎游戏开发>一书正式发售: (大家可以到新华书店.淘宝.拍拍.当当.亚马逊等进行购买) ...

  3. 游戏开发心得——资料篇——游戏行业的详细职位介绍与定义分析

    游戏开发心得--资料篇--游戏行业的详细职位介绍与分析(不定期更新) FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 本篇主要介绍一下博主所了 ...

  4. 一个菜鸟程序员的游戏开发心得

    对于一个只在大学期间学习了JavaScript,实习期间学习了点HTML.CSS的菜鸟,做游戏对我而言是一件想都不敢想的事情,后有幸被公司安排参与一款HTML5游戏的开发,才使我真正第一次与游戏来了次 ...

  5. M8SDK教程-游戏开发心得(三):DDraw进阶教程-贴图,Alpha和Sprite动画,RPG游戏雏形

    M8SDK教程-游戏开发心得(三):DDraw进阶教程-贴图,Alpha和Sprite动画,RPG游戏雏形 引用: M8 SDK教程- 游戏开发心得(一): 游戏程序框架 http://bbs.mei ...

  6. Cocos2D手机游戏开发之优化篇

    Cocos2D手机游戏开发之优化篇 在这个手机游戏盛行已久的年代,一款产品想要博得更多用户的喜爱就要在细节上做得更加到位.而游戏的优化在这里面起到了非常关键的作用.试想下,一款画面和玩法都深受用户喜欢 ...

  7. 游戏开发总结-java篇

    游戏开发总结-java篇 前言 网络通信 数据存储 逻辑开发 逻辑开发一般遇到的问题有: Java游戏服务器方面的开发要掌握的技术: java服务器目前主流框架技术 前言 Java语言,由于学习成本低 ...

  8. 游戏开发面试答案篇(一)-- C++篇​

    游戏开发程序岗面试题答案版C++篇,后续继续更新游戏逻辑篇.unity篇.图形学篇,并整理成文档,可在公号[游戏君五尘]获取 原文链接 游戏开发面试答案篇(一)-- C++篇​ 目录 一.基础语法 二 ...

  9. 【Visual C++】游戏开发笔记二十 游戏基础物理建模(二) 重力系统的模拟

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7496200 作者:毛星云    邮箱: h ...

最新文章

  1. Note:类(Class)
  2. 数据源 No operations allowed after connection closed
  3. USACO 3.1 Agri-Net 最短网络 (最小生成树)(克鲁斯卡尔算法)
  4. 公式 有效值_纯电阻电路电功率公式
  5. 快手app sig3算法分析
  6. radius java_Java处理Radius access-challenge
  7. hg8120c 维修使能工具_ONT 用户手册(中国移动) V300R016C10.doc
  8. 07.JavaScript弹窗——alert、prompt、confirm
  9. 学生成绩预测模型_学生成绩分析预测
  10. C++ | (struct)结构体变量作为函数参数调用的方法小结
  11. “麻将换皮”的《刀塔自走棋》会是下一个“吃鸡”吗?
  12. 电商运营数据分析常用分析指标--概述及流量指标
  13. PS之立体台球制作步骤
  14. 2020年chx的计算机保研之路系列(1)——北师大人工智能学院+北航计算机学院(均获得优营)
  15. python躲方块_pygame实现的《躲小球》
  16. Telegram APIs中文介绍
  17. 贴片电阻有哪几类封装尺寸?
  18. zzzfun网站连接不上服务器,ZzzFun
  19. L2-039 清点代码库
  20. 基于javaweb+jsp的在线点餐系统(java+SSM+jsp+mysql+maven)

热门文章

  1. 计算机桌面文件保存位置是哪里,电脑微信接收文件存放位置在哪?怎么更改文件存放位置...
  2. FFMPEG直播推流
  3. Firefox流失近5000万用户,世界第三大浏览器正在消亡
  4. 论学习和工作的最大区别
  5. 神级:程序员面试、算法研究、编程艺术、红黑树、机器学习5大经典原创系列集锦与总结
  6. 纬湃科技助力打造气候中和汽车;铁姆肯收购美国滚子轴承公司 | 美通企业日报...
  7. android延时摄影功能,学会这几招!让你玩转荣耀30夜景延时摄影
  8. 实变函数—有限覆盖定理的证明
  9. SQL学习之使用order by 依照指定顺序排序或自己定义顺序排序
  10. 日置HIOKI PW3198电能质量分析仪