转换你的游戏到DOTS(一)

本文转自Unity Connect博主 雨松MOMO

Unite2019哥本哈根学习笔记之Converting your game to DOTS

将传统开发的游戏模式转成DOTS的方式,DOTS全称(Data Oriented Tech Stack) 面向数据的技术堆栈

image

DOTS能干什么?大家看看下面发射这么密集的子弹,如果是传统GameObject的方式肯定会卡死,然而Dots却非常流畅。 可以在Github上下载这个学习工程 https://github.com/UnityTechnologies/AngryBots_ECS

image

DOTS是什么?

  1. Job System :任务系统

  2. Entity Component System(ECS) :实体组件系统

  3. Burst Compiler :Burst编译器 ,也是LLVM编译器

  4. Project Tiny :Unity基于以上3个构成的H5小游戏解决方案

image

需要注意的是以上任务系统、实体组件系统、Burst编译器各自都是独立的系统可以单独使用,它们的集合称之为DOTS.

image

为什么要在项目中使用DOTS?

image

传统面向对象模式下内存就像下图一样,杂乱无序的排放在内存中。当CPU需要读取某个数据时,就要先从这一堆杂乱无序的内中找到需要的内存,然后将它读取并且移动到L1缓存中。缓存的内存大小是固定的远比内存要小很多,拿进来一个内存到缓存中必然就要移除一个。游戏进行中需要读取的内存多了,如果大量的都无法从缓存中拿到,就要重走内存读取在放入L1缓存的流程,势必效率就很差。称之为Cache miss。

image

Entity Component System(ECS) :实体组件系统 ,做的事情就是将传统游戏对象杂乱无序的组件归类ÿ

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值