Weird Engine is a simple yet unique game engine featuring:
- Custom OpenGL Renderer: Uses ray marching to render 2D Signed Distance Fields (SDFs).
- Physics Engine: Implements Position-Based Dynamics (PBD) with custom SDF-based collision detection.
- ECS Architecture: A fully custom-built Entity Component System (ECS).
- Navigate to
/CMake/create-project. - Place your header files (
.h) in the/includedirectory. - Place your source files (
.cpp) in the/srcdirectory.- You can create subfolders for better organization.
- Build witch CMake and run your project.
You'll need to install SDL3 dependencies: SDL3 Linux README
git rm --cached third-party/SDL
rm -rf .git/modules/third-party/SDL
rm -rf third-party/SDL
git submodule add https://github.com/libsdl-org/SDL.git third-party/SDL
Weird Engine includes generic scripts for building and deploying games directly to Anbernic handheld consoles running muOS over MTP. These scripts are located in scripts/anbernic/.
You can use these generic scripts to deploy any game built with Weird Engine without needing to copy the scripts to your game's folder. The scripts automatically detect your project's name, cross-compile it via Podman, package assets, generate launcher scripts, and push the files to the device.
- Podman installed on your machine (used to safely isolate the cross-compiler toolchain).
- The device must be connected to your PC via USB and mounted via MTP (e.g.,
mtp:/RG35XX-H/SD2).
To build and deploy a game to the console:
# General Usage
/path/to/weird-engine/scripts/anbernic/deploy-muos.sh <path_to_game_project> <mtp_base_path>
# Example: Deploying a game from its own directory
cd my-awesome-game
../weird-engine/scripts/anbernic/deploy-muos.sh . mtp:/RG35XX-H/SD2If you need to retrieve log.txt or screenshots from the device after running your game:
../weird-engine/scripts/anbernic/fetch-logs.sh . mtp:/RG35XX-H/SD2Logs will be saved to a timestamped folder inside your project's device-logs/ directory.