VisualGMQ / NickelEngine

a game engine based on ECS
MIT License
53 stars 4 forks source link

NickelEngine

An opensource, data-oriented ECS game engine.

How-To-Build

use cmake:

git submodule update --init --recursive
cmake -S . -B cmake-build
cmake --build cmake-build

Under Windows, if cmake can't find SDL, you should set SDL2_ROOT to your SDL path:

cmake -S . -B cmake-build -DSDL2_ROOT=<your-sdl2-path>

in some system, you may want to copy needed dll to your output dir, use:

cmake -S . -B cmake-build -DNICKEL_COPYDLL=ON

to enable auto copy dlls.

Each program should run at project root path

WASM support

some unittest & demo can build under WASM and show in Web. use

emcmake cmake -S . -B cmake-build
cmake --build cmake-build <your-target>

to build one.

currently support targets are:

you can view these demos online

3rd Libraries

library description
SDL2 use to support create window, render context and basic input
gecs basic ECS framework
mirrow TMP framework, use to do dynamic/static reflection and serialization
stb_image use to loading images
Vulkan Vulkan1.3
dear-imgui use to support GUI in editor
miniaudio use to play audio cross platform
nanobench use to do benchmark
nameof use to get enum name convniently
freetype2 use to render ttf font
lunasvg use to render svg
rapidxml use to parse XML
tomlplusplus use to support toml file parse
esfw use to watch file changing in editor
easy_profiler use to profile
luau use to as script
LuaBridge3 use to bind cpp to lua/luau

editor icon: vscode-material-icon-theme

Features

Editor

snapshots

editor

gltf