Catalog · How the catalog works
engine
Engine Official
- ★ 1 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
⚔️ Valkyrie Engine
Powerful, flexible, and performance-focused 3D game engine for the web and native platforms.
Overview
Valkyrie Engine is a cross-platform game engine targeting desktop, mobile, and embedded devices. It combines a C++17 core with Pascal/Lazarus tooling for game-specific subsystems, and ships a static website + optional WordPress theme for its documentation site.
Project structure
engine/
????????? CMakeLists.txt # Root build ??? platform detection, toolchain
????????? sb_rpg/ # SamuraiBabel RPG ??? main C++ game project
??? ????????? CMakeLists.txt
????????? ekron_ccg/ # Ekron CCG ??? Lazarus/Pascal card game
??? ????????? CMakeLists.txt
????????? ekron_rpg/ # Ekron RPG ??? C++ RPG subproject
??? ????????? CMakeLists.txt
????????? ekron-realms/ # Ekron Realms ??? adventure game subproject
??? ????????? CMakeLists.txt
????????? kcc/ # KCC ??? Kayte C Compiler (custom language toolchain)
??? ????????? CMakeLists.txt
????????? valkyrie-site/ # Documentation website
????????? build.pl # Static site compiler (Perl, no deps)
????????? build.conf # Site configuration
????????? src/ # Pages, partials, SCSS, JS, dataSupported platforms
| Platform | Architecture | Status |
|---|---|---|
| macOS 11+ | arm64 (Apple Silicon) · x86_64 · Universal | ✅ Primary |
| iOS 18+ | arm64 | ✅ |
| Android | arm64-v8a · armeabi-v7a · x86_64 | ✅ |
| Windows 7+ | x86_64 | ✅ |
| Windows on ARM | ARM64 (Win10+) · ARMv7 (Win8+) | ✅ |
| Linux | AMD64 · ARM64 (aarch64) | ✅ |
| GNU/Hurd | AMD64 · aarch64 (experimental) | 🧪 |
| Anbernic handheld | ARM64 / Rockchip | ✅ |
Requirements
All platforms
- CMake 3.21+
- C++17 compiler (Clang 12+ recommended on macOS, GCC or Clang on Linux, MSVC or MinGW-w64 on Windows)
Pascal/Lazarus subprojects (ekron_ccg)
- FreePascal 3.2.2+ — freepascal.org
- Lazarus 2.0+ — lazarus-ide.org
macOS
xcode-select --install # Xcode Command Line Tools
brew install cmake sdl2 sdl2_image sdl2_ttf
brew install --cask lazarus # optional — for ekron_ccgLinux (Debian/Ubuntu)
sudo apt install build-essential cmake clang libsdl2-dev libsdl2-image-dev
sudo apt install fp-compiler lazarus # optional — for ekron_ccgWindows
- MSYS2 with
mingw-w64-ucrt-x86_64-gccandmingw-w64-ucrt-x86_64-SDL2 - Or Visual Studio 2022 with Clang/LLVM toolset
- Optional: WinLibs standalone MinGW-w64
Building
# Clone
git clone https://codeberg.org/ringsce/engine.git
cd engine
# Configure (macOS Apple Silicon — default)
cmake -B build -DCMAKE_BUILD_TYPE=Release
# Build
cmake --build build -j$(nproc 2>/dev/null || sysctl -n hw.logicalcpu)Common configure options
| Flag | Default | Description |
|---|---|---|
CMAKE_BUILD_TYPE |
Release |
Debug / Release / RelWithDebInfo |
CMAKE_OSX_ARCHITECTURES |
arm64 |
x86_64 or arm64;x86_64 for Universal |
APP_NAME |
Engine |
Override the root executable name |
USE_SDL3 |
OFF |
Prefer SDL3 over SDL2 |
USE_QT6 |
ON |
Enable Qt6 GUI (desktop only) |
BUILD_TOOLS |
ON |
Build developer tools |
USE_MoltenVK |
ON |
Use MoltenVK on macOS/iOS |
macOS Universal Binary
cmake -B build \
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
-DCMAKE_BUILD_TYPE=Release
cmake --build buildiOS (Xcode)
cmake -B build-ios \
-GXcode \
-DCMAKE_SYSTEM_NAME=iOS \
-DCMAKE_OSX_DEPLOYMENT_TARGET=18.0 \
-DCMAKE_OSX_ARCHITECTURES=arm64
cmake --build build-ios --config Release -- -sdk iphoneosAndroid
export ANDROID_NDK=$HOME/Library/Android/sdk/ndk/25.2.9519653
cmake -B build-android \
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=arm64-v8a \
-DANDROID_PLATFORM=android-24 \
-DCMAKE_BUILD_TYPE=Release
cmake --build build-androidWindows (MinGW-w64 via MSYS2)
cmake -B build -G"MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
cmake --build buildCross-compile to GNU/Hurd
cmake -B build-hurd \
-DCMAKE_SYSTEM_NAME=GNU \
-DCMAKE_C_COMPILER=x86_64-gnu-gcc \
-DCMAKE_SYSROOT=/cross/x86_64-gnu \
-DMACH_INCLUDE_DIR=/cross/x86_64-gnu/usr/include
cmake --build build-hurdSubprojects
sb_rpg — SamuraiBabel RPG
C++17 RPG built on SDL2/SDL3 with Vulkan/Metal rendering, optional Qt6 GUI, and KCC scripting.
cmake -B build -DAPP_NAME=SamuraiBabel
cmake --build buildekron_ccg — Ekron Card Game
Free Pascal / Lazarus collectible card game. Requires FPC 3.2.2+ and lazbuild.
# LCL desktop build (via lazbuild)
make ccg_desktop
# SDL2 build (via fpc directly — lazbuild has no CLI define flags)
make ccg_sdl
# Cross-compile to Windows x86_64
# (requires fpc cross-compiler for x86_64-win64)
make ccg_win64ekron_rpg — Ekron RPG
C++ RPG with SDL2/SDL3 backend and DirectX 9 support on Windows.
ekron-realms — Ekron Realms
Adventure game subproject.
kcc — Kayte C Compiler
Custom C-like compiler targeting Valkyrie Engine scripting. Requires GCC + GNU binutils on AMD64 platforms; aarch64 builds the base compiler only.
Documentation website
The docs site is a static site compiled from valkyrie-site/ by a single-file Perl script — no Node.js, npm, or build system required.
cd valkyrie-site
# Production build (minified, cache-busted assets)
perl build.pl --clean
# Development build (relative paths, works from file://)
perl build.pl --env development --serve
# → http://localhost:4000
# Generate WordPress theme
perl build.pl --clean --wp
# → dist/wp-theme/valkyrie-engine.zipSite CLI reference
| Command | Description |
|---|---|
perl build.pl |
Production build |
perl build.pl --clean |
Delete dist/ and rebuild |
perl build.pl --env development |
Dev build, file:// compatible |
perl build.pl --serve |
Built-in HTTP server on port 4000 |
perl build.pl --watch --serve |
Watch + serve |
perl build.pl --check |
Validate links, SEO, alt text |
perl build.pl --wp |
Generate WordPress theme zip |
perl build.pl --new-page NAME |
Scaffold a new page |
WordPress theme
perl build.pl --clean --wpGenerates dist/wp-theme/valkyrie-engine.zip — a complete, installable WordPress theme.
Install: WP Admin → Appearance → Themes → Add New → Upload Theme → activate.
Pages (/docs/, /examples/, /plugins/, /community/) are routed automatically via template_include — no WordPress pages needed.
KCC — Kayte C Compiler
KCC is a lightweight C-like compiler used for in-engine game scripts.
cd kcc
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/kcc mygame.k -o mygameGCC + GNU binutils are detected automatically and their paths baked into the compiler at build time. On aarch64 only the base compiler is built (no binutils requirement).
Contributing
# Fork, then clone your fork
git clone https://codeberg.org/ringsce/engine.git
cd engine
# Create a feature branch
git checkout -b feature/my-thing
# Build and test
cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build
# Open a pull requestGood first issues are tagged good first issue on GitHub.
License
MIT — see LICENSE for details.
Built by the Valkyrie team and contributors worldwide.

