Flecs 的下一代路线图:作者规划、社区期望与未来架构演进 Flecs Roadmap & What's Next
GitHub 上票数最高的需求,往往恰恰是 Flecs 不该做的事——读懂作者的取舍逻辑,比追 issue 列表更能保住你的项目
为什么「路线图」是你选型时该看的第一块基石
先说个我自己的糗事。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 的团队 |
| Flecs | C 语言世界里最完整的 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 一个功能都没新增,只是变得更稳更快,你的项目会因此做不下去吗?如果答案是不会,那你其实已经不太需要关心路线图了。你需要的只是把封装层写好,然后安心做游戏。