游戏引擎架构杂谈

游戏引擎 的先验知识

虽说 游戏引擎 实际上和其它的服务端程序,或者说各种底层程序的区别差不多。但是它依旧需要一些先验知识。例如它所有的系统是什么,它究竟有哪些出名的引擎,或者就是它是不是流行的东西。它需要的数学知识多不多。还是说这个就是个聪明人的舞台?这些都会在以后的游戏引擎杂谈中慢慢聊。有趣的事情太多。

Here We GoLang

此文章解释以下问题:

  1. 入门游戏引擎架构的时候,我们需要做什么准备?
  2. 需要哪些方面的知识?
  3. 有哪些可以学习的引擎?
  4. 有没有足够有用的学习教程?
  5. 引擎系统有哪些部分?具体细分究竟是怎样?

何为入门所需知识?需要哪方面的知识?

  • 极强的语言使用能力,绝大多数游戏引擎都是以C++为主导。
  • 比较高的数学能力,高数和线代的知识都是极其需要的。
  • 对计算机技术的深入了解。
  • 一定的搜索能力。
  • 极强的服务器操作能力。
  • 一些杂七杂八的例如自我管理能力。

有那些可以学习的引擎?

以下给出一些可以利用的游戏引擎

有没有足够有用的学习视频?

游戏引擎的构成

游戏支持系统

  1. 子系统的循环:即让和引擎系统相关的内容顺序启动或者顺序关闭的一个基础必要部分。
  2. 内存管理系统:动态内存分配以及内存分配器等。这个就不多说了。。。
  3. 容器:各种各样的集合型数据集。例如敌人的血量值与表现值的集合
  4. 字符串的不同:在《游戏引擎架构》以及《游戏编程入门》中都着重提到:字符串。这个容易被忽略的点。不同的字符串设计会给游戏系统的设计带来截然不同的感受。
  5. 引擎可提供的配置选项:你会注意到每一款游戏起码都会有个让你调节音量的选项。或者修改灵敏度和亮度。有些复杂的游戏会允许你修改分辨率,抗锯齿之类的选项。而这些选项正是和游戏引擎架构中的配置选项很是相关。

渲染引擎

(即“渲染器”,含二维图像引擎和三维图像引擎)。实际上在这里面我们肯定需要花最多的时间,因为一款游戏第一眼是否能够吸引到人,靠的就是画面的精美度或者像素度。关于渲染引擎,以后会专门写一个和渲染引擎相关的系列文章来阐述,在另外一边的从零开始编程,也会认真地编写相关代码,并且开源给诸位食客。

物理引擎(碰撞检测系统)

  1. 刚体动力学模拟引擎:这是游戏中最常见的模拟,大到天际里面的巨龙碰撞,小到人类一败涂地的小人,都有着其特有的刚体动力学性质。
  2. 柔体动力学模拟引擎:这就是涉及到更多的,主要和流体力学相关的内容了。但是这个涉及了风,水,油等一系列在游戏中应当常见的物体,所以这个我们也应到要认真的了解
  3. 弹性体动力学模拟:例如弹簧。正如上边所写,这儿就和弹性力学相关了。
  4. 以上的就是绝大多数物理/碰撞检测系统所需要的东西了。但是绝对不仅仅如此,我只是大范围概括了一下,实际上系统的构成远比这些复杂得多。与渲染系统类似,这个也是需要很深厚的数学能力的。

音效、脚本引擎

建议了解微软XACT音效制作工具及其API。根据笔者我的深入了解,我发现了YSE也是一个极好的选择。此外可以去看一下《Game Programming Gem》这本书,里面也提到了大量和音频系统相关的东西。FMOD,IrrKlang,OpenAL ,XAudio2,XFML2等都是有值得去了解的API服务。至于脚本引擎,这里也大大有文章,我们当然就可以先去了解一下脚本引擎是什么:就是一个计算机编程语言的解释器,如用于建网站的asp、php等,它的功能是解释执行用户的程序文本,将它译成计算机能执行的机器代码,完成一系列的功能。所以脚本引擎在游戏中的应用就相当于给了程序一个更大的发展空间。

电脑动画系统

和计算机图形学密不可分的部分,常用的实现方法有DirectX和OpenGL等比较成熟的实现。

人工智能

此人工智能非彼人工智能(机器学习等,当然后期那些也会形成独有的高智能的人工智能),这里的人工智能倾向于人造的智能,在引擎中给出可行的,可能性发展的解决方案。例如天际中行人对主角的反应会因为主角的善恶度而改变的系统。

网络引擎

从字面意思便可知道是游戏中局域网系统/网游的P&P系统的实现。

场景管理

亦即场景渲染/生成方法管理。究竟先生成视觉内的什么东西,哪些应当首先生成,这些便是这个系统研究的内容以及着重点。

资源与文件系统

管理系统产生的文件/数据/日志等。例如存档位置的分配,文件的查询以及调用等。

人体学接口设备管理系统

决定你的玩家会用到哪些设备,鼠标?only键盘?手柄?甚至一些奇怪的外设?这负责转换这些奇怪或者正常的设备的信号到游戏程序/引擎可识别的系统也是很重要的。

调试与开发系统

在游戏里面的调试和在游戏外的运行调试。游戏里面的例如控制台,游戏外的例如内存占用查询。是开发内测公测的最重要系统部分。

以上内容与我的引擎架构内容会形成联动。

本文作者: Bon
本文地址https://bonxg.com/p/13.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!

# Bon
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×