【DOTS学习笔记】DOTS简介
admin
2024-01-21 18:30:33
0

目录

  • 前言
  • DOTS是什么?
    • 核心Package
    • 游戏功能相关Package
  • 谁需要关注DOTS?
  • DOTS可以应用到哪些地方?
  • 为什么需要DOTS


前言


本文是Metaverse大衍神君的《DOTS之路》系列课程的学习笔记

DOTS是什么?


Data-Oriented Technology Stack(面向数据的技术栈)

从字面意义上来说DOTS是面向数据的技术栈

实际上Dots是由Unity的五个核心Package组成
它定义了一种全新的Unity代码编写模型
并在这些核心包之外提供了额外的游戏功能相关的Package和工具
是Unity下面向数据设计与编程的一整套解决方案

核心Package


  • The C# Job System:
    • 提供快速、安全和使用简单的编写多线程方式
  • The Brust Compiler
    • 优化C#代码的编译器
    • 可以编译生成比通过Mono或IL2CPP更快的代码
    • 并不止为DOTS而存在,同样可以编译Unity中的任何代码
  • Unity Mathematic
    • 一套可以在Job System中使用的数学库
    • 在Brust编译的代码中是经过特别优化的
  • Unity Collections
    • 提供常见的集合类型(列表、哈希映射表等)
    • 内存分配属于非C#托管类型
    • 可以在Brust编译代码中的Job System中使用
    • 这些基类类型支持安全检查,有助于他们在Job System中安全使用
  • Entities(Entity-Component System)
    • Entity对象是比GameObject更轻量、更高效的替代品
    • Entity并不承担任何代码
    • Conpoment只是片段数据集合
    • Entity和Componment都由System对应的代码单元处理

游戏功能相关Package


  • Entities.Graphics(1.0版本之前的Hybird Renderer)
    • 支持URP和HDRP的Entity渲染解决方案
    • 并不是为了优化GPU而是优化CPU上的性能而设计的
  • Netcode
    • 建立在五个核心包上的DOTS网络解决方案
    • 提供网络多人服务器功能、客户端预测等相关功能
  • Physics
    • 建立在五个核心包上的DOTS物理解决方案
    • 支持两个后端
      • Unity Physics(默认)
        • 无状态的确定性物理库
        • 适合多人网络游戏
      • Havok Physics
        • 有状态但不具备确定性的物理库
        • 更稳定功能也更强大
  • Animation(开发中)
    • 支持DOTS的Animation包
  • Audio(开发中)
    • 支持DOTS的音乐相关包

谁需要关注DOTS?


  • 技术负责人
    • 在技术选型与Unity项目中是否使用DOTS的重要决策人
  • 处理游戏逻辑部分的开发人员
    • 需要非常了解DOTS的代码编写与设计方式
    • 了解Brust编译的细节
  • 处理网络通信部分的开发人员
    • 需要非常了解DOTS的代码编写与设计方式
    • 了解Brust编译的细节
  • 处理动画部分的开发人员
    • 了解动画扩展包的使用
  • 处理物理模拟部分的开发人员
    • 了解物理扩展包的使用
  • 开发工具与工作流相关内容的开发人员
  • 技术美术
  • DOTS相关工具与插件的开发人员

DOTS可以应用到哪些地方?


多线程加载、通讯,以及充分利用多核并行计算的游戏类型

  • 具有大世界流式加载的游戏
  • 具有复杂的大规模模拟的游戏
  • 具有多种网络类型的多人联机游戏
  • 具有需要客户端模拟预测的网络游戏,如FPS

总之,只要是CPU Bound类的游戏都可以考虑用DOTS做并行优化

