游戏引擎分层架构与总体管线

资源层

管理游戏引擎生态的资源池分配 每个资产的实时生命周期

Resource 各种文件格式的资源 转换importing Asset 资产(高效数据)

引擎中最重要的是资产之间的关联 reference

GUID :游戏资产的唯一识别号

运行中资产管理器 Runtime Asset Manager :读取路径文件,handle system管理文件关联

资产管理生命周期:不同资产有不同生命周期,有限的内存需要释放资源,垃圾回收和延迟加载时很严峻的特征

功能层

一个tick里,先Tick logic 逻辑

再Tick render 绘制

多核并行架构,dependency管理

未来的引擎一定是多核并行架构

核心层

数学库

Real time application 导致引擎对效率要求很高

需要重写数学库

SIMD

SSE CPU并行向量计算

数据结构和容器

STL在高频增删数据时,会出现大量空洞,以及内存不受管理

需要自己重写数据结构

内存管理

平台层

掩盖平台差异度

RHI Render Hardware Interface:重新定义图形api,封装硬件SDK

工具层

允许别人创造游戏的内容

DCCDigital Content Creation数字内容创造

外部编辑工具资产与引擎的编辑工具通过asset conditionning pipeline变成游戏资产

游戏分层原因

通过分层解构复杂度

应对增长的需求

越往上灵活性越强,往下稳定

迷你游戏引擎项目
相关推荐
镜舟科技2 小时前
湖仓一体架构在金融典型数据分析场景中的实践
starrocks·金融·架构·数据分析·湖仓一体·物化视图·lakehouse
Ramseyuu2 小时前
Mybatis-plus
微服务·云原生·架构
charlie1145141913 小时前
内核深入学习3——分析ARM32和ARM64体系架构下的Linux内存区域示意图与页表的建立流程
linux·学习·架构·内存管理
堕落年代4 小时前
SpringBoot的单体和分布式的任务架构
spring boot·分布式·架构
慧一居士4 小时前
Memcached 服务搭建和集成使用的详细步骤示例
数据库·架构·nosql·memcached
Magnum Lehar5 小时前
3d游戏引擎的Utilities模块实现下
c++·算法·游戏引擎
互联网搬砖老肖6 小时前
Web 架构之负载均衡会话保持
前端·架构·负载均衡
虾球xz9 小时前
游戏引擎学习第277天:稀疏实体系统
c++·学习·游戏引擎
虾球xz11 小时前
游戏引擎学习第276天:调整身体动画
c++·学习·游戏引擎
虾球xz11 小时前
游戏引擎学习第275天:将旋转和剪切传递给渲染器
c++·学习·游戏引擎