当前课程知识点:游戏程序设计 >  第一章 《游戏开发导论》 >  1.4 游戏引擎(上) >  1.4 游戏引擎(上)

返回《游戏程序设计》慕课在线视频课程列表

1.4 游戏引擎(上)在线视频

下一节:1.5 游戏引擎(下)

返回《游戏程序设计》慕课在线视频列表

1.4 游戏引擎(上)课程教案、知识点、字幕

上一节主要就是给大家讲的

游戏是怎么开发出来的

其中主要是介绍了

游戏开发团队它的一个角色的划分

以及介绍了关于游戏的一些

常用的开发工具以及它的

整个开发流程

及深层的一些游戏的资产和它的一些管理

接下来我们重点介绍一下

游戏引擎部分

什么是游戏引擎

我们来看一个小视频

刚才那个视频就讲到

为什么会出现游戏引擎这么一个东西

主要就是早期大家在做游戏的时候

都是习惯于从头来

然后后来就逐渐有那么一拨人

他就

不断的把一些游戏里面

它公用的一些部分都提取出来

就形成了

各个游戏引擎的各个模块

因为大家一开始都是从头去开发游戏的

所以整个着它的开发过程是非常慢

而且效率也是非常低的

如果可以通过构建通用的框架来

简化整个开发的过程的话

这整个生产效率就大大的提高

于是便整个游戏引擎就出现了

接下来我们简单的回顾一下

游戏引擎上的一个发展的历程

说到游戏引擎的发展

要追溯到1992年了

当时约翰卡马克他推出了

德军总部3D这款游戏

这款游戏的画面在现在看来

肯定是不值一提的

但是它却是整个3D游戏它的鼻祖

卡马克也因此获得了FPS游戏之父称号

1993年

卡马克成立的ID公司推出了

DOOM中文名叫毁灭战士

ID公司用Id Tech来进行引擎的划代

DOOM引擎是Id Tech第一代引擎

1996年ID公司它发售了

另外一款全新的射击游戏叫Quake

它的中文名叫雷神之锤

相比DOOM

Quake是一种相比Doom的伪3D技术

Quake它这款引擎是

实实在在的一款真3D的引擎

同时Quake这款游戏还确立了

整个FPS游戏

它的一个操控流畅标准

1997年

ID公司用他的ID Tech

第二代引擎去制作了第二代的Quake

这一代的Quake是能够支持硬件加速

到了1998年

伟大的EPIC公司它推出了虚幻引擎

同时也推出了它的同名游戏Unreal

Unreal画面

在当时来讲是非常优秀

到了1999年

勤奋的ID公司

它用它的第三代引擎

制作了Quake 3 这一代

Quake这一代用的引擎

它不再支持软件的渲染

它只支持硬件加速

并且能够支持32位

材质高细节模型

和动态光影等等的一些新的技术标准

到了2002年

EPIC发布了虚幻的第二代引擎

同时也推出了它的同名作品

引擎的代码经过了重写

并且提供了全新的编辑器

它的功能更加全面

到了2004年

ID公司他推出了DOOM 3

用的是ID TECH第四代引擎

这一代的引擎他大规模的使用的动态光影

所以DOOM 3的画面表现是非常出色的

DOOM 3当时也成为了

显卡跑分的一个必备的软件之一

而到了2005年 UNITY面世

它的目的

其实是让想让更多的人去接触游戏开发

不过

UNITY它最早推出的是苹果的平台

当时他发布的时候

其实是并没有引起广泛的关注

大家也没有想到它现在会这么的火

到了2006年虚幻三引擎发布

它是第一款使用

第一款使用虚幻三引擎

制作的游戏就是著名的战争机器

战争机器这款游戏它的画面表现

非常的出色的虚幻三引擎

强大的工具链以及它所见即所得的开发模式

使得整个虚幻三引擎

被很多的游戏开发商广泛的使用

到了2006年

引擎里面的新生代力量也出现了

育碧公司利用Cry Engine做了另外一款画面

堪称顶级的

射击游戏Far Cry孤岛惊魂

Cry Engine也是它的开发者

是德国的Cry TECH

