Skip to content

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)

Next Steps

  1. Install the editor
  2. Create your first game
  3. Learn about ECS