Unreal Engine 4 学习笔记3:探索开发一个引擎需要用到多少知识和技术

开发一个游戏引擎需要用到多少知识和技术?

如何开发一个游戏引擎?

想要做游戏、做出一款好的游戏、那么肯定要先了解什么是游戏引擎、开发一个游戏引擎需要用到什么、游戏引擎包括什么等等,前面了解了Unreal Engine 的页面和基础运用,现在就来一个基础入门,此文章参考了很多资料及其其他文章,仅当粗略的总结,而且会持续更新和修改。

什么是游戏引擎?

那么首先开始了解,什么是游戏引擎?
根据百度百科资料:

游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台,如Linux、Mac、OS、X、微软Windows。游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。

那游戏引擎的原理是什么呢,以及为什么要做游戏引擎?
游戏引擎是一个为运行某一类游戏的机器设计的能够被机器识别的代码(指令)集合
它像一个发动机,控制着游戏的运行。**一个游戏作品可以分为游戏引擎和游戏资源两大部分。**游戏资源包括图象,声音,动画等部分,
列一个公式就是:游戏=引擎(程序代码)+资源(图象,声音,动画等)。游戏引擎则是按游戏设计的要求顺序地调用这些资源。

在游戏引擎这个概念出现之前,还只是游戏的萌芽期,那时候的游戏大多简单、场景也粗糙,但每款游戏的平均开发周期也要达到8到10个月以上,这一方面是由于技术的原因,另一方面则是因为几乎每款游戏都要从头编写代码,造成了大量的重复劳动。渐渐地,一些有经验的开发者摸索出了一条偷懒的方法,他们借用上一款类似题材的游戏中的部分代码作为新游戏的基本框架,以节省开发时间和开发费用。这差不多就是游戏引擎出现的原因,用某句话来戏说,正是因为人类偷懒才有了这诸多的发明,但不得不说游戏引擎的出现确实促进了游戏的发展。

在此推荐百度百科链接:https://baike.baidu.com/item/游戏引擎/620879?fr=aladdin

维基百科中的定义则更加

就如汉字最开始是由图案构成的一样,游戏引擎一开始也只是一个单独的游戏。当人们不断的制作新的游戏的时候,发现很多功能是通用的,没有必要做重复的内容。所以,人们开始对游戏里面的功能进行抽象总结,这样在开发新的游戏的时候可以直接使用之前的成果,即节省时间,又可以避免很多前人遇到的坑。 那么游戏引擎其实就是一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。
这些由之前开发游戏的经验与成果所抽象总结的一个系统就是游戏引擎。一个成熟的游戏引擎应该尽可能的通用于各种游戏制作,提供一套完善的制作流程。各个游戏大厂一般都有自己的游戏引擎,如EA的寒霜引擎、育碧的Anvil引擎、完美的Angilica祖龙引擎,其他小型公司一般使用的是商业游戏引擎,如Unity,UE4。
简单的说:游戏引擎也决定了游戏最初的样子。

在此也推荐文章(游戏的发展史):https://baijiahao.baidu.com/s?id=1620171317445300416&wfr=spider&for=pc

接下来再来说游戏引擎会用到的一些知识:

大多数游戏引擎包含以下系统:渲染引擎、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。

游戏引擎大致等于图形引擎+=游戏解决方案+=编程接口。
每一款引擎对于图形渲染的处理方式都不同,所以用某个引擎编写出来的游戏,具体的表现画面也会不同。比如,有的引擎编写出的光影效果特别绚丽,有的则粒子效果特别真实。
图形引擎只是游戏引擎中一个占比极大的组成部分。一款好的游戏引擎,不仅要看它对于图形图像的处理能力,也要看它对于其他部分的处理能力,比如对音频、音效的播放、键盘鼠标的处理,以及 UI 界面的编辑和各种处理工具的提供。这里的处理工具包括地图编辑器、关卡编辑器、人物编辑器、资源编辑器、物理碰撞、碰撞检测等。所以,从专业的角度讲,游戏引擎是完成开发一套游戏的解决方案,而不仅涉及图形部分。
不管你是直接面对引擎编写代码,还是在引擎提供的编辑器(比如关卡编辑器)基础上编写简单的逻辑代码,写代码都是必不可少的。在引擎提供的编程接口上,你能很容易地调用各种接口完成游戏的开发。

游戏引擎是用什么编写的呢

游戏引擎并没有一种固定的开发语言,依赖于你所制作游戏的目标平台是什么。
1.C/C++
2. JavaScript/TypeScript
3. NET
4. Java
游戏引擎控制着游戏的几乎所有内容,游戏的表现质量和游戏引擎直接相关;我们需要掌握更多游戏引擎相关的知识。因为,不管你是购买游戏引擎还是自己开发游戏引擎,了解游戏引擎,会让你对游戏编程的总体脉络有一个了解。熟知游戏引擎的开发逻辑,你就能很快定位问题所在。

那么下面我们来真正进入了解游戏引擎制作需要的东西

1、架构
2.第三方软件开发包
3.平台独立层
4.对象组件模型
5.原子类型与原子操作
6.定时器
7.Graphics Wrappers 图形包裹类
8.Moudule模块
9.字符串
10.调试
11.语法分析器
12.性能分析
13.引擎配置
14.曲线
15.RTTI、反射、序列化
16.唯一标识符
17.游戏资产
18.材质与纹理
19.摄像机
20.物理
21.BSP树
22.关于剔除
23.光照贴图
24.动态阴影
25.贴花Decal
26.HDR与后处理
27.环境映射EnvironmentMapping
28.PRT
29.层级式物体依附
30.MatchMaking
31.音频
32.前端FrontEnd
33.静态与动态元素
34.世界载入
35.脚本
36.游戏专用子系统
37.玩家机制
38.游戏摄像机
39.Debug,Release
40.软件的主要构成 算法+数据结构+设计模式
41.游戏开发常用的数学知识
向量运算,三角函数,矩阵运算,四元数,随机数,坐标系运算(笛卡尔坐标系、极坐标系、球坐标系),空间变换,以及其他的几何学(点到面的距离,点是否在几何体内等),微积分
42.内存管理:涉及知识操作系统
43.容器:涉及数据结构
44.I/O
45.游戏循环与渲染循环

参考文章链接:https://blog.csdn.net/u012999985/article/details/79369542
https://blog.csdn.net/xiaokunzhang/article/details/80588810
http://baijiahao.baidu.com/s?id=1598686146136015080&wfr=spider&for=pc
https://zhidao.baidu.com/question/42201286.html
https://baike.baidu.com/item/游戏引擎
https://blog.csdn.net/qq493453700/article/details/72833924
推荐阅读文章:强烈推荐文章:https://blog.csdn.net/u012999985/article/details/79369542
第一个游戏引擎制作:https://blog.csdn.net/qq493453700/article/details/72833924

你可能感兴趣的:(C++,Unreal,Engine,游戏)