"Game Engine Architecture" Study Notes (1)

Game Engine Architecture is a very good introductory book on game development. This book gives a comprehensive overview of the game engine. After reading it, you can have a preliminary understanding of the game engine. If you want to engage in game development in the future, this book is necessary to read carefully. The fields involved in game development are very broad, but we should first have an overall and general understanding of game development, and then choose the direction of interest to continue research on this basis.

Chapter 1 Introduction

The content of this chapter is structured as follows:
  • The structure of a typical game team
    • engineer
      • Runtime Programmer: Making Engines and Games
      • Tools Programmer: Making offline tools for use by teams
    • artist
      • concept artist
      • 3D modeler
      • texture artist
      • Gaffer
      • animator
      • animation capture actor
      • sound designer
      • Voice actor
      • composer
    • game designer
    • Producer
    • other staff
    • Publishers and studios
  • what is the game
  • What is a game engine
  • Engine differences in different game types
    • first person shooter
      • Efficiently render large 3D virtual worlds
      • Quick response camera control and aiming mechanism
      • Realistic animation of the player's virtual arms and weapons
      • Assortment of hand-held weapons
      • Forgiving player character movement and collision models, often giving the game a floating feel
      • Non-player characters have realistic animations and intelligence
      • Small scale online multiplayer capabilities, ubiquitous deathmatch mode
    • Platform and third-person games
      • Move platforms, ladders, ropes, trellises and other fun modes of movement
      • Environment element used for decryption
      • Third-person "camera"
      • Sophisticated camera collision system
    • fighting game
      • Rich fighting animation
      • Accurate attack determination
      • A player input system that detects complex button and joystick combinations
      • Crowds or relatively static backgrounds
    • racing game
      • 2D cardboard rendering distant background
      • Track "partition" for rendering optimization, visibility judgment, path search, etc.
      • first third person camera
    • real-time strategy game
      • Combat units use lower resolution models, allowing the game to support displaying a large number of units at the same time
      • The design and progress of the game are mostly developed on the height field terrain screen
      • Deploy troops and build new buildings
      • The interaction method is usually click, range selection unit; menus and toolbars for commands, equipment, combat unit types, building types, etc.
    • Massively Multiplayer Online Game (MMOG)
    • other game types
      • sports game
      • role playing game
      • god simulation game
      • Environmental, social simulation game'
      • puzzle game
      • Ports of non-video games
      • web-based games
      • other game types
  • Game Engine Overview
    • Quake engine family
    • Unreal Engine
    • Source engine
    • Microsoft XNA
    • Other commercial engines
    • Proprietary Internal Engine
    • open source engine
      • OGRE
      • Panda3D
      • Its
      • Crystal Space
      • Torque,Irrlicht
  • 运行时引擎架构
    • 硬件
    • 设备驱动程序
    • 操作系统
    • 第三方软件开发包和中间件
      • 数据结构和算法
      • 图形
      • 碰撞和物理
      • 角色动画
      • 人工智能
      • 生物力学角色模型
    • 平台独立层
    • 核心系统
      • 断言
      • 内存管理
      • 数学库
      • 自定义数据结构和算法
    • 资源管理
    • 渲染引擎
      • 低阶渲染器
      • 图形设备接口
      • 其他渲染器组件
      • 场景图/剔除优化
      • 视觉效果
      • 前端
    • 剖析和调试工具
    • 碰撞和物理
    • 动画
    • 人体接口学设备
    • 音频
    • 在线多人/网络
    • 游戏性基础系统
      • 游戏世界和游戏对象模型
      • 事件系统
      • 脚本系统
      • 人工智能基础
    • 个别游戏专用子系统
  • 工具,资产管道
    • 数字内容创作工具
    • 资产调节管道
    • 三维模型/网格数据
      • 笔刷几何图形
      • 三维模型
    • 骨骼动画数据
    • 音频数据
    • 粒子系统数据
    • 游戏世界数据及世界编辑器
    • 一些构建工具的方法

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


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

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

工具及资产管道

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

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

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324871762&siteId=291194637