Introduction
Estella is a lightweight 2D game engine with a TypeScript SDK powered by a C++/WebAssembly backend. It comes with a visual editor for scene editing and project management, and outputs games that run in web browsers and WeChat MiniGames.
Why Estella?
Visual Editor + TypeScript Scripting
Use the editor to create projects, place entities in scenes, and attach components visually. Write game logic in TypeScript — define custom components and systems that operate on scene entities:
import { defineComponent, defineSystem, addSystem, Query, Mut, Res, Time, Transform } from 'esengine';
const Speed = defineComponent('Speed', { value: 200 });
addSystem(defineSystem( [Res(Time), Query(Mut(Transform), Speed)], (time, query) => { for (const [entity, transform, speed] of query) { transform.position.x += speed.value * time.delta; } }));High Performance
Rendering and core systems are implemented in C++ and compiled to WebAssembly, delivering native-level performance with small binary sizes and fast load times.
Cross-Platform
Single codebase targeting web browsers and WeChat MiniGames with platform-specific adapters.
When to Use Estella
Estella is ideal for:
- 2D games targeting web browsers
- WeChat MiniGames
- Projects requiring small download sizes
- TypeScript developers wanting ECS architecture
Estella may not be the best choice for:
- 3D games (2D only)
- Desktop-only games (use a native engine)