Documentation

Tangy games are Lua scripts plus converted assets. Make desktop games with keyboard input on Linux or Windows, or export for the Nintendo 3DS family. Start with the examples, then dig into the API and tools. macOS export is planned.

Getting started (Linux)

  1. Download the Linux .tar.gz and extract it.
  2. Install or compile Aseprite if you will create art. Install system SDL2 if it is not already present.
  3. From the extracted folder, run an example:
    ./tangy examples/hello/main.lua
  4. Read the Lua API and open examples/*/main.lua to learn by editing.

Getting started (Windows)

  1. Download the Windows .zip and unzip it.
  2. Keep SDL2.dll (and the bundled MinGW DLLs) in the same folder as the .exe files — do not move the tools without those DLLs.
  3. Install or compile Aseprite if you will create art.
  4. Open a terminal in the extracted folder and run an example:
    tangy.exe examples\hello\main.lua
  5. Read the Lua API and open the Lua files under examples\ to learn by editing.

How scripts work

The same Lua works on Linux, Windows, and 3DS. There is no engine update / draw callback. Your entry file (main.lua by default) runs as a coroutine. Use wait(ms), engine:yield(), and engine:spawn(fn) to structure game loops. Input handlers are registered with input.button_pressed:connect and input.button_released:connect.

Target platforms

Games use a logical display of 400×240 @ 60 Hz (the New 3DS XL top-screen size). Tangy is for:

  • Linux desktops — develop with the Linux download; export standalone games with tngc (default --target desktop).
  • Windows desktops — develop with the Windows download; export a .exe with tngc --target windows.
  • Nintendo 3DS family homebrew — pack a .3dsx with tngc --target n3ds (from Linux or Windows tools; needs Docker for the 3DS cross-build).
  • macOS — planned.