Flecs ECS 游戏开发技术专题全层级31 / 31 已发布

Flecs 的下一代路线图:作者规划、社区期望与未来架构演进

· 0 分钟阅读
Flecs 的下一代路线图:作者规划、社区期望与未来架构演进 Flecs Roadmap & What's Next — Flecs ECS 技术专题

Flecs 的下一代路线图:作者规划、社区期望与未来架构演进 Flecs Roadmap & What's Next

为什么「路线图」是你选型时该看的第一块基石

先说个我自己的糗事。2019 年我给一个中型项目挑 ECS 库,当时把四五个候选框架的 benchmark 图表打印出来贴在墙上,一个字一个字比对「百万实体遍历耗时」,最后选了跑分最漂亮的那个。两年后项目黄了——不是因为跑分,是因为那个库的作者去大厂上班了,仓库半年没合并一个 PR,我们卡在一个内存越界的 bug 上,只能自己啃源码打补丁。跑分赢了,命输了。

那次之后我改了个习惯:选框架的时候,性能表只看十分钟,剩下两个小时全花在翻它的 issue 区、release note 和作者的公开访谈。说白了,你不是在选一个软件,你是在选一个人(或一小撮人)未来三年的注意力。这跟租商铺一个道理——租金、面积、人流你都算得清,但房东明年是不是要把整栋楼改成写字楼,你不问,就等着搬机器吧。

放到 Flecs 身上,这件事尤其重要,因为它是这个赛道里少见的「单核心作者 + 极宽野心」组合。Sander Mertens 一个人撑起了 C 语言世界里最完整的 ECS 实现,同时又在不停往外扩:关系、脚本 DSL、查询引擎、语言绑定、浏览器工具。野心大是好事,但野心大 + 人手少 = 必然有取舍,而有取舍就意味着你的项目可能会等一个永远不会来的特性。

这篇不写「Flecs 未来会很牛逼」这种场面话。我想干三件事:把社区在 GitHub 上喊得最响的那堆需求拆开看看它们到底在要什么;把作者公开表达过的判断和边界翻译成「哪些会做、哪些这辈子不会做」;最后给你一张表,让你把「别人的路线图」换算成「你自己的风险和预算」。框架横向性能对比那是第 03 篇的活儿,这篇只聊战略:谁会赢、往哪打、你该站在哪。

第一层:社区在喊什么——把几百条 issue 拆成四类诉求

你去翻 Flecs 的 issue 区和 Discussions,第一感受是「热闹得有点吵」。几百条开着的东西,从「能不能加个内置的计时器」到「关系遍历在深层次下性能能不能再翻一倍」,什么都有。新手容易犯的错是把它当成一个待办清单,从上往下看,觉得「哇,这么多东西在排队,这框架前途无量」。其实不是。你得先学会分类,因为不同类别的诉求,作者的响应速度和意愿差着数量级。

我把它归成四类,你对照着看:

诉求类型典型声音社区热度作者响应意愿我的判断
A. 内核性能查询更快、关系遍历更深还能撑住、万级实体下 archetype 不炸中高(多是老用户在提)高,几乎每个大版本都在啃放心押,这是 Flecs 的命根子
B. 易用性报错看不懂、文档缺例子、C 的 API 太长、想要更顺手的 C++ 写法极高(新手集中区)中,会做但优先级总被性能挤后别等,自己写封装层更靠谱
C. 生态集成和某某引擎怎么接、多来点语言绑定、包管理器支持、编辑器插件高分层:语言绑定愿意做,引擎深度集成基本不做要看清「桥」和「楼」的区别
D. 领域扩张内置网络同步、内置物理、内置 UI、内置资源加载中(喊的人多,动手的人少)低到零,作者有明确边界喊得最响的往往最不会实现

这张表最有意思的地方在最后一行。你会发现声音最大的一类诉求,恰恰是最不可能被满足的一类。为什么?因为喊「内置物理」的人,脑子里的参照物是 Unity——那个把物理、渲染、动画、音频全塞进一个包里的东西。而 Flecs 从第一天起就没打算当那个东西。

