C++/WebAssembly · TypeScript SDK · ECS

A fast 2D game engine
for the web

Estella pairs a first-class TypeScript SDK with a C++/WebAssembly rendering core, and ships a visual editor. Build once, deploy to web browsers and WeChat MiniGames.

The Estella editor

Fast

A C++ rendering pipeline compiled to WebAssembly — not interpreted JavaScript.

Type-safe SDK

defineComponent, defineSystem, Query, Commands, Res.

Data-oriented

An ECS core with a single cache-friendly component storage layer.

Cross-platform

One codebase, deployed to web browsers and WeChat MiniGames.

Visual editor

Scene hierarchy, inspector, and asset browser — no JSON editing.

Spine & Physics

Built-in Spine skeletal animation and physics support.

Write game logic in TypeScript

Declare what a system needs; Estella runs it over matching entities each frame.

const Speed = defineComponent('Speed', { value: 200 });

addSystem(defineSystem(
    [Res(Time), Query(Mut(LocalTransform), Speed)],
    (time, query) => {
        for (const [entity, transform, speed] of query) {
            transform.position.x += speed.value * time.delta;
        }
    }
));