
游戏引擎原理与实践 02揭开3A游戏背后的技术面纱Bilibili 同步视频游戏逻辑 vs 游戏引擎剧本和摄影机的区别现代游戏引擎都包含哪些模块游戏编辑器游戏开发者的工作台数学游戏引擎的内功根基需要重点掌握的数学知识点写在最后写在前面想要从零手写一套完整强大的 3D 游戏引擎对于个人开发者而言几乎是一件遥不可及的事情。好在开源生态蓬勃发展我们不必重复造轮子掌握引擎的修改与二次开发能力就足以支撑绝大多数游戏创作的梦想。一款光鲜亮丽的游戏炫酷画面、跌宕剧情、拳拳到肉的物理反馈全部都建立在游戏引擎之上。很多刚入坑的小伙伴分不清游戏逻辑和游戏引擎底层也搞不懂一个完整引擎到底由哪些零件拼装而成。今天我们就拨开迷雾聊聊游戏引擎那些核心知识。Bilibili 同步视频游戏引擎原理与实践 02揭开3A游戏背后的技术面纱游戏逻辑 vs 游戏引擎剧本和摄影机的区别游戏编程大致可以划分为两大板块游戏逻辑编程与游戏引擎编程二者的分界线其实并非刀割一样清晰。简单打个比方做游戏如同拍电影??。游戏逻辑就是电影剧本决定什么时候播放剧情、角色何时发起攻击、什么时候播放音效、网络该传递哪些数据。逻辑开发者只关心「要做什么」不用纠结画面如何渲染、声音怎么解码、动作底层如何运算。游戏引擎就是整套拍摄与后期设备接收上层逻辑下达的指令默默搞定图像绘制、音频处理、网络传输、角色运动等一堆脏活累活负责解决「该怎么做」。游戏好不好玩内核永远是玩法与剧情引擎不是决定游戏成败的关键。但是一个优秀的引擎可以把精彩的游戏内容发挥到极致带来沉浸式视听冲击就像从老式 2D 影片升级到沉浸式 4D 体验。只要引擎能力足够强悍当你的游戏剧本已经敲定底层繁琐工作完全可以交给引擎接管。现代游戏引擎都包含哪些模块如今成熟的商业引擎架构已经十分规范化一套功能完备的引擎通常拥有七大核心模块。现实开发中很少会全部从零自研全部组件大量模块会直接采购、接入第三方成熟库减少重复开发成本。模块核心作用常用第三方方案 说明图形引擎游戏画面渲染的基石重中之重大多选择自研很难完全抽象复用为画面效果必须定制开发声音引擎音乐、音效播放声音资源管理FMOD行业内普及率极高的音频插件网络引擎处理游戏网络通信没有万能通用方案虚幻引擎网络模块适合 “开房间” 类游戏并非适配所有服务器架构脚本引擎供策划 / 玩家拓展游戏玩法、AI 逻辑魔兽争霸 3、红警 2 都支持脚本拓展参考书籍《游戏脚本高级编程》GUI 图形用户界面血条、分数、弹窗等屏幕 2D 界面ScaleForm 为知名 UI 引擎UI 体验直接影响玩家手感人工智能引擎游戏角色 AI 行为逻辑虚幻内置带编辑器的 AIUnity 可在商店购入 AI 插件物理引擎碰撞、刚体运动、射线检测、布料模拟等PhysX、Havok、BulletPhysX 与 Bullet 开源软体、流体仿真项目中使用相对较少表格说明该表格汇总游戏引擎七大核心模块清晰展示每个模块的定位以及业界主流实现方式帮助快速建立整体认知。游戏编辑器游戏开发者的工作台引擎本体负责运行游戏而编辑器则是我们制作游戏内容的工作台。它不止能够编辑各类游戏资源还承担资源管理、性能分析、打包部署、版本发布全套工作。下面用一张思维导图梳理编辑器各类组件游戏引擎编辑器常用编辑器场景编辑器摆放模型、光源、摄像机粒子特效编辑器制作爆炸、火花等特效模型浏览器浏览、检视模型资源动画编辑器编辑动画触发游戏事件材质编辑器修改模型外观质感资源管理器统一管控全部游戏素材拓展编辑器物理编辑器AI行为树编辑器脚本编辑器技能编辑器图表说明思维导图梳理引擎编辑器的组成分为常用核心编辑器与拓展专用编辑器两大类直观展示每个工具的用途。像 Unity、Unreal 这些主流引擎都集成了上面绝大多数工具。对于入门新手建议从 Unity 入手阅读配套入门书籍动手做几个小型 Demo在实操中熟悉编辑器各个功能是最高效的学习路径。数学游戏引擎的内功根基如果把引擎比作高楼数学就是深埋地下的地基。不管是写引擎底层还是做游戏逻辑开发都离不开数学。高等数学、线性代数、概率统计都是储备知识。提示不必被复杂理论吓到引擎中大量算法都已经封装成成熟库学会熟练调用就可以完成大部分工作本文也不会涉及晦涩的多重微积分聚焦实战高频用到的基础知识点。推荐读物《3D 数学基础图形与游戏开发》需要重点掌握的数学知识点向量?向量是图形学常客拥有大小与方向。分清标量、点、2D/3D/4D 向量。3D 向量既能代表空间位置点也可以表达朝向方向。需要吃透向量加减、缩放、求长度、归一化、点积、叉乘等运算以及每一种运算在游戏场景代表什么物理含义。矩阵??矩阵主要用来做空间变换引擎中以 3×3、4×4 矩阵为主。掌握概念矩阵维度、单位矩阵、转置、求逆、正交矩阵矩阵与矩阵、矩阵与向量的乘法乘法顺序不同结果会截然不同。四元数??多用于解决三维旋转熟悉四元数模、共轭、逆、点乘、叉乘基础定义网上有大量资料可以查阅。基础几何体??直线、射线、线段、三角形、球体、胶囊体、平面…… 大多用于碰撞检测、相交判断、距离计算全部以参数化形式描述。欧拉角??欧拉角依靠方位定义旋转旋转顺序不同最终结果天差地别。文中配套引擎采用Roll→Pitch→Yaw旋转顺序。非常关键务必搞懂欧拉角、矩阵、四元数三者之间的转换逻辑注意部分情况下转换并不具备可逆性。写在最后游戏引擎是一个庞大的综合体上层是玩法逻辑中间是编辑器工具链底层依靠图形、物理、网络等各个模块协同工作而数学则是驱动一切底层运算的源动力。不必畏惧引擎的庞大复杂学习可以循序渐进。先搞懂各个模块各司什么职责再一点点补齐图形学数学基础动手实操慢慢就能揭开游戏引擎的神秘面纱。