新闻详情

新闻详情

首页 / 资讯中心 / 详情

ECS随笔2

发布时间:2026/10/30 5:38:07来源:尧图网络
ECS随笔2
文章目录目标-pureEcsSimulation ECS WorldEntity设计Conponent设计System设计表现层最佳实践Query 和存储设计Command Buffer目标-pureEcsentity只做IDcomponent只放数据system只写逻辑view层只负责表现输入(命令)、网络(命令)、配置、资源、UI((命令))都作为外围系统接入。不要从继承树开始设计应该从“一个战斗世界里有哪些数据”和“每帧哪些规则处理这些数据”开始设计。Command Layer(输入和网络命令)Simulation ECS World(核心战斗逻辑)Event StreamSnapshot StorePresentation World(表现层镜像)RendererConfig ServiceAsset ServiceNetwork SyncBattle UIReplay Service(/sync/debug)Simulation ECS World逻辑世界应该满足不引用任何显示对象不播放声音不直接加载资源不直接操作 UI给定相同初始状态和相同输入命令结果应该一致。Entity设计constentityIdworld.createEntity();world.add(entityId,IdentityComponent,...);world.add(entityId,TransformComponent,...);world.add(entityId,HealthComponent,...);world.add(entityId,SkillComponent,...);Conponent设计Component 只放数据不放业务方法。数据状态表现意图System设计系统应该按固定顺序执行避免“谁先 tick 不清楚”的问题。推荐帧内顺序命令消费/合法校验/写入组件生成组合创建实体/初始化配置快照AI根据AIComponent决定下一步意图/不直接播放动作特效/可以写入 CastRequestComponent 或移动目标索敌写入数据组件技能请求写入数据组件技能施法移动炮弹碰撞输出 HitEvent受击伤害消费 HitEvent 或 DamageRequestbuff死亡清理事件快照表现层最佳实践表现层可以使用普通 OOP也可以再做一个 Render ECS。核心原则是不污染 Simulation ECS。数据唯二来源事件快照Query 和存储设计从 0 开始时可以先做简单清晰的 ECS不必一开始就做复杂 archetype这是啥。第一版推荐classWorld{privatenextEntityId1;privatealivenewSetEntityId();privatestoresnewMapComponentType,MapEntityId,unknown();createEntity():EntityId;destroyEntity(entity:EntityId):void;addT(entity:EntityId,type:ComponentTypeT,data:T):void;getT(entity:EntityId,type:ComponentTypeT):T|undefined;removeT(entity:EntityId,type:ComponentTypeT):void;query(...types:ComponentType[]):IterableEntityId;等性能成为问题再升级到底层实现优化/工程能力archetype 存储【存储性能】按“组件组合”给实体分组。比如同时有 Transform Health Skill 的实体放一组方便系统批量遍历。sparse set【存储性能】一种高效存储 Entity 和 Component 的结构常用于快速判断“某实体有没有某组件”、快速增删组件。SoA 连续数组【存储性能】Structure of Arrays把同类字段分开连续存比如所有 x 放一个数组、所有 y 放一个数组遍历性能更好。changed flag【系统调度和刷新效率】变化标记。比如血量没变就不刷新血条位置没变就不同步 View。command buffer【系统调度和刷新效率】命令缓冲。System 遍历时不立刻创建/删除实体而是先记录命令等这一帧末尾统一执行避免边遍历边改集合出 bug。不要过早为了性能牺牲可理解性。Command BufferSystem 遍历时不要直接创建/删除大量实体推荐每帧固定在 CleanupSystem 或 CommandBufferFlushSystem 统一提交。这样可以避免遍历组件时修改集合导致 bug。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/10/30 4:02:09

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/10/29 23:30:48

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/10/29 13:36:24

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/10/29 19:55:35

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/10/29 13:36:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/10/30 5:26:05

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