《游戏引擎架构》 学习笔记(一)

《游戏引擎架构》是一本非常不错的关于游戏开发的入门书籍。这本书对游戏引擎进行了全面的概述,读完可以对游戏引擎有一个初步的认识,如果以后要从事游戏开发的工作的话,这本书就有必要认真地阅读了。游戏开发涉及的领域非常的广泛,但我们首先应该对游戏开发有一个整体,概要的理解,在此基础上再选择感兴趣的方向继续研究。

第1章 导论

本章的内容结构如下:
  • 典型游戏团队的结构
    • 工程师
      • 运行时程序员:制作引擎和游戏
      • 工具程序员:制作离线工具供团队使用
    • 艺术家
      • 概念艺术家
      • 三维建模师
      • 纹理艺术家
      • 灯光师
      • 动画师
      • 动画捕捉演员
      • 音效设计师
      • 配音演员
      • 作曲家
    • 游戏设计师
    • 制作人
    • 其他工作人员
    • 发行商及工作室
  • 游戏是什么
  • 游戏引擎是什么
  • 不同游戏类型中的引擎差异
    • 第一人称射击
      • 高效地渲染大型三维虚拟世界
      • 快速反应的摄像机控制及瞄准机制
      • 玩家的虚拟手臂和武器的逼真动画
      • 各式各样的手持武器
      • 宽容的玩家角色运动及碰撞模型,通常使游戏有种漂浮的感觉
      • 非玩家角色有逼真的动画及智能
      • 小规模在线多人游戏的能力,无处不在的死亡竞赛模式
    • 平台及第三人称游戏
      • 移动平台、梯子、绳子、棚架及其他有趣的运动模式
      • 用来解密的环境元素
      • 第三人称的“摄像机”
      • 复杂的摄像机碰撞系统
    • 格斗游戏
      • 丰富的格斗动画
      • 准确的攻击判定
      • 侦测复杂按钮及摇杆组合的玩家输入系统
      • 人群或相对静态的背景
    • 竞速游戏
      • 二维纸板渲染遥远的背景
      • 赛道“分区”进行渲染优化,可见性判断,路径搜寻等
      • 第一第三人称的摄像机
    • 实时策略游戏
      • 作战单元使用较低解析度的模型,使游戏能支持同时显示大量单元
      • 游戏的设计和进行多是在高度场地形画面上展开
      • 部署兵力,兴建新建筑物
      • 互动方式通常为单击,范围选取单元;指令,装备,作战单元种类,建筑种类等的菜单及工具栏
    • 大型多人在线游戏(MMOG)
    • 其他游戏类型
      • 体育游戏
      • 角色扮演游戏
      • 上帝模拟游戏
      • 环境、社会模拟游戏‘
      • 解谜游戏
      • 非电子游戏的移植
      • 基于网页的游戏
      • 其他游戏类型
  • 游戏引擎概观
    • 雷神之锤引擎家族
    • 虚幻引擎
    • Source引擎
    • 微软XNA
    • 其他商业引擎
    • 专有内部引擎
    • 开源引擎
      • OGRE
      • Panda3D
      • Yake
      • Crystal Space
      • Torque,Irrlicht
  • 运行时引擎架构
    • 硬件
    • 设备驱动程序
    • 操作系统
    • 第三方软件开发包和中间件
      • 数据结构和算法
      • 图形
      • 碰撞和物理
      • 角色动画
      • 人工智能
      • 生物力学角色模型
    • 平台独立层
    • 核心系统
      • 断言
      • 内存管理
      • 数学库
      • 自定义数据结构和算法
    • 资源管理
    • 渲染引擎
      • 低阶渲染器
      • 图形设备接口
      • 其他渲染器组件
      • 场景图/剔除优化
      • 视觉效果
      • 前端
    • 剖析和调试工具
    • 碰撞和物理
    • 动画
    • 人体接口学设备
    • 音频
    • 在线多人/网络
    • 游戏性基础系统
      • 游戏世界和游戏对象模型
      • 事件系统
      • 脚本系统
      • 人工智能基础
    • 个别游戏专用子系统
  • 工具,资产管道
    • 数字内容创作工具
    • 资产调节管道
    • 三维模型/网格数据
      • 笔刷几何图形
      • 三维模型
    • 骨骼动画数据
    • 音频数据
    • 粒子系统数据
    • 游戏世界数据及世界编辑器
    • 一些构建工具的方法

第1章在最简单的层面上给我们介绍了什么是游戏引擎,包括对游戏引擎的定义和用途、游戏引擎出现的原因和游戏引擎发展的历史、以及一些现有的游戏引擎的介绍。当然,作者在介绍游戏引擎的时候也谈及了游戏的话题(主要概括了当今一些主要的游戏类型以及它们对游戏引擎的要求等等)。此外,作者在本章也对游戏的运行时引擎架构的主要成分和内容作了一个概要性的介绍(其实可以说整本书都是对游戏引擎的概要介绍,游戏引擎的每个不同的领域都有相当深入的研究内容,不过即使是这样概要的概要也有相当多的内容了)。


运行时引擎架构
游戏引擎是大型软件系统,下面是书中的引擎架构图:
《游戏引擎架构》 学习笔记(一)_第1张图片
可以看到游戏引擎架构由多个软件层组成,几乎涵盖了计算机软件所有方面的内容。个人认为,由于大多数游戏都有实时性的要求,游戏对系统性能的要求很高,所以游戏引擎必须尽一切所能对系统进行优化。虽然我还在阅读本书的过程当中,但我已经读到了很多方面关于引擎优化设计的方案对比,上至游戏的框架,算法,第三方库的使用,下至内存管理甚至硬件的使用都如是,从中能够深刻地体会到游戏引擎开发对技术的极致要求。

简单总结一下每个软件层:
硬件层:代表用来执行游戏的计算机系统或游戏主机
设备驱动程序:负责管理硬件资源,隔离操作系统及上层引擎
操作系统:协调计算机上程序的执行
第三方软件开发包和中间件:提供API供游戏引擎借用
平台独立层:隔离引擎和底层平台
核心系统:有用的实用软件(utility)
资源管理:提供接口访问游戏资产
渲染引擎:最大最复杂的组件,由低阶渲染器提供原始的渲染功能
剖析和调试工具:用以剖析游戏的性能,以便优化
碰撞和物理:碰撞检测,物理系统
动画:含有机或半有机角色的游戏需要,骨骼动画是最盛行的动画方式
人体学接口设备:处理玩家输入
音频:完整的优秀游戏需要出色的音频引擎
在线多人/网络:供多位玩家游玩于同一虚拟世界
游戏性基础系统:提供一组功能方便实现游戏专有逻辑
个别游戏专用子系统:实现游戏本身的特性

工具及资产管道

游戏开发时,需要考虑使用什么工具制作游戏资源,同时游戏引擎需要对不同工具制作的不同格式的资源文件进行处理,简单总结如下:

1.游戏引擎需要读取大量数据,包括游戏资产,配置文件,脚本等,其中游戏资产(三维网格数据、纹理位图、动画数据、音频文件等)由美术人员使用数字内容创作(DCC)应用软件(如3ds Max Photoshop等)制作。
2.DCC软件制作的数据通常要导出为容易读取的标准格式或自定义格式以便在游戏中使用;
3.游戏引擎可提供世界编辑器,世界编辑器可以构建在低阶软件层上,也可以和运行时引擎一起构建在核心系统上。

你可能感兴趣的:(《游戏引擎架构》 学习笔记(一))