扒光源码:这款 C++/WASM 2D 游戏引擎,凭什么让前端开发者放弃 JS?
扒光源码:这款 C++/WASM 2D 游戏引擎,凭什么让前端开发者放弃 JS?
最近翻到一个刚改名为 Estella 的 2D 游戏引擎仓库,不看 PR 稿,不看宣传页,直接扒源码和提交记录。今天只讲硬核事实,不黑不吹,看看它到底值不值得前端团队入坑。

一、先看底子:C++ 编译 WASM,不是 JS 硬扛
打开仓库一眼就能看到核心分层。底层是 C++ 写的渲染管线,编译成 WebAssembly。上层给开发者用的是 TypeScript SDK,提供「defineComponent」「defineSystem」「Query」这类类型安全接口。语言占比很诚实,TypeScript 73.4%,C++ 17.5%,剩下是脚本和工具链。
这就和普通 H5 引擎拉开差距。别人是 JS 全程解释执行。它是逻辑用 TS 写,渲染跑 WASM。复杂场景下,帧率能稳很多,不会因为 JS 执行阻塞画面。
对做微信小游戏的团队很友好。一套代码,直接发布浏览器和微信小游戏,不用两套逻辑。
二、ECS 架构:不是套壳,是真・数据驱动
提交记录里反复出现 ECS 相关重构。比如把「LocalTransform」和「WorldTransform」合并成单一「Transform」。还有大量「Query」遍历、组件绑定的优化。
这不是随便加个组件名字就叫 ECS。它是真按实体 – 组件 – 系统来设计。
-
实体就是 ID,不存逻辑 -
组件只存数据 -
系统按查询批量遍历更新
好处很实在。项目做大了,逻辑不会缠成一团。加功能不用改上帝组件,性能也更好控制。
对比很多引擎把逻辑塞在节点里,改一行炸一片。Estella 这种设计,长期维护成本低很多。
三、编辑器:真能用,不是玩具
最近提交很有料。
-
修复导入大量资源时编辑器崩溃 -
加了 AI 助手面板,支持聊天、工具调用、编辑器集成 -
优化资源收集和浏览器兼容
说明它不是只有底层 runtime。是带完整可视化编辑器的引擎。层级面板、检查器、资源浏览器全都有。不用手撸 JSON,不用记配置字段。对美术和策划友好,团队协作成本更低。
F5 一键预览,改完 TS 立刻看效果。开发节奏很顺。
四、细节里的工程诚意:不是堆功能
翻提交能看到很多务实优化。
-
修复物理模块位置 bug -
补全 Linux 下 glBlendEquation 加载 -
解决 WASM 集成里实体 FFI 绑定问题 -
统一模块拆分,把 6 个超大文件拆小
这些都是不性感但要命的点。很多引擎吹特性,却在跨平台、稳定性上挖坑。Estella 在一点点填坑。
自带 Spine 动画和物理支持。做 2D 动作、冒险、闯关类游戏,开箱就能用。不用自己集成第三方库,少踩一堆兼容雷。
五、它的短板与现实权衡
优点很清楚,问题也不回避。
-
生态年轻,社区和教程不多 -
只专注 2D,3D 能力基本没有 -
国内小众,遇到坑要自己查源码
反方观点也很合理。团队要的是快、稳、能发微信小游戏。不是要大而全的万能引擎。轻量化、强类型、WASM 性能,刚好切中中小团队痛点。先把核心场景做扎实,比堆无效功能更良心。
六、总结一下
能跑的烂代码也是好代码,但能长期迭代的干净架构更值钱。Estella 走的路线很清晰。
-
C++/WASM 打底,保证性能 -
TypeScript+ECS,保证开发效率与可维护 -
可视化编辑器 + 双平台发布,降低落地门槛
对前端转游戏、H5 小游戏、微信小游戏团队来说。它是一个少技术债、高可控、真工程化的选择。不炒作概念,不搞花活,老老实实把渲染、架构、工具链做稳。
在遍地套壳、水文满天飞的圈子里。这种靠源码说话的引擎,反而更值得长期关注。您可以去了解github.com/esengine/estella。
夜雨聆风