它在游戏引擎的开发上面是属于新生代

但是它第一次出手就表现的非常的厉害

到了2007年Cry TECH

用它的第二代Cry Engine制作了孤岛危机

这款游戏可以说是当时的DX十年代最强的

画质的代表也引发了当年所谓的显卡危机

同年

unity 2.0发布了支持了很多的新的特性

主要是3D画面表现得到了增强

到了2008年unity支持了iPhone

2009年Cry Engine第三代发布

然后同时也制作了

它的孤岛危机的第二代作品

孤岛危机每一次的出现

都会成为当时画面的标杆

而在同年的话

那个unreal

它做了一个策略性的调整

EPIC发布了免费的虚幻三引擎的版本

简称为UDK

到了2010年

Unity发布了3.0的版本

为PC和家用机的平台增强的图形特性

同时也支持的安卓平台

也是2010年

UDK也支持IOS和安卓

不过虚幻三引擎

它是一款面向PC

和家用机的高端的游戏引擎

所以即使它支持了移动平台

但它也只能在一些

性能比较好的手机上面才能跑得动

2012年

著名的新闻公司

VentureBeat这么说道

很少公司能够像UNITY那样

为独立游戏的流动做出如此大的贡献

在当年有130万的游戏开发者

用了UNITY

UNITY希望成为最好的跨平台的游戏引擎

Cry Engine就不一样了

到了2013年Cry Engine

3.6发布

于就走着PC和家用机平台的路线

相对来说

Epic公司他的策略会比较明智一点

因为它当时已经意识到移动端的重要性

所以它在2014年发布了

虚幻四功能很强大

它的画面表现也非常的惊人

最重要的是

它吸取了很多unity引擎的特点

插件化的设计和

全平台的支持

能够让它面对最广泛的游戏开发群体

unity感受的epic的压力

所以到了2015年

unity发布了5.0的版本

它极大地增强了画面的表现

2016年Cry Engine 5发布了

但不得不说cry tech的技术

它是业界一流了

但是它在商业它的引擎的商业化

运作方面是非常的失败的

因为它没有看到移动平台上的一个趋势

到了2007年

著名的吃鸡游戏绝地求生

大逃杀它席卷了全球

一下子就让虚幻四引擎火爆了起来

到了2018年

绝对生存的两款手游出现

就标志着虚幻四手游的时代正式来临

前面讲了很多成功的引擎里面

介绍了都是几款主流的商业化的引擎

但还有很多成功的引擎没有提到

比如像半条命的CS go

用的source引擎

还有R星的RAGE 育碧的雪落 以及EA的寒霜

还有Konami的FOX

就是做合金装备5

在大致的了解一下

引擎的一个发展历程之后

我们接下来主要是给大家介绍一下

游戏引擎上的一个架构

这节的内容主要是

来自于游戏引擎架构这本书

这本书的作者是Jason Gregory

他参与过神秘海域的制作

同时它也是美国末日的首席程序员了

这本书的译者就是我们腾讯著名的

十四级的专家工程师叶劲峰

大家可能

知乎上的比较多的

应该对叶劲峰会比较了解

这本书写的年代稍微有点久

它里面的提到的一些技术

可能会相对老一些

所以我在这边也做了一些更新

首先是

关于游戏引擎的架构

我们可以从九个层级来了解一下

首先是看最底层的硬件驱动和操作系统

硬件指的就是执行游戏的计算机或者

游戏主机比如像windows

基于windows

Linux的PC苹果Mac

还有基于ios安卓平台的设备

微软和索尼的家用游戏主机

还有任天堂的一些掌机等等

驱动指的就是驱动设备程序

它是由操作系统和硬件厂商

提供的最底层的软件组件

驱动的主要作用就是管理硬件资源

同时隔离硬件和上层软件

同时隔离硬件以及它的上层软件

上层软件就不需要再去理解

不同硬件之间

它的一些细节的差异

操作系统我们可以从PC

和游戏主机来分别了解一下

PC平台的操作系统

它的主要作用是

协调一台计算机上多个程序的执行

多个执行中的程序

它能够共享它的硬件资源

而游戏主机则不太一样

