Tools

Every Tangy download includes the runtime, editor, asset converters, and game compiler. Source code for the engine is not included — you get the compiled tools ready to use. Export games for Linux or the 3DS family; Windows and macOS packaging is planned.

tangy — runtime

The game runtime for desktop development and play. Loads main.lua from a game directory over a disk VFS, opens a resizable window letterboxed to the logical 400×240 display, and runs at 60 Hz. On Linux this is how you make and play desktop games with keyboard input (arrow keys, Space, and so on — see the Lua API). The same projects can later be packed for the 3DS family.

./tangy examples/hello/main.lua
# or from inside a game folder:
./tangy main.lua

Escape or closing the window quits. On the Nintendo 3DS family, packaged games run as homebrew .3dsx with gamepad buttons.

tangy_editor — scene editor

ImGui tile scene editor for building .tngscn levels: new/load/save scene, four layers, palette and tileset loading, undo/redo, selection clipboard. Run it from a game directory so relative asset paths resolve.

cd examples/platformer
../../tangy_editor

tngpal — palette converter

Converts a PNG into a .tngpal (magic TNGP): up to 256 unique colours quantized to 15-bit. Games load the palette with palette:load.

tngspr — sprite converter

Converts indexed-colour Aseprite files to .tngspr (magic TNGS), sprites ≤64×64. Optional --trim drops blank columns.

tngspr [--trim] input.aseprite output.tngspr

tngtiles — tileset converter

Converts an indexed Aseprite sheet (canvas size multiples of 16) into .tngtiles (magic TNGT) on a 16×16 grid for tilemaps.

tngtiles input.aseprite output.tngtiles

tngogg — audio converter

Converts audio to 16 kHz mono OGG via ffmpeg for use with sound:play. Keep music and SFX as .ogg beside your Lua scripts.

tngc — game compiler

Packs a game directory into a shippable build. Export a Linux desktop ELF (default) or a Nintendo 3DS family .3dsx. Discovers or writes game.tngmanifest, embeds assets in a TNGB blob, and skips editor junk (imgui.ini, sessions, .git, build folders). Windows and macOS export targets are planned.

# Linux desktop game (keyboard playable)
tngc examples/hello -o hello_game --tangy-root . --tangy-build build

# Nintendo 3DS family homebrew
tngc examples/platformer -o platformer.3dsx --target n3ds --tangy-root .

Asset formats

Extension Role
.tngpal 15-bit palette (max 256 colours)
.tngspr Indexed sprite ≤64×64
.tngtiles Tileset / tile textures (16×16)
.tngscn Scene tile-id grid + tileset path
.tngmanifest Compact binary game manifest for packaging
.ogg Streamed audio (max 12 voices)