▶_MiniApp Toolkit

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 Stars481⭐
Forks46
创建时间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 查询实体
code
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

开发指南#

安装#

  1. estellaengine.com 下载编辑器
  2. 打开编辑器 → New Project → 选择路径 → Create
  3. 编辑器创建默认场景(含 Camera 实体)

创建游戏对象#

code
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 工具直接驱动:

  1. 在编辑器中启用 MCP Server
  2. 在 Claude Code / Cursor 中配置 MCP 连接
  3. AI 可以:创建项目、添加实体、编辑组件、进入播放模式、截图查看结果

常见陷阱#

  1. 包体过大:WASM 核心模块较大,需利用分包加载
  2. 小游戏 WASM 限制:微信小游戏对 WASM 有特定限制(如 SIMD 支持),需参考最新文档
  3. 调试困难:编辑器预览 vs 小游戏环境表现可能不同,需真机测试
  4. 早期阶段:API 可能频繁变动,生产使用需评估稳定性

生态资源#

官方资源#

资源链接
官网estellaengine.com
GitHubesengine/estella
DeepWikideepwiki.com/esengine/estella
Discorddiscord.gg/sAX6PXZ9
QQ 群481923584

竞品对比#

引擎Stars小游戏支持语言编辑器特点
Estella481⭐✅ 微信小游戏TypeScript + WASM✅ 可视化ECS 架构、Agent-native
Cocos Creator3.5K⭐✅ 全平台TypeScript✅ 成熟商业化引擎、社区庞大
Laya2K⭐✅ 微信小游戏TypeScript性能优化好
minigame-tuanjie173⭐✅ Unity→微信C#✅ Unity官方适配方案

版本更新#

当前状态(2026-08)#

  • 引擎处于积极开发阶段(2026-01 创建,7 天内多次推送)
  • npm 包 estella v0.0.0(SDK 分发主要通过编辑器内嵌)
  • 编辑器支持 Windows 和 macOS
  • 核心功能已就绪:ECS、渲染、Spine、物理、编辑器、MCP

路线图#

  • 更完善的微信小游戏导出流程
  • 更多渲染特性(粒子系统、骨骼动画增强)
  • 插件系统
  • 移动端编辑器