比较老的游戏主机

它的操作系统

通常它是一个轻量库的形式存在的

它是Link到游戏的执行档上面去

游戏运行的时候

它会完全拥有整台主机

也就是说在比较老了一些主机上面

其实操作系统和它的整个游戏是一体的

而到了现代主机

现代主机它的操作系统会更接近于

PC平台的操作系统

它能够中断游戏的执行

并且能够去接管某些硬件资源

所以在现代

现代来看

游戏主机和PC它的一个开发

分野正在慢慢的收敛

在操作系统之上的

就是第三方的软件开发包

像图形方面就有

著名的四大三维SDK

包括像微软的Direct X

苹果的Metal

以及著名的跨平台图形open GL

下一代产品Vulkan

在物理方面

世界三大物理引擎

havok、PhysX以及Bullet

还有一些其它的SDK

像VR设备它用的比较多的像OCULUS、GoogleVG和SteamVR

以及还有像LEAP MOTION这样的一些

手势捕捉工具等等

然后是平台独立层

在第三方软件开发包之上

就是平台独立层

为什么要抽象出这样一个平台独立层

因为大多数游戏引擎

它是需要运行在不同的平台上

平台独立层它的主要作用就是隔离

操作系统和上层的引擎功能

它主要通过对操作系统

和第三方软件开发包进行统一的封装

来达到这个目的

在平台独立层之上

就是引擎里面真正跟游戏功能

相关的一些内容

这些跟游戏功能相关的内容里面

也还能再抽象一些基础的框架出来

于是就有了核心系统层这么一个概念

核心系统层里面包含很多重要的子模块的

比如像数学库

比如像数学库

因为游戏本质上就是一个

高度数学密集型的软件

还有自定义的内存管理模块

它能够高速的分配和释放内存

控制内存碎片

它所造成的一个负面的影响

反射机制能够让

程序在运行时得到自身的一个类型信息

能够动态地查找属性和进行函数调用

因为游戏本身就是一个很大型的

可以是一个很大型的软件吧

所以程序难免会出现各种出错

我们需要一个很健全的调试和日志系统

来发现跟踪并且修复这些错误

核心系统层之上是资源管理系统

美术资源是最重要的游戏资产之一

每一个游戏引擎

它都会具备某种形式的资源管理系统

能够提供一个统一的接口

来访问任何类型的游戏资产

游戏引擎在资源管理方面

通常会遵循以下一些规则

首先是唯一性

也就是说在任何时候

它同一个资源在内存里面

应该只有一个副本

还有就是它的生命周期

资源它

通常会只在它需要的时候加载

在它不需要的时候就要卸载掉

以免会占用更多的

系统资源

还有内存用量

我们要确保整个整个游戏的资源

它的使用是在内存中的占用

在一个适当的水平线上面

避免对系统资源进行过多的一个分配

还有就是我们要维护好

资源的一个引用关系

同时

我们还要管理好复合资源的加载

复合资源指的就是由

多个游戏资源组成的一个资源

我们还要提供异步加载的功能

让游戏在加载资源的时候

不阻塞整个游戏逻辑的一个执行

通用子系统就是游戏引擎里面

最庞大的一个部分

也是游戏开发过程中接触最多的一个部分

接下来我们会对

通用子制系统里面的各个重要的模块

进行一些讲解

游戏程序设计课程列表:

第一章 《游戏开发导论》

-1. 1什么是游戏(上)

--1.1 什么是游戏(上)

--选择题

-1.2 什么是游戏(下)

--1.2 什么是游戏(下)

--选择题

-1.3 游戏是如何开发出来的

--1.3 游戏是如何开发出来的

-1.4 游戏引擎(上)

--1.4 游戏引擎(上)

-1.5 游戏引擎(下)

--1.5 游戏引擎(下)

--单选题

-1.6 如何成为一个游戏开发者

--1.6 如何成为一个游戏开发者

--多选题

第二章 《游戏服务器概述 》

-2.1 什么是游戏服务器

--2.1 什么是游戏服务器

--单选题

-2.2 游戏服务器的和分类发展

--2.2 游戏服务器的和分类发展