我给你讲个特别典型的场景。社区里隔三差五就有人提:「能不能给 world 加一个默认的更新循环,我不用自己写主循环了?」这需求听起来无比合理,尤其对刚从 Unity 转过来的人。但作者的回答基本是一致的:主循环是你的游戏的事,不是数据容器的事。Flecs 里已经有调度系统、有执行阶段的概念(这块第 09 篇讲透了),但它刻意不替你决定「一帧到底该干什么」。这个边界不是懒,是设计哲学——一旦它接管了主循环,它就默认了你是个实时游戏,那些跑仿真、跑数据处理、跑后台服务的用户(第 29 篇里那一大批)立刻就被排除在外了。

所以你看 issue 区的时候,心里要有个翻译器:用户说的「缺功能」,八成是「缺我熟悉的那种体验」。这两者之间隔着的是封装层,而封装层,通常得你自己写。

还有个细节值得说:issue 的投票数在这里的参考价值很低。不是因为社区不理性,而是因为投票的人结构失衡——最积极投票的是刚上手三个月、还在痛点上挣扎的新手,而那些用了两年、真正把 Flecs 塞进生产环境的老用户,大多沉默,他们要么已经自己打了补丁,要么根本不看 issue 区。这就是经典的「沉默的大多数」问题。你要是拿投票数当路线图的天气预报,很容易被带偏到「易用性优先」的幻觉里,而实际上推动这个框架往前走的,一直是性能和表达能力。

第二层:作者会做什么——画出那三个同心圆

搞清楚了需求侧,我们来看供给侧。Sander 在公开场合表达过很多次他的定位,比较有意思的是他专门写过一份很长的 ECS 常见问题文档,逐条回应「ECS 是不是银弹」「ECS 能不能做 UI」这类质疑。那份文档里有一句话的大意是:ECS 解决的是「数据怎么组织和访问」,不是「游戏怎么做」。这句话基本就是 Flecs 路线图的总纲。

我把它画成三个同心圆,你记住这个结构,以后看任何一条新特性的传闻,都能自己判断它落在哪一圈:

最内圈:数据内核。必做,且会一直做下去。这里面是存储布局、查询引擎、关系表达、调度、序列化。这块的特点是——每次大版本更新,你都能感觉到它在变快、变稳,但同时 API 会晃。关系这个特性就是典型,它让 Flecs 和所有其他 ECS 框架区分开来(第 08 篇专门讲它),代价是它深深嵌进了存储层,一旦要改,牵连一大片。这也是为什么 3.x 到 4.x 的迁移让不少人骂娘——不是作者任性,是内核改不动小改。

