当前位置:   article > 正文

游戏引擎架构 阅读笔记_游戏引擎架构阅读攻略

游戏引擎架构阅读攻略

导论

游戏团队结构

包括工程师(engineer)、艺术家(artist)、游戏设计师(game designer)、制作人(producer)及其他管理/支持人员(市场策划、法律、信息科技/技术支持、行政等)。

工程师(engineer)

包括运行时程序员(runtime programmer)和工具程序员(tool programmer)。

有时会有技术总监(teclmical director, TD),负责从较高层面监督一个或多个项目, 确保团队能注意到潜在的技术难点、业界走势、新技术等。首席技术官(cllief technical officer, CTO) ,类似整个工作室的技术总监, 并履行公司的重要行政职务。

运行时程序员(runtime programmer)

制作引擎和游戏本身。

工具程序员(tool programmer)

制作离线工具,供整个团队使用,提高效率。

艺术家(artist)

包括概念艺术家(concept artist)、三维建模师(3D modeler)、纹理艺术家(texture artist)、灯光师(lighting artist)、动画师(animator)、动画捕捉演员(motion capture actor)、音效设计师(sound designer)、配音演员(voice actor)和作曲家(composer)。

有时会有艺术总监(art director),负责把控整个游戏的艺术风格,并维持所有团队成员作品的一致性。

概念艺术家(concept artist)

通过素描或绘画,让团队了解游戏的预设最终面貌。

三维建模师(3D modeler)

为游戏世界的所有事物制作三维几何模型。

分为前景建模师(foreground modeler)和背景建模师(background modeler)。

前景建模师(foreground modeler)

制作物体、 角色入载具、 武器及其他游戏中的对象。

背景建模师(background modeler)

制作静态的背景几何模型(如地形、 建筑物、 桥梁等)。

纹理艺术家(texture artist)

制作称为纹理(texture)的二维影像。 这些纹理用来贴附于三维模型之上, 以增加模型的细节及真实感。

灯光师(lighting artist)

布置游戏世界的静态和动态光源, 并通过颜色、 亮度、 光源方向等设定,加强每个场景的美感及情感。

动画师(animator)

为游戏中的角色及物体加入动作。

动画捕捉演员(motion capture actor)

提供一些原始的动作数据。这些数据经由动画师整理后,置于游戏中。

音效设计师(sound designer)

制作并混合游戏中的音效及音乐。

配音演员(voice actor)

为游戏角色配音。

作曲家(composer)

为游戏创作音乐

游戏设计师(game designer)

负责设计玩家体验的互动部分,这部分一般称为游戏性

  • 有些(一般为资深的)游戏设计师在宏观层面上设定故事主线、整体的章节或关卡顺序、玩家的高层次目标。
  • 其他游戏设计师9则 在虚拟游戏世界的个别关卡或地域上工作,例如设定哪些地点会出现敌人、放置武器及药物等补给品、设计谜题元素等。
  • 其他游戏设计师会在非常技术性的层面上和游戏性工程师 (gameplay engineer)紧密合作。

有时会有游戏总监(gamedirector)一职,负责监督游戏设计的各个方面,帮助管理时间表,并保证每位游戏设计师的设计在整个游戏中具有一致性。

制作人(producer)

负责管理时间表,并同时承担人力资源经理的职责。

游戏的定义

软实时(soft real-time)互动(interactive)基于代理(agent-based)计算机模拟(computer simulation)

计算机模拟

  • 游戏的数学模型是现实世界的模拟。
  • 近似化(approximation)简化(simplification) 是常用的手段。

基于代理

  • 模拟中多个独立的实体(称为代理)一起互动。
  • 游戏中的载具、人物角色、火球、豆子等都可视为代理。
  • 由于大部分游戏都有基于代理的本质,所以多数游戏采用面向对象(object-oriented) 编程语言,或较宽松的基于对象(object-based) 编程语言。

