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.