--单选题

-2.3 核心技术和实现难点

--2.3 核心技术和实现难点

--单选题

-2.4 设计原理与方法论

--2.4 设计原理与方法论

--单选题

第三章 《《三维几何学基础》 》

-3.1 三维坐标系统

--3.1 三维坐标系统

--多选题

-3.2 向量与运算

--3.2 向量与运算

--单选题

-3.3 矩阵与线性变换

--3.3 矩阵与线性变换

--双选题

-3.4 四元数

--3.4 四元数

--多选题

第四章 《游戏循环及实时模拟》

-4.1 游戏循环概述(上)

--4.1 游戏循环概述(上)

--多选题

-4.2 游戏循环概述(下)

--4.2 游戏循环概述(下)

--单选题

-4.3 《无尽之路》的实现

--4.3 《无尽之路》的实现

--单选题

-4.4 支撑游戏的功能

--4.4 支撑游戏的功能

--选择题

-4.5 支撑游戏的机制与系统

--4.5 支撑游戏的机制与系统

--多选题

第五章 《随机数在游戏中的应用》

-5.1 基本介绍

--5.1 基本介绍

--单选题

-5.2 随机数生成器

--5.2 随机数生成器

--单选题

-5.3 随机数分布与应用

--5.3 随机数分布与应用

--单选题

第六章 《游戏性系统》

-6.1 什么是游戏玩法开发

--6.1 什么是游戏玩法开发

--单选题

-6.2 建立愿景 Vision

--6.2 建立愿景 Vision

--单选题

-6.3 划定边界 Scope

--6.3 划定边界 Scope

-6.4 迭代 Iteration

--6.4 迭代 Iteration

--单选题

-6.5 迭代 Iteration+抛光Polish

--6.5 迭代 Iteration+抛光Polish

--单选题

第七章 《实时图形渲染管道》

-7.1实时图形渲染管道 宏观渲染系统

--7.1实时图形渲染管道 宏观渲染系统

--单选题

-7.2实时图形渲染管道 应用阶段

--7.2实时图形渲染管道 应用阶段

--单选题

-7.3实时图形渲染管道 几何阶段

--7.3实时图形渲染管道 几何阶段

--单选题

-7.4实时图形渲染管道 光栅化阶段

--7.4实时图形渲染管道 光栅化阶段

--单选题

-7.5实时图形渲染管道 总结 参考

--7.5实时图形渲染管道 总结 参考

第八章 《材质着色与光照》

-8.1 物理回顾1

--8.1 物理回顾1

--单选题

-8.2 物理回顾2

--8.2 物理回顾2

--单选题

-8.3 材质 1

--8.3 材质 1

-8.4 材质 2

--8.4 材质 2

-8.5 材质3

--8.5 材质3

-8.6局部光照

--8.6局部光照

--单选题

-8.7 全局光照

--8.7 全局光照

--单选题

第九章 《游戏动画》

-9.1 动画介绍

--9.1 动画介绍

--多选题

-9.2 游戏动画介绍

--9.2 游戏动画介绍

-9.3 动画技术类型

--9.3 动画技术类型

--多选题

-9.4 骨骼蒙皮动画

--9.4 骨骼蒙皮动画

--多选题

-9.5 动画流水线

--9.5 动画流水线

--多选题

-9.6 动画前沿趋势

--9.6 动画前沿趋势

--多选题

第十章 《网络同步技术》

-10.1 .基本概念

--10.1 .基本概念

--多选题

-10.2 设计目标

--10.2 设计目标

--多选题

-10.3 传输数据分析

--10.3 传输数据分析

--多选题

-10.4 常用同步方案 1

--10.4 常用同步方案 1

-10.4 常用同步方案 2

--10.4 常用同步方案 2

-10.4 常用同步方案 3

--10.4 常用同步方案 3

-10.4 常用同步方案 4

--10.4 常用同步方案 4

--多选题

-10.5 方案对比

--10.5 方案对比

--多选题

第十一章 《游戏常用几何学》

-11.1 基本图元

--11.1 基本图元

--单选题

-11.2 图元距离(上)

--11.2 图元距离(上)

