A C++ game framework built on SDL3 and SDL_GPU.
- Visual Studio 2022 with the v143 toolset.
shadercrossmust be on yourPATH. Lucky's HLSL shaders are cross-compiled to SPIR-V, DXIL, MSL, and JSON reflection at build time using theshadercrosscommand-line tool. The easiest way to obtain a Windows binary is from the unofficial nightly build mirror at nightly.link. Download an artifact, extractshadercross.exe, and place it in any directory on yourPATH.
-
Clone with submodules:
git clone --recurse-submodules https://github.com/jessechounard/Lucky.git -
Open
ProjectFiles/Lucky.slnin Visual Studio 2022 and build.
The static library (Lucky.lib) is written to Build/Output/<Configuration>/,
and the compiled shader artifacts to
Build/Output/<Configuration>/Content/Shaders/. Consumer projects link
against Lucky.lib and copy the Content/Shaders/ directory into their own
output as a post-build step.
The Lucky.Tests project is a console application that runs the unit tests
using doctest. After building the
solution, run:
Build\Output\Debug\Lucky.Tests.exe
You can also set Lucky.Tests as the startup project in Visual Studio and run
it with F5. Pass --help to see doctest's command-line options (filtering
by test name, listing tests, etc.).
All dependencies are included as git submodules in Dependencies/:
- SDL (zlib)
- SDL_shadercross (zlib)
- spdlog (MIT)
- HarfBuzz (Old MIT)
- GLM (MIT)
- nlohmann/json (MIT)
- dr_libs (Public Domain / MIT-0)
- stb (MIT / Public Domain)
- doctest (MIT) - test only
- SquirrelNoise5 (CC-BY-3.0 US) - vendored
See Dependencies/LICENSES.md for full license texts.
MIT License. See LICENSE.md.