Ember
A C++ 20 'game engine' built with SDL3 with wide platform support.
Ember build docs

Ember is a lightweight and modular 2D/3D game engine/framework written in C/C++, designed to be simple yet powerful. It aims to provide developers with a flexible **_cross-platform_** solution to build 2D/3D games and applications.

⚠️ Note: Currently has no Editor and probably never will.

✨ Features

  • 📱 Cross-Platform:
    • Windows
    • Linux
    • macOS
    • Android
    • iOS
    • Web (via WebGL)
  • 🎨 Graphics Backend:
    • OpenGL/ES (Windows, Linux, macOS, Android, Web)
    • Metal (macOS, iOS) **(coming soon)**
  • 🛠️ Lightweight Core: Minimal dependencies for fast builds and portability.
  • 🎮 Input, Audio, and Texture Management: Simple and extensible input, audio, and texture management.

📂 File Types

  • 📸 Image: PNG, JPEG, WEBP, GIF, TGA, BMP, etc...
  • 🔠 Font: TTF, SDF, etc...
  • 🔈 Audio: WAV, MP3, FLAC, OGG, etc...
  • 🟥 Model: TODO

📦 Dependencies


📱 Supported Platforms Overview

Platform Backend Status
Windows OpenGL 3.3 ✅ Fully supported
Linux OpenGL 3.3 ✅ Fully supported
MacOS OpenGL 3.3 ✅ Fully supported
Android OpenGL ES 3.0 ✅ Fully supported
iOS OpenGL ES 3.0 ✅ Fully supported
Web WebGL 3.0 ✅ Fully supported
iOS Metal 🚧 Coming soon
MacOS Metal 🚧 Coming soon

⚠️ Note: Metal backend is planned for future versions.

</blockquote>

📚 Documentation & Examples

Documentation Examples


🛠️ Build System

Ember Engine uses cmake as its build system and supports the following toolchains:

  • Visual Studio (Windows)
  • GCC / Clang (Linux / macOS)
  • Android NDK (Android)
  • Xcode (macOS / iOS)
  • Emscripten (WebGL)

🏗️ Building

git clone https://github.com/vsaint1/ember_engine.git
cd ember_engine
git submodule update --init --recursive
cmake --list-presets
emcmake cmake --preset=web-release
emmake cmake --build build/webgl/release
python3 -m http.server -b 0.0.0.0 8000

⚠️ Disclaimer

This project was created for educational and personal purposes. It is not intended for commercial use.


📝 License

This project is distributed under the MIT License.