给 ECS 增加分组功能 (blog.codingnow.com)

【简介】

目前,我们用 ECS 管理游戏引擎中的对象。当游戏场景大到一定程度,就需要有一个机制来快速筛选出需要渲染的对象子集。换句话说,如果你创建了 100K 个 Entity ,但是只有 1K 个 Entity 需要同时渲染,虽然遍历所有可渲染对象的成本最小是 O(n) ,但这个 n 是 100K 这个数量级,还是 1K 这个数量级,区别还是很大的。

我们的 ECS 系统已经支持了 tag 这个特性,可以利用 visible tag 做主 key 快速筛选可见对象。但当镜头移动时,需要重置这些 tag 又可能有性能问题。重置这些 visible tags 怎样才能避免在 100K 这个数量级的 O(n) 复杂度下工作?

点击查看全文 >>

@技术头条 2022-06-19 23:07分享 / 原作者微博:@简悦云风 / 0个评论
要不要再学学下面的文章?
ECS 中的对象引用 (blog.codingnow.com)
我们很难避免在 ECS 系统中相互引用 Entity 。而我对 ECS 模式的使用是鼓励去引用的。为此,我对许多常见依赖引用的模式给了对应的解决方案。

最近的一个 luaecs 开发版本中,提供了一种 Lua 层面的引用方案 :在创建 Entity 时,可以指定一个 table 作为该对象的引用。系统会更新它,让它保持为一个有效的(形如 select 过程中的)迭代器。这样,业务层就可以随时通过它 sync entity 中的数据。

我一直不是太喜欢这个方案,所以一直再考虑不同的解决方法。念念不忘 必有回响。昨天,我尝试了一个新的、更满意一点的方案。
by @技术头条 2022-06-19 23:19 分享 查看详情
Python中有3个不可思议的返回功能 (mp.weixin.qq.com)
Python 字典通过检查键值是否相等和比较哈希值来确定两个键是否相同.

具有相同值的不可变对象在Python中始终具有相同的哈希值.
by @code小生 2022-05-08 23:45 分享 查看详情
这款功能强大的文本识别系统开源了! (mp.weixin.qq.com)
说到文本识别大家已经非常熟悉了,这一技术早就深深融入我们生活的方方面面,今天,猿哥要和大家分享一个可以识别文本背后含义的工具——pyWhat。

当你不知道特定一串文本代表什么时,它能快速判断它是否是 email、油管视频编号、手机号 或者是其他信息格式。你给它一个 .pcap 文件或者一段文本,它能告诉你这个文件或是文本代表了什么。
by @code小生 2022-05-05 23:08 分享 查看详情
这可能是史上功能最全的Java权限认证框架! (mp.weixin.qq.com)
sa-token是一个轻量级Java权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0 等一系列权限相关问题

框架针对踢人下线、自动续签、前后台分离、分布式会话……等常见业务进行N多适配,通过sa-token,你可以以一种极简的方式实现系统的权限认证部分
by @code小生 2022-04-19 20:18 分享 查看详情
ECS 中同类关联数据的处理 (blog.codingnow.com)
ECS 模式下最难处理的是同类 Component 之间有相互联系的情况。

最方便 ECS 处理的数据是相互独立的,每个数据单元都不和其它数据单元产生联系;如果多个数据单元会有故有的联系时,当可以把它们看作是同一个实体(Entity)下的不同组件(Component)时,那么就可以借用 Entity 的概念来处理它们。我们依旧可以按固定的次序去迭代这些数据。

但是,在复杂系统中,无可避免的,同类数据相互之间也可以产生联系。例如:场景管理中,节点之间有父子关系,计算节点的空间状态的过程对数据的遍历次序有要求。且计算过程还需要访问父节点的状态。解决这类需求是 ECS 框架的一大挑战。
by @技术头条 2022-02-03 13:12 分享 查看详情
苹果的反跟踪新功能大受欢迎,你更新了吗? (mp.weixin.qq.com)
Facebook 担忧 iOS 14.5 将大幅影响收入,并不是没有道理的。在不久前的 4 月 27 日,苹果正式推送了 iOS 14.5,而此次更新最受关注的变化是,提升了 App 跟踪的透明度。从部分数据追踪公司的统计来看,用户对这项新功能很“买账”。
by @code小生 2022-01-03 19:55 分享 查看详情
Edge浏览器新版来袭,Office功能首次出现! (mp.weixin.qq.com)
为了让用户快速访问Office文件,微软已经为Edge和Chrome浏览器提供了一个浏览器扩展。除此之外,近日微软Edge 92版开始向开发频道的测试人员推出,此次更新带来两个新功能:Office 查看器和 Windows 搜索集成。
by @code小生 2022-01-03 19:21 分享 查看详情
Android 12重磅功能缺失! (mp.weixin.qq.com)
对于 Android 12 设备无法使用音量键控制 Chromecast 会话音量的问题,一位 Google 员工披露此事与某个“法律问题”有关。此前多年,Android 用户普遍喜欢通过移动设备的音量键,来便捷控制附近 Chromecast 终端的音量 —— 比如将 YouTube 内容从手机端投送到 Nest Hub 或电视上时。
by @code小生 2021-11-21 18:35 分享 查看详情
一行JS实现的功能,看起来像一个前端专家 (mp.weixin.qq.com)
JavaScript 可以做很多神奇的事情!
从复杂的框架到处理 API,有太多的东西需要学习。
但是,它也能让你只用一行代码就能做一些了不起的事情。
看看这 13 句 JavaScript 单行代码,会让你看起来像个专家!
by @code小生 2021-09-30 21:43 分享 查看详情
神奇功能,微信可以设置雪花昵称了! (mp.weixin.qq.com)
今天给大家带来一个雪花昵称。

这种利用特殊符号,来实现花样昵称的效果已经和大家分享过很多了,但这个雪花的最漂亮。
by @code小生 2021-09-05 13:29 分享 查看详情