ECS 中的对象引用 (blog.codingnow.com)

【简介】

我们很难避免在 ECS 系统中相互引用 Entity 。而我对 ECS 模式的使用是鼓励去引用的。为此,我对许多常见依赖引用的模式给了对应的解决方案。

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

我一直不是太喜欢这个方案,所以一直再考虑不同的解决方法。念念不忘 必有回响。昨天,我尝试了一个新的、更满意一点的方案。

点击查看全文 >>

@技术头条 2022-06-19 23:19分享 / 原作者微博:@简悦云风 / 0个评论
要不要再学学下面的文章?
Java 正确获取对象内存地址的方式 (www.awaimai.com)
在本教程中,我们将了解如何在 Java 中查找对象的内存地址。

在此之前,我们需要说明的是,运行时数据区的内存布局不是 JVM 规范的一部分,完全由实现者自行决定。因此,每种 JVM 可能回用不同的策略布局内存中的对象和数组。

在本教程中,我们主要讨论 HotSpot JVM。
by @技术头条 2022-06-19 23:24 分享 查看详情
给 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) 复杂度下工作?
by @技术头条 2022-06-19 23:07 分享 查看详情
你还在new对象吗?Java8通用Builder了解一下 (mp.weixin.qq.com)
这里不再介绍其他 Builder 实现方式,直接祭出最实用的通用Builder:
适用于所有类,不需要改造原来类,不需要 lombok 插件支持。
先看看使用姿势:
by @code小生 2022-04-10 21:11 分享 查看详情
ECS 中同类关联数据的处理 (blog.codingnow.com)
ECS 模式下最难处理的是同类 Component 之间有相互联系的情况。

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

但是,在复杂系统中,无可避免的,同类数据相互之间也可以产生联系。例如:场景管理中,节点之间有父子关系,计算节点的空间状态的过程对数据的遍历次序有要求。且计算过程还需要访问父节点的状态。解决这类需求是 ECS 框架的一大挑战。
by @技术头条 2022-02-03 13:12 分享 查看详情
卧槽!VSCode竟然可以找对象了! (mp.weixin.qq.com)
为了用最硬核的方式找到男(女)朋友,23 岁的程序员 Ben Awad 在 VS Code 里打造一个约会软件 VSinder。
by @code小生 2021-06-20 22:56 分享 查看详情
Redis 存储对象信息是用 Hash 还是 String (zhuanlan.zhihu.com)
Redis 内部使用一个 RedisObject 对象来表示所有的 key 和 value,RedisObject 中的 type,则是代表一个 value 对象具体是何种数据类型,它包含字符串(String)、链表(List)、哈希结构(Hash)、集合(Set)、有序集合(Sorted set)。
by @又拍云 2021-06-03 09:59 分享 查看详情
从此!程序员找对象没那么难了 (mp.weixin.qq.com)
从此!程序员找对象没那么难了,从此!程序员找对象没那么难了,从此!程序员找对象没那么难了
by @code小生 2021-01-18 15:24 分享 查看详情
玩转ECS第6讲 | 弹性计算Region化部署和跨可用区容灾介绍 (developer.aliyun.com)
本次分享由阿里云弹性计算架构负责人李钟(谢顿)为大家介绍阿里云region化部署和跨可用区容灾的实践经验,说明多Region部署场景中使用阿里云弹性计算的最佳实践,并结合弹性计算的实践经验探讨如何基于阿里云多可用区实现跨地域容灾。
by @可耐芊小仙女 2020-11-09 14:44 分享 查看详情
玩转ECS第5讲 | 弹性计算安全组最佳实践及新特性介绍 (developer.aliyun.com)
本次内容由阿里云智能技术专家王帝(丞浩)为大家介绍如何正确使用安全组、最佳实践以及新特性;详细了解安全组为何是云端的虚拟防火墙,以及为何是重要的网络隔离手段。
by @可耐芊小仙女 2020-11-06 17:34 分享 查看详情
领域对象发展的极致就是代理 (insights.thoughtworks.cn)
本文解释什么是动态领域建模(dynamic domain modelling),为何需要它,以及使其成为领域驱动设计一等公民的价值。
by @Thoughtworks 2020-08-12 12:11 分享 查看详情