Skip to content

ESEngine Documentation

Build high-performance games for the web with modern C++

Features

ECS Architecture

Data-oriented Entity-Component-System design for cache-friendly, high-performance game logic.

WebGL Rendering

OpenGL ES 2.0/3.0 compatible graphics pipeline optimized for WebAssembly.

Cross-Platform

Single codebase targeting Web browsers and WeChat MiniGames.

Lightweight

Minimal dependencies with optimized binary size for fast loading.

Quick Example

#include <esengine/ESEngine.hpp>
class MyGame : public esengine::Application {
protected:
void onInit() override {
auto player = getRegistry().create();
getRegistry().emplace<Position>(player, 0.0f, 0.0f);
}
void onUpdate(float dt) override {
for (auto [e, pos] : getRegistry().view<Position>().each()) {
pos.x += 100.0f * dt;
}
}
};
ES_MAIN(MyGame)

Next Steps

Installation

Set up your development environment with CMake and Emscripten.

Read the guide →

API Reference

Explore the complete API documentation generated from source.

Browse API →