Tools
Every Tangy download includes the runtime, editor, asset converters, and game compiler — ready to use for making games. Export for Linux, Windows, or the 3DS family; macOS packaging is planned.
tangy — runtime
Run and play your game while you build it. Point it at your main.lua; it opens a
resizable window at the logical 400×240 size and runs at 60 Hz. On desktop you
play with the keyboard (see the Lua API). The same
project can later be packed for the 3DS family. Escape or closing the window quits.
Linux
./tangy examples/hello/main.lua
# or from inside a game folder:
./tangy main.lua Windows
tangy.exe examples\hello\main.lua
REM or from inside a game folder:
tangy.exe main.lua
On Windows, keep SDL2.dll next to tangy.exe. Packaged 3DS games use
the console buttons instead of a keyboard.
tangy_editor — scene editor
Build tile levels visually: new/load/save scenes, four layers, palette and tileset loading, undo/redo, and a selection clipboard. Run it from your game folder so asset paths resolve.
Linux
cd examples/platformer
../../tangy_editor Windows
cd examples\platformer
..\..\tangy_editor.exe tngpal — palette converter
Turn a PNG palette image into a Tangy palette file your game can load with
palette:load (up to 256 colours).
Linux
./tngpal input.png output.tngpal Windows
tngpal.exe input.png output.tngpal tngspr — sprite converter
Convert indexed-colour
Aseprite art into Tangy
sprites (max 64×64). Optional --trim drops blank columns. Load them in Lua with
sprite:load.
Linux
./tngspr [--trim] input.aseprite output.tngspr Windows
tngspr.exe [--trim] input.aseprite output.tngspr tngtiles — tileset converter
Convert an indexed Aseprite sheet (canvas size multiples of 16) into a Tangy tileset on a 16×16 grid for tilemaps and the scene editor.
Linux
./tngtiles input.aseprite output.tngtiles Windows
tngtiles.exe input.aseprite output.tngtiles tngogg — audio converter
Convert music and sound effects to OGG for sound:play (uses
ffmpeg on your PATH). Keep the .ogg files next to
your Lua scripts.
Linux
./tngogg input.wav output.ogg Windows
tngogg.exe input.wav output.ogg
On Windows, install ffmpeg and ensure ffmpeg.exe is available in a terminal before
running tngogg.exe.
tngc — game compiler
Package your finished game for others to play. It picks up your game folder, skips editor leftovers, and writes a single playable output. Desktop packaging needs a Tangy source tree and a matching build directory (same limitation on Linux and Windows). macOS export is planned.
Linux — desktop game
./tngc examples/hello -o hello_game --tangy-root . --tangy-build build Windows — desktop .exe
tngc.exe examples\hello -o hello_game.exe --target windows --tangy-root . --tangy-build build
On Windows, after building Tangy with CMake, pass the Windows build directory (often
build). From Linux you can cross-pack a Windows game with
--target windows and --tangy-build build-windows after
scripts/build-windows-mingw.sh.
Nintendo 3DS family .3dsx
# Linux
./tngc examples/platformer -o platformer.3dsx --target n3ds --tangy-root .
# Windows (Docker required for the 3DS toolchain)
tngc.exe examples\platformer -o platformer.3dsx --target n3ds --tangy-root . What you’ll work with
You don’t need to know how Tangy’s files are stored under the hood — only which tools produce what your Lua scripts load:
| You make… | With… | Then in Lua… |
|---|---|---|
| A colour palette | tngpal | palette:load(...) |
| Sprites | tngspr from Aseprite | sprite:load(...) |
| Tilesets | tngtiles from Aseprite | Used by scenes / the editor |
| Levels / scenes | tangy_editor | scene:load(...) |
| Music & SFX | tngogg | sound:play(...) |
| A shippable game | tngc | — |