An open API service indexing awesome lists of open source software.

https://github.com/hazeliscoding/aether-engine

2D game engine with Lua scripting and a built-in editor.
https://github.com/hazeliscoding/aether-engine

2d-game-engine entity-component-system lua-scripting

Last synced: 4 days ago
JSON representation

2D game engine with Lua scripting and a built-in editor.

Awesome Lists containing this project

README

          

# Aether Engine

A 2D game engine built from scratch in **C++20**, with **SDL3** for platform/rendering,
**Lua** for game scripting, and a **Dear ImGui** editor. The long-term goal is a
Unity/Godot-class 2D workflow. Windows is the primary development target for now.

> **Status:** Milestone 1 — window + renderer + docked ImGui editor shell.

## Prerequisites (Windows)

You only need two things installed. Everything else (SDL3, Dear ImGui, ...) is
downloaded and built automatically by CMake on first configure.

- **Visual Studio 2026** (Community is fine) with the *Desktop development with C++* workload,
**or** the standalone *Build Tools for Visual Studio*.
- **CMake 3.24+** (VS ships one; a standalone install also works).
- A working internet connection for the **first** configure (dependencies are then cached).

## Build & run

From a normal PowerShell / terminal in the repo root:

```powershell
cmake --preset windows-vs # configure (downloads & builds SDL3 + ImGui the first time)
cmake --build --preset vs-debug # build (use vs-release for an optimized build)
./build/vs/bin/Debug/AetherEditor.exe
```

The Visual Studio preset does **not** require a developer command prompt. If you
prefer faster Ninja builds, run from a *Developer PowerShell for VS 2026* and use
the `windows-ninja` / `ninja-debug` presets instead.

Press **Esc** or close the window to quit. Use **View → ImGui Demo** to explore widgets.

## Project layout

| Path | What it is |
|------|------------|
| `CMakeLists.txt` | Top-level build: C++20 settings, warning flags, output dirs. |
| `CMakePresets.json` | Configure/build presets for VS 2026 and Ninja. |
| `cmake/dependencies.cmake` | FetchContent declarations (SDL3, Dear ImGui). |
| `engine/` | `aether` static library — window, main loop, renderer, ImGui integration. |
| `editor/` | `AetherEditor` executable — the ImGui editor shell. |

## Roadmap

See [`docs/ROADMAP.md`](docs/ROADMAP.md) for the full feature plan (ECS, Lua scripting,
scene serialization, physics, audio, tilemaps, the editor's scene/game viewport, and more).