Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础

  • 1 什么是工具链
  • 2 工具链的GUI
    • 1 Immediate Mode
    • 2 Retained Mode
    • 3 Design Pattern
      • 1 MVC 模式
      • 2 MVP
      • 3 MVVM
  • 3 加载数据-序列化
  • 4 如何加载数据
  • 5 如何让工具链更鲁棒
    • Command系统:可以让用户所有的操作都可以原子化。
  • 6 如何制作工具链
    • 1 Schema:工具链最核心
  • 7 所看即所得
  • 8 插件
  • 9 参考文献
  • 10 视频

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第1张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第2张图片

1 什么是工具链

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第3张图片

DCC: 这个就在ACP这一层。

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第4张图片
工具链就是调和不同层次的人的关系,不同使用者的习惯。
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第5张图片

2 工具链的GUI

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第6张图片

1 Immediate Mode

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第7张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第8张图片
拓展性不好!

2 Retained Mode

大部分人用的这个模式。
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第9张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第10张图片

3 Design Pattern

1 MVC 模式

MVC:1987
数据之间的逻辑,
把数据流清晰化了,底层的model单向的到view,不能从view 到model。model的修改只能通过controller来做。将View和model分离开的架构。

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第11张图片

2 MVP

所有的复杂度放到了Presenter,这个得听懂view的语言,有得听懂model的语言。

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第12张图片

3 MVVM

目前更推荐这个模式。

View不需要写逻辑,不需要知道别人的东西。
viewmodel需要程序员去写,

model和view彻底分离开来了。

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第13张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第14张图片

缺点:对环境的要求高,而且不好维护。
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第15张图片

3 加载数据-序列化

序列化:把数据变成可以传递的二进制块。
反序列化:变成内存中可以处理的数据。
是network非常重要的一块。
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第16张图片

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第17张图片

text,容易懂,都可以打开。
.obj格式
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第18张图片
XML:容器,废话太多。
Json:处理快,piccolo就是用的Json格式。

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第19张图片
二进制是最快的,小很多。
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第20张图片

资产引用:

所有的文件都关联在了一起。

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第21张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第22张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第23张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第24张图片

数据可以 继承。

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第25张图片

4 如何加载数据

在这里插入图片描述

解析:
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第26张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第27张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第28张图片
高位存在哪里,前面还是后面。
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第29张图片
向下兼容。版本的兼容,非常重要的。

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第30张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第31张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第32张图片
建议 的做法:

大量的模块维护,数据格式有上百种,如何保证工具的鲁棒。

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第33张图片

5 如何让工具链更鲁棒

如下两个问题: undo$redo和崩溃的时候数据的保存。

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第34张图片

Command系统:可以让用户所有的操作都可以原子化。

这个结构要早点做进去。后面加就会很麻烦。
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第35张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第36张图片

UID是逐渐累积的,保证顺序
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第37张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第38张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第39张图片

6 如何制作工具链

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第40张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第41张图片

找出共性。

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第42张图片

1 Schema:工具链最核心

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第43张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第44张图片
需要继承关系:像高级语言一样。
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第45张图片

数据引用
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第46张图片
两种方式:
一种是用xml,json等直接定义个shema。

另外一种是:定义了个c++类,
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第47张图片

第一种方式非常好理解, 把数据实现和工程彻底剥离开了。但是她需要代码的生成器。
但是版本不兼容。
第二种方式:可以直接将方法包进去,不会出现版本不兼容。
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第48张图片

一种是磁盘上的,
一种是运行中的,内存中是二进制的。
一种是给用户使用的。
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第49张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第50张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第51张图片

在代码中是基于弧度的。工具中要让用户理解。
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第52张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第53张图片

7 所看即所得

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第54张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第55张图片

独立的工具:
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第56张图片
游戏中的工具:
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第57张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第58张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第59张图片

非常简单,edit数据和游戏的数据会混合。
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第60张图片

8 插件

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第61张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第62张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第63张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第64张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第65张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第66张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第67张图片

9 参考文献

Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第68张图片
Games104现代游戏引擎入门-lecture13游戏引擎的引擎工具链基础_第69张图片
软件架构

10 视频

https://www.bilibili.com/video/BV11T411G7qB/?spm_id_from=333.788&vd_source=5c9c50b5a07b211beafdf65d7cc7f8c8

你可能感兴趣的:(游戏引擎,游戏引擎)