【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)

相关内容

热门资讯

悟空订购APP非法期货交易欺骗...   近期,有投资者反映,“悟空订购APP”等平台以白银、贵金属订购为名,宣传所谓“高收益”“低门槛”...
小赢淘金APP期货投资骗局,平...   “小赢淘金”之流,最擅长的就是用“注册送现金”、“充值返券”的糖衣炮弹来引流。别天真地以为那是福...
八方淘金APP非法期货交易欺骗...   警惕!八方生财、每日淘金、小赢淘金、悟空订购、蜻蜓订购、斗金订购等APP均涉嫌非法期货交易!  ...
智易购APP贵金属订购交易骗局...   很多人看到“3元起投”“充值送福利”“操作简单”“随时提现”这类宣传,很容易把智易购APP当成普...
喜玛银庄APP商品订购投资骗局...   喜玛银庄APP白银、铂金“现货订购”骗局警示:无资质平台涉嫌非法期货交易,投资者爆仓后如何维权?...
吉鑫乐享APP炒贵金属订购交易...   近期,多名投资者反映在“吉鑫乐享APP”进行贵金属投资时遭遇严重亏损,甚至血本无归。看似正规的“...
易掘金APP虚假期货投资骗局,...   “易掘金”的APP它打着“高收益、灵活投资”的旗号,宣称通过“商品订购”就能轻松赚钱,吸引了不少...
在大吉订购APP订购交易亏损被...   近期,不少投资者反映在“大吉订购App”上投资白银、铂金等商品遭遇严重亏损。该平台宣称提供现货订...
铂银壹号APP商品订购交易亏损...   许多中小投资者误以为网上的“商品现货订购”是合规合法的理财渠道,殊不知这背后隐藏着巨大的合规风险...
兴鑫淘金APP贵金属订购交易亏...   白银、贵金属或其他商品类投资,除国家批准的正规期货交易场所及持牌期货公司外,市面上大量第三方交易...
铂银掘金APP无资质的违规平台...   铂银掘金等平台的投资者,往往是被“注册送现金”“充值返现券”“首单免亏”等广告话术吸引,进而下载...
八方淘金APP订购交易不合规,...   “八方淘金APP”“铂银掘金APP”“铂银壹号APP”等软件被指以“现货订购”为名,实际采用高杠...
在指尖订购APP订购商品亏损被...   指尖订购APP这类平台,表面是“订购交易”,实则是披着电商外衣的非法期货陷阱。绝大多数投资者被蒙...
在犀贝易购APP做商品订购交易...   市面上打着“现货投资”“贵金属交易”旗号的APP并不少,但真正合规、受监管的平台并不多。犀贝易购...
易达淘金APP虚假商品订购交易...   易达淘金APP存在严重的虚假宣传与违规交易行为。该平台打着“商品订购”的旗号,实则通过不合规的交...
大浪淘金APP白银订购亏损被骗...   大浪淘金APP最隐蔽的套路,在于其完全封闭的内盘交易系统。表面上,它宣称与国际贵金属市场接轨;实...
一品好购APP上订购白银出现亏...   一品好购APP原名“一品订购”,运营方为上海宝智未来信息技术有限公司。近期不少投资者反映在该平台...
九州订购APP贵金属订购投资骗...   九州订购APP正通过抖.音、快手、今日头条等平台大量投放投资广告,用“5元起投”“充值返现”“0...
坚锅淘金APP交易软件并不正规...   当前,市面上大量所谓的“现货商城订购”交易软件,早已偏离了正常的实物商品买卖,演变为高杠杆、高手...
斗金订购APP贵金属期货交易骗...   斗金订购APP的投资者往往被铺天盖地的广告宣传所诱导——注册即送现金、充值返现券等看似诱人的福利...