
estella
工具高性能 2D 游戏引擎,TypeScript SDK + C++/WebAssembly 渲染核心 + 可视化编辑器。一份项目导出到 Web、桌面、微信小游戏、试玩广告和原生 iOS/Android
game-enginewebassemblyecswechat-minigame2dtypescriptwebglspine
详细文档
资源概述#
Estella 是一款高性能 2D 游戏引擎,由 TypeScript SDK 驱动,底层使用 C++/WebAssembly 渲染核心。它配备可视化编辑器(场景编辑器、属性检查器、资源浏览器),支持一份代码导出到 Web 浏览器、桌面应用、微信小游戏、可玩广告(Playable Ads)和原生 iOS/Android 应用。
核心特性#
- WebAssembly 渲染核心:C++20 编写的渲染管线编译为 WASM,性能远超纯 JS 方案
- ECS 架构:Entity-Component-System 数据导向设计,可扩展的游戏逻辑
- 可视化编辑器:场景层级、属性检查器、资源浏览器——无需手写 JSON
- 跨平台:一份项目 → Web / 桌面 / 微信小游戏 / 试玩广告 / 原生移动端
- Spine + 物理引擎:内置 Spine 骨骼动画和物理模拟
- Agent-native:编辑器是 MCP 服务器,内置 AI Agent,支持 Claude Code / Cursor 等工具直接驱动编辑器
项目数据#
| 指标 | 数值 |
|---|---|
| GitHub Stars | 481⭐ |
| Forks | 46 |
| 创建时间 | 2026-01-25 |
| 最后推送 | 2026-08-13(当日活跃) |
| 许可证 | Apache-2.0 |
| 主语言 | TypeScript |
| 渲染后端 | C++/WebAssembly (WebGL/WebGPU) |
| 编辑器平台 | Windows / macOS |
设计规范#
ECS 架构#
Estella 采用 Entity-Component-System 模式:
- Entity:轻量 ID,承载组件
- Component:纯数据,通过
defineComponent定义 - System:纯逻辑,通过
defineSystem定义,通过Query查询实体
import {
defineComponent, defineSystem, addSystem,
Query, Mut, Res, Time, LocalTransform
} from 'esengine'
// 定义组件
const Speed = defineComponent('Speed', { value: 200 })
const Health = defineComponent('Health', { current: 100, max: 100 })
// 定义系统
addSystem(defineSystem(
[Res(Time), Query(Mut(LocalTransform), Speed)],
(time, query) => {
for (const [entity, transform, speed] of query) {
transform.position.x += speed.value * time.delta
}
}
))
微信小游戏适配#
- WASM 核心模块需在小游戏环境中加载,注意包体限制
- 建议将 WASM 模块放入分包
- WebGL 渲染在小游戏 Canvas 上运行
- 触摸事件通过小游戏
wx.onTouchStart等适配
审核规范#
微信小游戏要求#
- 遵守微信小游戏内容审核规范
- 包体限制:主包 4MB,总包 20MB(含分包)
- WASM 模块需按微信小游戏引擎适配框架打包
- 性能要求:首屏渲染 <5s,内存 <200MB
开发指南#
安装#
- 从 estellaengine.com 下载编辑器
- 打开编辑器 → New Project → 选择路径 → Create
- 编辑器创建默认场景(含 Camera 实体)
创建游戏对象#
import { Commands, defineComponent } from 'esengine'
const Player = defineComponent('Player', {
name: 'string',
level: 'int',
})
// 在系统中创建实体
addSystem(defineSystem([Commands], (commands) => {
const entity = commands.spawn()
entity.addComponent(Player, { name: 'Hero', level: 1 })
entity.addComponent(LocalTransform, { position: { x: 0, y: 0 } })
}))
AI Agent 辅助开发#
Estella 编辑器内置 MCP 服务器,支持 AI 工具直接驱动:
- 在编辑器中启用 MCP Server
- 在 Claude Code / Cursor 中配置 MCP 连接
- AI 可以:创建项目、添加实体、编辑组件、进入播放模式、截图查看结果
常见陷阱#
- 包体过大:WASM 核心模块较大,需利用分包加载
- 小游戏 WASM 限制:微信小游戏对 WASM 有特定限制(如 SIMD 支持),需参考最新文档
- 调试困难:编辑器预览 vs 小游戏环境表现可能不同,需真机测试
- 早期阶段:API 可能频繁变动,生产使用需评估稳定性
生态资源#
官方资源#
| 资源 | 链接 |
|---|---|
| 官网 | estellaengine.com |
| GitHub | esengine/estella |
| DeepWiki | deepwiki.com/esengine/estella |
| Discord | discord.gg/sAX6PXZ9 |
| QQ 群 | 481923584 |
竞品对比#
| 引擎 | Stars | 小游戏支持 | 语言 | 编辑器 | 特点 |
|---|---|---|---|---|---|
| Estella | 481⭐ | ✅ 微信小游戏 | TypeScript + WASM | ✅ 可视化 | ECS 架构、Agent-native |
| Cocos Creator | 3.5K⭐ | ✅ 全平台 | TypeScript | ✅ 成熟 | 商业化引擎、社区庞大 |
| Laya | 2K⭐ | ✅ 微信小游戏 | TypeScript | ✅ | 性能优化好 |
| minigame-tuanjie | 173⭐ | ✅ Unity→微信 | C# | ✅ Unity | 官方适配方案 |
版本更新#
当前状态(2026-08)#
- 引擎处于积极开发阶段(2026-01 创建,7 天内多次推送)
- npm 包 estella v0.0.0(SDK 分发主要通过编辑器内嵌)
- 编辑器支持 Windows 和 macOS
- 核心功能已就绪:ECS、渲染、Spine、物理、编辑器、MCP
路线图#
- 更完善的微信小游戏导出流程
- 更多渲染特性(粒子系统、骨骼动画增强)
- 插件系统
- 移动端编辑器