Skip to content

latest · main @ 69c4a50

ATMO EngineBuild 2D games, entity by entity.

A lightweight C++23 engine with an Entity Component System, Luau scripting and a built-in editor.

Why ATMO

Everything a 2D game needs, nothing in the way

Core

Entity Component System

Scenes are trees of entities built on Flecs. Components are plain data, registered once and serialized through reflection.

EntityTransformSprite2D
Architecture

Scripting

Gameplay in Luau

Attach a script to an entity and implement Create, Update and PhysicsUpdate. Bindings expose transforms, input and physics.

this:getTransform()
Luau API

Editor

A built-in editor

Compose scenes in the hierarchy, tune components in the inspector and play the game without leaving the editor.

HierarchyInspectorPlay mode
Get started

Addons

Extensible by design

Addons bring assets, Luau code or native libraries that receive the engine's core systems through AtmoAPI.

ATMO_REGISTER_ADDON()
Addons

Code

Script in Luau. Extend in C++.

Gameplay lives in small Luau scripts attached to entities. When you need more, an addon compiles to a native library loaded by the editor.

move_sprite.luau

luau
function Update(deltaTime)
    local transform = this:getTransform()
    if transform == nil then return end

    if Input.isPressed("D") then
        transform.position.x = transform.position.x + 100 * deltaTime
    end

    if Input.isPressed("Q") then
        transform.position.x = transform.position.x - 100 * deltaTime
    end
end

From assets/script/move_sprite.luau in the engine repository.

my_addon.cpp

cpp
#include "addon/addon.hpp"
#include <spdlog/spdlog.h>

using namespace atmo::addon;

ATMO_REGISTER_ADDON()
{
    spdlog::info("Hello world from My Addon addon!");
}

The entry point the editor generates for a new library addon.

Roadmap

Where ATMO is heading

  1. Foundations Shipped

    Engine core

    • ECS world on Flecs
    • SDL3 windowing, rendering and input
    • Resource manager and packed assets
  2. Alpha Shipped

    Editor

    • Scene hierarchy and inspector
    • Project file explorer
    • Play and stop from the editor
  3. Beta In progress

    Scripting and addons

    • Luau scripts on entities
    • Script error reporting
    • Addon templates and loading
    • 2D physics with Box2D
  4. Next Planned

    Export and art tools

    • Project export
    • Sprite drawing tools
    • Asset import and export
  5. 1.0 Planned

    Stable release

    • Stability and performance
    • Complete manual
    • Luau API reference

Released under the MIT License.