Sokol + Lua = Soluna
A framework you can use to make 2D games in Lua with multithreading, living on Windows, Linux, macOS and modern Browsers (via WebAssembly).
It is built on top of sokol and leverages the power of ltask for multithreading.
You can download precompiled binaries for Windows, Linux, macOS and WebAssembly from the Nightly Releases page.
You can build Soluna from source by make for Windows and by luamake for all platforms. See actions for details.
- uses: actions/checkout@v5
with:
repository: cloudwu/soluna
ref: <a fixed commit hash to avoid breaking changes>
path: soluna
submodules: recursive
- uses: ./soluna/.github/actions/soluna
id: soluna
with:
soluna_path: soluna
- run: |
echo "Soluna binary is at ${{ steps.soluna.outputs.SOLUNA_PATH }}"
echo "Soluna WASM binary is at ${{ steps.soluna.outputs.SOLUNA_WASM_PATH }}"
echo "Soluna js glue is at ${{ steps.soluna.outputs.SOLUNA_JS_PATH }}"
You can easily run GitHub workflows locally through act via luamake.
Prerequisites:
- Docker (daemon running)
- act in
PATH - Python 3 in
PATH(used by local preview server forpages) unzipandtar(or equivalent tools available in your environment)
Examples:
luamake act pages
luamake act nightlyNotes:
luamake act pagesruns.github/workflows/pages.yml, extracts the generated pages artifact, and serves it locally athttp://127.0.0.1:8080/soluna/.luamake act nightlyruns.github/workflows/nightly.yml.- Use
PORTto change preview port (for example:PORT=9000 luamake act pages).
- Deep Future, a digital version of boardgame Deep Future.
Soluna is licensed under the MIT License. See LICENSE for details.