为什么需要DOTS


  • CPU、GPU、Memory以及带宽的发展速度的不均衡
    • 添加高速缓存结构Cache内存层级结构去弥补(L1、L2、L3级的CPU缓存)
    • 面向数据编程本身是对缓存友好的,可以极大程度增加缓存Cache的命中,提高效率
  • 摩尔定律 的延续与现代CPU设计主要依靠的是
    • 越来越好的工艺
    • 越来越多的核
    • 分工越来越细的处理单元与存储
    • SIMD/SIMT
  • 并行编程的发展,要么依赖特地的硬件,要么是针对科学计算设计的,几乎无法集成到Unity中
    • OpenMP
    • TBB(Intel Threading Building Blocks)
    • CUDA(Compute Unified Device Architecture)
    • OpenCL(Open Computing Language)
    • MPI/OpenMPI(Message Passing Interface)

相关内容

热门资讯

酒庄头条:在郎酒庄园,看见世界... 文/酒庄头条 中国酒业该向何处去?又如何走向国际市场?酿酒业是有根产业历史经典产业,郎酒以全球视野开...
100个选基指标|利润总额,真... 推荐阅读: 100个选基指标丨自然年度收益率,最简单,也最重要(第一期) 100个选基指标丨区间收益...
连云港开发区为AI“制药”按下... 从人才赋能、校地协同到产业落地,今年以来,连云港开发区通过一系列密集举措构建起全链条、立体化的产业赋...
1.08亿控股德维嘉:无锡振华... 一家传统汽车冲压件上市公司,正试图用一笔亿元级别的现金收购,为自己贴上“汽车智能化”的标签。 6月2...
ATFX:SpaceX下跌16... 来源:市场资讯 6月23日,ATFX汇评:美国航空航天代表性个股SpaceX,上市六个交易日,三个交...
嘉实基金李涛:长期视角决策未来... 嘉实成长共赢混合基金经理李涛表示, 投资理财本质上是一场长期主义的远行,权益投资本质是追求赚取产业与...
震裕科技可转债发行申请获深交所... 雷达财经 文|苏静 编|深海 6月23日, 震裕科技(300953)发布关于公司向不特定对象发行可转...
深深房A:控股股东深投控拟减持... 6月23日, 深深房A(000029.SZ)公告称,公司收到控股股东深圳市投资控股有限公司(深投控)...
245亿!深市史上最大IPO 2026年6月22日,华润电力旗下的华润新能源(001248.SZ)正式启动申购,发行价10.11元...
五天狂增5800亿港元市值,智... 作者/李海 出品/科技实话 6月22日港股收盘,智谱(2513.HK)走出一波震撼全场的行情,股价稳...
成立不到90天的超级创企昆仑行... 资本疯狂抢筹,90天击穿行业最快独角兽天花板。 成立不到3个月的昆仑行机器人,上演了一出让整个投资圈...
二奢跨境峰会首度入蓉,西南商家... “国内流量越来越贵,海外市场怎么打?”6月23日,全球电商巨头eBay将二手奢侈品跨境发展峰会首度落...
索尼集团时隔30年拟再发美元债... 全球娱乐与科技巨头索尼(Sony)集团计划近三十年来首次发行美元债券。 6月23日,据报道,知情人士...
分红259亿!董事长:未来三年... 本文自南都·湾财社。 采写 | 南都·湾财社记者 孔学劭 6月23日,美的集团正式发布2025年度A...
考验山姆的时候到了 来源 | 伯虎财经(bohuFN) 作者 | 路费 山姆最近有点烦。 原本靠着选品和体验圈定中产的路...
原创 又... 隔夜,现货黄金收盘大涨35.68美元,涨幅0.86%,报4191.44美元,金价上周五曾触及6月11...
三天蒸发超6300亿美元!Sp... 6月23日, SpaceX(SPCX.US)盘前延续跌势,一度下跌近5%至147美元左右,已低于15...
走出“先跑通再治理”误区,耐优... “先把流程跑起来,管理等上了规模再慢慢补课。”这种务实的生存哲学,帮无数成长型企业熬过了最艰难的起步...
IPO问询|优邦科技二度闯关遇... 近日,东莞优邦材料科技股份有限公司(以下简称“优邦科技”)披露深交所第二轮IPO审核问询回复文件。本...