3D 游戏引擎初探|青训营笔记

144 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第15天

  • Scene(场景)面板

  • Game(游戏)面板

  • Hierarchy(层级)面板

  • Project(项目)面板

  • Inspector (检视器)面板

  • Console(控制台)面板

    • 理解 Unity 中的 GameObject (实体)及其挂载的 Component (组件)

    • Camera(相机)实体

    • Light(光照)实体

    • Transform(变换)组件:位置、旋转和缩放

    • Mesh(网格)组件与 Material (材质)组件

    • RigidBody(刚体)组件:物理模拟

    • Collision(碰撞器)组件:碰撞检测

  • Input(游戏输入)与 InputManager(输入管理器)

  • Tag(标签)、Layer(图层)与 Physics(物理规则)

  • Prefab(预制体)与 Instantiate(实例化)

  • 在 GameObject 上挂载 Script(脚本)

  • GUI(图形用户界面)和游戏管理

  • 下载 Unity 之外的另一款 3D 游戏引擎,在其中寻找以上概念在另一款 3D 游戏引擎中的平行概念。以下是建议的另一款 3D 游戏引擎:

    • UE(Unreal Engine 虚幻引擎,UE4 或 UE5)

    • Roblox(罗布乐思)

      • 实时游戏
    • 帧率

    • 物理、逻辑与渲染

    • 状态迁移

  • 快速试验、否定或修改游戏机制与规划。

  • 探索游戏的动态行为,理解由规则产生的可能结果。

  • 确保规则和游戏元素易于被玩家理解。

  • 了解玩家对游戏的情绪反应。

  • 不同游戏平台的输入设备

  • 3D 碰撞处理

  • AI 与 决策树

实时游戏的运行帧

  • 帧率60可以流畅运行,帧率30差强人意,帧率20及以下会感受到明显卡顿

  • 帧率60意味着每一帧运行时间16.67毫秒

  • 一帧内,需要执行物理计算(含运动学与动力学计算、碰撞检测)、用户输入检测、游戏逻辑执行、渲染画面,如果时间还有富余,停顿到16.67毫秒。

  • 游戏中的实体有静态的实体,也有动态的实体。对于动态的实体,我们需要为其设置刚体属性、碰撞/触发属性或执行脚本。

  • 游戏的优化主要是减少物理、逻辑或渲染中的运算量。例如减少无意义的碰撞检测,用更少的计算量达到相同的执行目标,在用户感知不到差异的前提下尽可能裁剪渲染。