GAMES104--2rd
Games104---2nd
游戏引擎分层
我们接触到的第一层Editor(工具层)
然后就是Rendering, Physics,Animation, Script, HUD(function)
然后资源管理,psd, max, maya, mp3, xml, mpeg
然后是核心层(瑞士军刀)
然后是平台层
PC, Mac, Consoles, InputDevice, PublishingPlatforms
还有第三方层
5+1层。
First task -- 做一个会动的角色
将资源文件变成asset
第三方文件会有很多无效文件,我们importing 资源的时候,需要转化为我们的资产asset,最好能压缩一下。
不同资源直接需要进行相互关联,比如模型和贴图(xml)
给每个资产设定一个唯一识别号guid---global unique id
Runtime Asset Manager
各种文件相互关联,需要一个Manager管理各种资源的生命周期。GC
Function 层
Tick运行时不断跑的函数
ticklogic & tickRender
多线程
将任务拆成原子任务,小的不能再小的,然后分配给多核。
动画
将动画的运算放进ticklogic
然后渲染的时候tickrender
核心层
数学库
数学为效率服务
example - 卡马克快速平方根
SIMD加速线性代数运算

数据结构
链表,二叉树。。。
为了避免内存碎片全部重做,
内存管理
- Memory Pool/Allocator
- Reduce cache miss
- Memory alignment
可能还有网络
平台层
RHI
把各个图形API的函数重新分装一遍
硬件架构
手机的大小核
各种协处理器。。。
工具层
蓝图,材质,UI编辑器。
材质编辑器保证DCC软件和引擎里看上去是一样的
不一定用C++
DCC
Asset Conditioning Pipline
各种格式的导入导出。
为什么要分层
减少耦合,加强封装,增加可读性。
底层最好不要动,但上层可以动。减少代码改动。
写代码之前,想想自己的代码在哪一层
底层不允许调用上层
Mini Engine---Pilot Engine来了
引擎分层
- Editor (Tool)
- Runtime (4层)



浙公网安备 33010602011771号