Inspired by NixOS, Nixie is a declarative, single-file driven 2D game prototyping engine.
In this engine, there are no complex class hierarchies or scene managements. The entire game state, logic, and asset mapping are defined within a single Lua Table.
- Declarative — Game as Data. Describe what the game state should be, not how to process it.
- Single File — All configurations, entity definitions, and update logic exist in one file. Easy to share, easy to version control.
- Thin — Built on a C++ and Raylib backend, interacting with Lua via Sol2.
- Prototype First — Designed for Game Jams and rapid gameplay verification. Write games like you write configuration files.
- Raylib - Simple and easy-to-use graphics library
- Sol2 - C++ ↔ Lua binding library
- Lua 5.4 - Scripting language
Note: All dependencies are automatically downloaded via CMake FetchContent during build.
- CMake 3.16+
- C++17 compatible compiler (GCC 8+, Clang 7+, MSVC 2019+)
- Ninja (recommended) or Make
Linux additional packages:
# Debian/Ubuntu
sudo apt install build-essential cmake ninja-build libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgl1-mesa-dev
# Fedora
sudo dnf install gcc-c++ cmake ninja-build libX11-devel libXrandr-devel libXinerama-devel libXcursor-devel libXi-devel mesa-libGL-devel
# Arch
sudo pacman -S base-devel cmake ninja libx11 libxrandr libxinerama libxcursor libxi mesaLinux:
# Configure (Debug)
cmake --preset linux-debug
# Build
cmake --build --preset linux-debug
# Or Release build
cmake --preset linux-release
cmake --build --preset linux-releaseWindows (with Ninja):
cmake --preset windows-debug
cmake --build --preset windows-debugWindows (with Visual Studio):
cmake --preset windows-msvc-debug
cmake --build --preset windows-msvc-debugThis project is licensed under the MIT License - see the LICENSE file for details.