中间圈:桥接层。做,但只做薄的。语言绑定(Lua、C#、Python,第 16 篇讲过)、构建系统集成(CMake、vcpkg、Conan,第 19 篇)、浏览器里的调试工具。这些的共同点是:它们不改变「Flecs 是什么」,只是让更多人能碰到它。作者愿意做,因为投入产出比高,一个绑定能让一整个语言社区进来。

最外圈:上层建筑。不做,明确交给社区。渲染后端、编辑器、UI 系统、音频、物理引擎。这些如果要,就是你自己接,或者用别人接好的。作者的态度很明确:Flecs 不想变成引擎,它想做引擎底下那层。

这个边界听起来很清楚,但实际执行起来会有灰色地带,最容易引发争议的就是 FlecsScript——那个用声明式文本描述场景和逻辑的小语言(第 26 篇专门吵过这事)。它到底算内核还是上层?我的看法是:它算「内核的外壳」,因为它的存在意义是让关系、预制体、继承这些东西被非程序员用起来,本质还是数据描述,不是游戏逻辑引擎。但这个判断我自己也不完全确定,因为一旦脚本能写系统、能写条件,它离「运行时」就只有一步了。这一步迈不迈,是接下来两年最值得盯的信号。

关于节奏,我给你一个粗略的经验刻度(注意是估算,别当承诺):Flecs 的大版本迭代大概两年一跨,中间的小版本几个月一发。大版本意味着一次伤筋动骨的适配,小版本基本是「改了编译错误就能跑」。一个有 5 万行左右代码、中等规模的项目,从 3.x 挪到 4.x 这种量级的迁移,我见过的实际投入大约在 3 到 8 周人力,取决于你有多依赖关系特性和序列化。这个数字很关键,后面做预算表要用。

第三层:对手在干什么——四框架的生态势力与差异化空间

路线图不是关起门来画的。Flecs 下一步往哪走,很大程度取决于另外三家在往哪走。这里我不比性能(第 03 篇比过了),只比「战略位置」。先上一张势力图:

框架它想成为什么护城河软肋谁的下一站
EnTT一个极致纯粹的 C++ 库,除了 ECS 什么都不想给你极简 API、稳定的接口、AAA 级项目验证没有工具链、没有脚本、没有高层抽象,一切自己搭「我只要一个库,不要一个世界观」的人
Bevy ECS一整套 Rust 游戏引擎,ECS 是它的心脏引擎全栈 + 社区热度 + 迭代速度Rust 生态门槛、编译慢、接口破坏频率高愿意为「一体化体验」付出学习成本的人
Unity DOTS商业引擎里的高性能子集,卖给买引擎的人引擎分发渠道、商业闭环、工具链成熟被 Unity 绑死、多年才落地、版本策略反复已经在 Unity 里、量又大到必须优化的人
Unreal Mass藏在引擎内部的大规模实体框架,主要服务 AI 人群UE5 生态、开箱即用的大规模 AI 工具不对外当 ECS 用,暴露面窄,学习资料少做 UE 大世界、需要几万个 NPC 的团队
FlecsC 语言世界里最完整的 ECS 内核,能嵌进任何地方关系系统、C 内核的跨语言能力、单文件可嵌入C 风格接口、文档与认知门槛、单核心作者风险做非标准游戏、仿真、嵌入式,或想自己组装技术栈的人

这张图里最关键的一列是「它想成为什么」。因为四家想成为的东西根本没有重叠——EnTT 想当一个工具,Bevy 想当一个世界,Unity 想当一个商场,Unreal 想当一个城市的市政工程,而 Flecs 想当水和电。水和电的生意,护城河不在功能多,在于「别人离不开」。

所以 Flecs 的差异化空间其实很清楚:不去争「谁做游戏更爽」,去争「谁能在更多奇形怪状的地方跑起来」。这也是为什么它的路线图里,语言绑定和可嵌入性一直排得比「编辑器体验」靠前。你想想,一个做交通仿真的团队(第 29 篇那类用户)会在乎你有没有场景编辑器吗?不会,他们在乎的是能不能塞进一个没有操作系统的板子里。

接下来我说两个案例,它们不是 Flecs 的项目,但它们的行为直接塑形了 Flecs 的路线图,因为作者在公开场合反复引用过它们的做法。

案例一:Bevy 的「默认组件」——把门槛砍掉的甜头与代价。

Bevy 在 0.15 版本(2024 年底)推了一个叫「必需组件」的机制。说人话就是:以前你在 Bevy 里生成一个能显示的精灵,得自己手动挂上一串东西——位置、变换、可见性、渲染句柄,少一个就看不见,新手最常犯的错就是这个,屏幕上啥都没有,控制台也不报错,人直接裂开。改完之后,你只要说「我要一个精灵」,剩下那些组件框架自动帮你补齐。

这是个非常「产品经理思维」的改动。它解决的问题不是性能,是新手前 30 分钟的挫败感。而这个 30 分钟,恰恰是开源框架流失用户最狠的地方。Bevy 社区对这个改动的反馈相当正面,因为它把「你得先懂整个组装规则才能看到第一个画面」变成了「你先看到画面,再慢慢懂规则」。

但代价也很真实。隐式补全意味着你在调试时看到一堆自己没写过的东西,会懵:「这个组件哪来的?」「我删了它为什么又出现了?」社区里确实有人抱怨这让人更难理解底层。这就是易用性和可解释性之间的经典拉扯——你替用户做的每一个决定,都会变成他理解系统时的一块砖。

那 Flecs 为什么不直接抄?因为它已经有一套更底层的同类机制(预制体和继承关系,第 08 篇),能做同样的事,但需要你自己声明,不会凭空出现。这是舍与得:Flecs 选择了「显式」,换来了「可预测」。对做大型项目的人来说,可预测比顺手值钱;对刚上手的人来说,顺手比可预测值钱。所以 Bevy 抢的是新人,Flecs 守的是老手——两边都觉得自己是对的。

案例二:Minecraft 基岩版的 ECS——它根本不是性能工具,是内容接口。

Mojang 在基岩版引擎里用了实体组件架构,这件事被讨论得很多,但绝大多数人理解错了方向。大家一听 ECS 就自动关联「性能、海量实体」,其实基岩版搞 ECS 最核心的动机是另一个:给模组和附加内容的创作者一个稳定的数据接口。

你想,基岩版要跑在手机上,内存是紧的;要跨好几个平台,行为得一致;还要让第三方作者写附加包,改方块、改生物行为。这三件事凑在一起,传统的继承式实体设计会崩——你没法让一个外部作者在不改引擎代码的前提下,给「僵尸」加一个新能力。而组件化的做法让「能力」变成可插拔的数据,附加包作者写的是配置不是代码,引擎只负责把组件跑起来。

这个案例对理解 Flecs 的路线图太重要了。因为它说明:ECS 在商业产品里的最大价值,有时候不是跑得快,是成为一个让外部人也能安全扩展的边界。你回头看 Flecs 为什么死磕关系、预制体、序列化、以及那个声明式脚本——它在做的是同一件事:让「世界长什么样」变成可描述、可存档、可继承的数据,而不是一堆写死的代码。

所以下一次你看到社区有人喊「Flecs 该做编辑器了」,你可以自己回答他了:编辑器不是重点,重点是让编辑器能读懂的那层数据表达,那层东西 Flecs 已经在做了,只是做得比 Minecraft 更底层、更不友好。

顺带一个反面对照,来自 Unity DOTS。它从 2018 年前后开始以预览形态出现,中间接口改了好几轮,直到 2022 到 2023 年才真正推 1.0。这四五年里,多少团队兴奋地跳进去,又被下一次重写打回原形。这不是黑 Unity,这是个行业规律:任何一次架构级重构,成本都会从框架方转移到用户方。你把这条规律记住,第四条会用到。

第四层:你该怎么办——把别人的路线图换算成自己的预算

前三层讲的是世界长什么样,这一层讲你自己。我一直觉得,技术决策里最容易翻车的不是「选错了」,是「选的时候没算逃生成本」。所以在 Flecs 这个话题上,我给你的核心建议只有一句:把接触面收窄,把升级当成固定开销,把单作者风险当成已知条件而不是黑天鹅。

具体拆成三个动作。

动作一:给 Flecs 加一层「薄外套」。这条我要喊得大声一点。我见过最惨的项目,是世界里 600 多个文件直接调用框架接口,组件注册、查询构建、实体增删散落各处。这种项目一旦要升级大版本,等于全项目体检,谁都跑不掉。反过来,如果你把「创建实体、挂组件、跑查询、序列化」这些动作收拢到五六个文件里,外面全部走自己的接口,那么升级的时候你只需要改这几个文件——听起来很土,但这土办法救过我两次。

薄外套还有一个隐形好处:它会逼你想清楚「我到底用了 Flecs 的哪些能力」。很多人用了两年,其实只用了查询和组件,关系、预制体、脚本一样没碰。那你对路线图的依赖度其实很低,别人升级你睡觉。

动作二:按季度留升级预算。大概的刻度是这样:原型阶段不用留,改就改;小项目每季度留一两天;中型项目(几万行、有存档要兼容)每季度留三到五天,大版本年额外加两到四周。这不是浪费,这是保险。你交保险的时候也不觉得会出事对吧。

动作三:把「等一个特性」翻译成「自己造要多久」。这是最实用的一个思维转换。社区里天天有人等某个特性,一等一年。你算笔账:如果这个特性你自己在外围实现需要三天,那就别等,做。如果需要三个月,那再评估。绝大多数「我等的那个功能」,实际自建成本都低于等待带来的机会成本——因为等待的时间是不确定的,而不确定的时间最难排期。

还有个必须说破的事:单核心作者的项目,它的风险不在「作者跑路」,而在「作者的注意力被别的事占走」。Sander 是有全职工作的,Flecs 长期是他在业余和社区支持下推进。这不代表它不健康——恰恰相反,一个人能坚持这么多年,说明内驱力极强。但你要接受一个事实:它的节奏不由你控制,也不由 issue 投票控制。所以凡是「这个功能上了我就能做某某事」的规划,都要有个 B 计划。

最后一个反直觉的建议:别太早把所有筹码押在一个框架的下一代上。你现在能跑起来的东西,就是你能用的东西。路线图是给未来的自己看的,不是给现在的自己发工资的。

参数化设计工具:三张表,把感觉变成数字

空谈风险没意义,给你三张能直接填的表。数字都是区间和经验值,别当真理,当尺子。

表一:框架选型打分表(权重按你的项目类型调)

维度权重建议打分要点Flecs 参考分(1-5)
数据表达力(关系/继承/组合)20%(做复杂世界提到 30%)能不能自然表达「谁属于谁」「谁是谁的一种」5
长期稳定性(接口不乱变)15%大版本间隔、破坏性改动范围3
上手成本(团队平均到能干活的天数)15%C 风格接口 + 文档缺口要算进去2
工具链(调试、可视化、性能剖析)10%有没有能看见世界长啥样的东西3.5
跨平台/可嵌入15%(做非 PC 项目拉到 25%)浏览器、移动端、甚至无操作系统环境5
生态与背书(案例、社区规模)10%出事的时候能不能找到人问2.5
单点依赖风险15%核心作者数、可 fork 难度2

用法很简单:把你的项目往里套,如果「数据表达力」和「跨平台」这两项对你都不重要,那你大概率根本不需要 Flecs,去用更简单的那个,别硬上。

表二:升级成本估算表

项目特征成本系数说明
有这个薄封装层×0.3最关键的一项,能把成本砍掉一多半
重度依赖关系与预制体×2.0关系是历史上改动最深的部分
有线上存档/需要兼容旧数据×1.5序列化格式变了就是灾难
用了脚本层描述内容×1.8脚本语法变动影响所有内容作者
有较完整的自动化测试×0.6回归靠机器不靠人

基线参考:中型项目小版本迁移约 1–3 人日,大版本迁移约 15–40 人日。乘以上面的系数,你就得到一个能拿去跟老板要时间的数字。别小看这一步,我见过太多团队在升级时才发现要两周,然后开始骂框架。

表三:等特性 vs 自建 决策表

你的处境建议理由
自建 < 3 人日,且只影响一两个模块立刻自建等待的不确定性成本远高于三天的活
自建 3–15 人日,有封装层可隔离自建,并给社区提个案做出来还能反哺,双赢
自建 > 15 人日,且是核心路径先做原型验证,再决定是否换框架别赌路线图,赌自己的验证结果
只能等,因为涉及内核(比如存储层)设计降级方案,先跑起来内核特性你做不了,那就别让它卡住整个进度

这三张表合起来,其实就是一个「路线图风险定价器」。你不用每天都想它,立项时填一次,每次大版本发布时更新一次,够了。

双路径:你要的答案其实不一样

初级路径:我还没开始用,该不该上?

别管路线图,先做一周的试验。找三个你游戏里最关键、最不像教科书例子的场景——比如「装备附魔之后属性怎么叠加」「敌人小队里谁跟着谁走」——用 Flecs 写出来。一周后你会有两个很明确的感受:要么「这东西表达力真对味」,要么「我为什么要为这个绕这么多弯」。这两种感受都是有效答案,而且比读十篇路线图分析准。

如果试验通过,我再给你三句话总结这条路线的风险和机会:机会在于它的表达力和跨平台能力,五年内大概率没人能替代;风险在于它的接口会变、文档会缺、社区不大。你能不能接受「遇到问题要自己啃源码」这件事?能接受就上,不能接受就换。这不是技术问题,是性格问题。

进阶路径:我已经在用,未来 18 个月怎么排?

假设你手上是个跑了两年的项目,我的建议是这样排:

每季度的第一周,固定做一次「版本体检」——看 release note,判断有没有你必须跟的修复,没有就原地不动。别追新,追新是给库作者的热情,不是给你的项目。

每半年评估一次「我们用了哪些能力」。写一份清单,列清楚你实际依赖的内核特性有哪些。这份清单是你判断升级风险、甚至判断「要不要换框架」的唯一依据。没有它,你所有的判断都是感觉。

每年做一次「逃生演练」。找一天,把项目在上一两个大版本上编一次,看看能不能编译通过、跑不跑得动。听起来很怪,但这跟消防演习一个道理——真出事那天,你会感谢自己练过。

至于路线图上那些新特性,我的态度是:先看有没有人做出可用的东西,再看那个东西的代码质量,最后才考虑要不要引进来。作者说的方向是方向,社区做出来的东西才是你能吃进嘴里的饭。

争议:三个我必须说破的地方

坑一:把路线图当合同。这是最普遍也最致命的。开源项目的路线图是「意图声明」,不是「交付承诺」。你看到作者说「考虑在未来支持某某」,正确理解是「他觉得这事有意思」,而不是「明年 Q2 你能用上」。我见过团队因为一个「计划中」的特性推迟了整个立项,结果两年过去那个特性还在讨论区。合同的违约要赔钱,路线图的违约连道歉都没有。

坑二:被投票数带偏。前面说过,投票的人结构失衡。更麻烦的是,投票高不代表价值高——「希望有更好的文档」永远是高票,因为所有人都同意,但它不会让你的游戏更好玩。而「关系遍历在深层次下的性能」这种只有 5 个人关心的东西,才是真正决定框架天花板的。你要学会忽略那些「所有人都赞同」的诉求,去看那些「少数人很急」的诉求。

坑三:生态越大越好,是个错觉。很多人希望 Flecs 赶快把渲染、物理、UI 全包了,变成一个「C 语言版 Unity」。说句实话,我不希望。一个人撑起的框架,每多一个上层模块,内核的迭代速度就慢一分。EnTT 为什么能十年如一日地稳?因为它从第一天就拒绝了所有「顺手帮我加个 XX」的请求。边界感不是保守,是把有限的注意力花在别人替代不了的地方。

还有一个我自己也拿不准的争议:FlecsScript 到底该不该继续往前推。它的好处是让内容作者能参与,坏处是它把「框架」和「运行时」的界限搞模糊了。我的判断倾向是「应该做,但做得越薄越好」——它应该像一份可读的存档,而不是一个语言。但这个判断我留了余地,因为如果它能真的把设计和程序解耦,那价值就完全不一样了。这条我们可以在评论区吵。

FAQ

Q1:万一哪天作者不维护了,我是不是完了?

先给你个定心丸:Flecs 是单文件可嵌入的 C 库,没有一堆依赖链,这意味着它的「腐化速度」极慢。一个不更新的 Flecs 版本,三年后照样能编译、能跑。真正的风险不是它坏掉,是它停在一个有 bug 的版本上。所以对策很朴素:锁定一个你验证过的版本,把源码归档一份,确保你的构建不依赖外部网络。这就是你的保险单,成本几乎为零。

Q2:我该等下一个大版本再开始吗?

不该。这是我最想劝住的一种冲动。等你等到的那天,你会发现新版本又带来了新的不熟悉,你还是得重新学。用现在这个稳定版本把游戏做出来,比用未来的完美版本做规划,收益高一个数量级。何况大版本迁移的成本,你有薄封装层的话,本来就是可控的。

Q3:Flecs 会不会哪天忍不住做成引擎?

从公开表态看,短期内不会,边界划得很清楚。但你要警惕的不是「变成引擎」这种大转向,而是「一点一点吃进去」——今天加一个资源加载,明天加一个输入处理。这种侵蚀是无声的。我的建议是:你自己守住边界,无论框架给你多少东西,你都问一句「这东西该不该由它管」。框架心智的边界,其实是使用者帮它守住的。

Q4:GitHub 上那些高票请求,最后能实现几成?

没有准确数字,但可以给你一个观察规律:落在「内核」和「桥接」两圈里的,实现率相当高,只是慢;落在「上层建筑」那圈的,基本都会以「社区自己做了个库」的形式实现,而不是进核心。所以看到高票请求,先别激动,先把它归类到那三个圈里,你就大概知道结局了。

Q5:我该不该因为路线图从别的框架迁过来/迁走?

迁过来:如果你的痛点是「关系表达不出来」「要嵌到奇怪的环境里」「C/C++ 生态要统一」,值得。迁走:如果你的痛点是「我想要开箱即用的编辑器和渲染」「我团队没人愿意读源码」,那也值得,因为这是根本性的错配,不是版本能解决的。至于「因为那边路线图看起来更亮眼」——这条理由,一条都不值。

最后留个问题给你:如果三年后 Flecs 一个功能都没新增,只是变得更稳更快,你的项目会因此做不下去吗?如果答案是不会,那你其实已经不太需要关心路线图了。你需要的只是把封装层写好,然后安心做游戏。

文章标签
Flecs ECSEntity Component SystemC++ ECSArchetype ECSSparse Set ECSEnTTBevy ECSUnity DOTSECS 框架对比Flecs RelationshipsFlecs QueryFlecs Pipeline
更多专题全部专题
觉得有价值?点赞或收藏支持内容持续产出。
← 返回专题:Flecs ECS 游戏开发技术专题