软实时互动

  • 所有互动电子游戏都是时间性模拟(temporal simulation),即游戏世界是动态的(dynamic)
  • 随着游戏事件和故事的展开,游戏世界状态随着时间改变。游戏也必须回应人类玩家的输入,这些输入是游戏本身不可预知的,因而也说明游戏是互动时间性模拟(interactive temporal simulation)
  • 多数游戏会描绘游戏的故事, 并实时回应玩家输入,这使游戏成为互动实时模拟(interactivereal-time simulation)
  • 时限(deadline) 是所有实时模拟的核心概念。在电子游戏中,明显的例子是需要屏幕每秒最少更新24次,以制造运动的错觉。(大部分游戏会以每秒30或60帧的频率渲染画面, 因为这是NTSC制式显示器刷新率10的倍数。)
  • “软“实时系统(softreal-time system) 是指一些系统,即使错过期限却不会造成灾难性后果。与此相比,硬实时系统(hardreal-time system) 错过期限可能会导致操作者损伤甚至死亡。直升机的航空电子系统和核能发电厂的控制棒(controlrod) 系统便是硬实时系统的例子。

游戏引擎(game engine)

游戏引擎使得游戏更容易被修改与迁移,同时,也方便了mod制作。
此外,游戏开发者也可以取得一个游戏引擎的授权,复用其中大部分关键软件组件去制作游戏。

游戏和其引擎间的分界线较为模糊。

  • 在一款游戏中, 渲染代码可能特别 “ 知悉 “ 如何画一只妖兽(orc);
  • 在另一款游戏中,渲染引擎可能只提供多用途的材质及着色功能,“妖兽” 可能完全用数据定义。

数据驱动架构(data-driven architecture)可以用来分辨引擎和游戏。若一个游戏包含硬编码逻辑或游戏规则,或使用特例代码去渲染特定 种类的游戏对象, 则复用该软件去制作新游戏就会变得困难甚至不可行。
因此, 游戏引擎可以被定义为可扩展的软件, 且该软件不需要大量修改就能成为多款游戏软件的基础。
游戏引擎复用性连续谱

不同类型游戏引擎

第一人称射击

FPS注重的技术:

  • 高效渲染大型三维虚拟世界。
  • 快速反应的摄像机控制及瞄准机制。
  • 玩家的虚拟手臂和武器的逼真动画。
  • 各式各样的手持武器。
  • 宽容的玩家角色运动及碰撞模型, 通常使游戏有种“漂浮”的感觉。
  • npc的逼真动画与智能
  • 小规模在线多人游戏的能力(通常支持多至同时64位玩家在线), 及无处不在的死亡竞赛 (death match) 游戏模式。

渲染技术:

  • 室内“地下城爬行(dungeon crawl)”通常会利用二元空间分割树(binary space partitioning,BSP tree)或基于入口(portal)的渲染系统。
  • 室外则使用其他种类的渲染优化, 例如遮挡剔除(occlusion culling),或游戏在运行前预先把游戏世界分区化(sectorization),以自动或手动方式去设定每个分区是否能见到另一个分区。

平台及其他第三人称游戏

“平台游戏(platformer)”是指基于人物角色的第三人称游戏。

较为看重主角能力(ability)和运动模式(locomotion mode)。
主角化身(avator)需要高度逼真的全身动画。

第三人称游戏注重的技术:

  • 移动平台、 梯子、 绳子、 棚架及其他有趣的运动模式。
  • 用来解谜的环境元素。
  • 第三人称的 “ 跟踪摄像机” 会一直注视玩家角色, 也通常会让玩家用手柄右摇杆(在 游戏主机上)或鼠标(在PC上)旋转摄像机(虽然在PC上有很多流行的第三人称射 击游戏, 但平台游戏类型几乎是游戏主机上独有的)。
  • 复杂的摄像机碰撞系统, 以保证视点不会穿过背景几何物体或动态的前景物体。

格斗类游戏

竞速类游戏

实时策略游戏

大型多人在线游戏

游戏引擎概览

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/105056
推荐阅读