游戏引擎导论
游戏引擎导论
本系列笔记整理自王希老师主讲的 GAMES104《现代游戏引擎:从入门到实践》公开课,涵盖从引擎架构到渲染、动画、物理、AI、网络等完整的现代游戏引擎知识栈。本讲作为导论,介绍游戏引擎的定义、核心约束(实时性)以及整个课程的内容框架。
算法 algorithm 到系统的变化
算法简单来讲就是我有一个Idea, 我花时间去研究和实现了就能发表出对应的Paper,周期比较短(比如6个月).
要做系统实现,首先你要接受非常良好的系统工程训练, 知道一个大型软件系统如何去架构的, 另外你还需要知道你的特定系统怎么架构。
在实际去做架构的时候,很长时间(超过1年)是很多东西都看不见.
Digital Twin 数字孪生
数字孪生是物联网(internet of Things: lot) 和工业4.0领域的一个概念,涉及创建物理对象或系统的虚拟副本或模型。
它把现实世界的东西虚拟化的表达在计算机世界里面, 帮助我们更好的理解,去管理,去构建未来的世界。比如无人驾驶。
什么是游戏引擎
现代游戏引擎是一个非常庞大的系统,它集合了整个计算机科学从底层硬件到应用端几乎全部的内容。某种意义上说,开发一个现代游戏引擎的难度不亚于开发一个现代操作系统。
游戏引擎是一个非常复杂的系统,即使是非常简单的游戏也需要系统的不同组件相互协作才能实现基本的游戏功能,比如说渲染系统在屏幕上绘制图像、物理系统模拟人物战斗的过程、控制系统实现玩家和角色的交互、联网系统实现多人互动等等。
基础定义

- 构建黑客帝国矩阵的技术,一个底层框架,目的就是模拟一个虚拟世界。
- 一个生产力的工具, 构建人类想象力的工具, 比如创造一个不存在的外星球
- 复杂性的艺术, 一系列妥协和决策结果,几乎不存在一个完美的景致的引擎架构

功能分析

- 方便程序员去开发出各种不同的玩法, 也就是二次开发
- 方便多人协作开发, 由引擎的工具链提供

游戏引擎最关键的核心或者一个设计的边界条件是Real Time(实时), 我们需要在约定时间(比如30帧:33.3ms, 60帧16.6ms, 乃至更小的时间),必须把我们想要效果计算出来提交显示到显示设备上.
- CPU和GPU的开销都需要在这个时间点内, CPU负责运算, GPU负责把运算的结果渲染出来.
做引擎首先是做工具,工具的用户是我们的艺术家(artist)和设计师(designer)
学习游戏引擎需要先建立基础的知识框架,然后在需要的时候再去专攻特定的点
课程内容

- 去理解一个引擎,首先从它的Update函数开始

- 用什么样的渲染管线去把游戏中的元素组合起来,放到一帧的时间里面

- 怎么去整合游戏的动画资源,动画强调的是交互

- 物理引擎, 用于模拟真实物理, 比如刚体,流体

- Gameplay提供基本架构来定义游戏世界的规则

- 各种辅助系统,如特效, 寻路系统等

- 如何构建一些好用的工具,并支持升级

- 网络游戏其实是不同的宇宙,通过信息的沟通尽量保证不同的宇宙是相同的,这个和现实世界不同
玩家本地本地的游戏其实就是构建一个游戏宇宙,同时获取其他宇宙的信息,尽量确保结果是相同的。
进阶技术


