Windows

A Lua project needs no compiler. Download the Lua bundle for windows-amd64, unzip it, and put your script where the executable looks for it:

TEXT
my_game/
├── data/
│   └── main.lua
└── natiny.exe
Shell
natiny.exe

natiny.exe mounts data/ from beside itself and runs main.lua out of it. Everything in that folder is then named from inside it, so resource.load("fonts/roboto.ttf") reads data/fonts/roboto.ttf. Relative paths inside the script mean the same thing whichever directory you started it from. Name another file to run that one instead:

Shell
natiny.exe data/experiment.lua

That mounts the folder holding the script - here data/ again - so the script reads its files exactly as main.lua would have.

Dropping a .lua file onto the executable does the same thing.

The executable also packs a folder for release, which needs no script:

Shell
natiny.exe pack data

data/ becomes an index and a few .pack files that the game mounts in its place. See assets, packs and mods.

To ship, ship the folder. natiny.exe needs nothing else installed: every library it uses is part of Windows.