--单选题

-11.2 图元距离(下)

--11.2 图元距离(下)

--单选题

-11.3 图元相交测试+ 其他几何方法

--11.3 图元相交测试+ 其他几何方法

--单选题

第十二章 《游戏物理模拟》

-12.1 著名物理引擎介绍

--12.1 著名物理引擎介绍

--单选题

-12.2 物理引擎原理(上)

--12.2 物理引擎原理(上)

--单选题

-12.3 物理引擎原理(下)

--12.3 物理引擎原理(下)

--单选题

-12.4 游戏中的物理体

--12.4 游戏中的物理体

--单选题

-12.5 物理引擎使用入门

--12.5 物理引擎使用入门

--单选题

第十三章 《开发工具 》

-13.1开发语言

--13.1开发语言

--单选题

-13.2 开发环境

--13.2 开发环境

--单选题

-13.3 腾讯开发组件介绍

--13.3 腾讯开发组件介绍

--单选题

-13.4 网络通信+业务框架介绍

--13.4 网络通信+业务框架介绍

--多选题

第十四章 《分布式系统设计 》

-14.1 进程间通信(上)

--14.1 进程间通信(上)

-14.2 进程间通信(下)

--14.2 进程间通信(下)

-14.3 通信格式

--14.3 通信格式

-14.4 并发模型

--14.4 并发模型

-14.5 超时处理

--14.5 超时处理

-14.6 大系统小做(上)

--14.6 大系统小做(上)

--多选题

-14.7 大系统小做(下)

--14.7 大系统小做(下)

-14.8 架构层面的技术支持(上)

--14.8 架构层面的技术支持(上)

--单选题

-14.9 架构层面的技术支持(下)

--14.9 架构层面的技术支持(下)

-14.10 分布系统的关键能力

--14.10 分布系统的关键能力

--多选题

第十五章 《游戏人工智能》

-15.1 游戏人工智能综述

--15.1 游戏人工智能综述

-15.2 人工智能在游戏中主要方法 上

--15.2 人工智能在游戏中主要方法 上

--多选题

-15.3人工智能在游戏中主要方法 (下)

--15.3人工智能在游戏中主要方法 (下)

-15.4 人工智能在游戏制作中的应用领域1

--15.4 人工智能在游戏制作中的应用领域1

--多选题

-15.5 人工智能在游戏制作中的应用领域2

--15.5 人工智能在游戏制作中的应用领域2

-15.6 人工智能在游戏制作中的应用领域3

--15.6 人工智能在游戏制作中的应用领域3

--多选题

-15.7 人工智能在游戏运营中的应用实践(上)

--15.7 人工智能在游戏运营中的应用实践(上)

-15.8 人工智能在游戏运营中的应用实践(下)

--15.8 人工智能在游戏运营中的应用实践(下)

--多选题

第十六章 《游戏支撑系统 》

-16.1 游戏支撑系统(1)

--16.1 游戏支撑系统(1)

--单选题

-16.2 游戏支撑系统(2)

--16.2 游戏支撑系统(2)

--单选题

-16.3 游戏支撑系统(3)

--16.3 游戏支撑系统(3)

--单选题

-16.4 游戏支撑系统(4)

--16.4 游戏支撑系统(4)

--单选题

-16.5 游戏支撑系统(5)

--16.5 游戏支撑系统(5)

第十七章 《游戏逻辑服务器和反外挂》

-17.1 游戏逻辑服务器(上)

--17.1 游戏逻辑服务器(上)

--单选题

-17.1 游戏逻辑服务器(下)

--17.1 游戏逻辑服务器(下)

-17.2 外挂与反外挂(上)

--17.2 外挂与反外挂(上)

-17.2 外挂与反外挂(下)

--17.2 外挂与反外挂(下)

--多选题

第十八章 《运行环境和运维 》

-18.1运行环境

--18.1运行环境

--多选题

-18.2物理部署

--18.2物理部署

--多选题

-18.3系统的可运维性

--18.3系统的可运维性

--多选题

-18.4运维案列分析

--18.4运维案列分析

--多选题

1.4 游戏引擎(上)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。