lua game toolkit
C++ JavaScript Lua C Makefile Java Other
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
android android: dont wait forever for iap service May 18, 2017
benchmarks update benchmark Mar 6, 2016
doc add stencil_clear_value field to am.window and am.framebuffer Aug 12, 2018
examples fix bug with am.cull_face node where winding was reversed Jul 31, 2018
html include amulet.wasm in web editor exports Jul 16, 2018
lua add default tags to nodes that were missing them. add face field to a… Jul 31, 2018
scripts try to fix appveyor build Aug 17, 2018
site remove reddit link from site for now (unused) Sep 25, 2016
src upgrade luajit to 2.0.5 Aug 17, 2018
tests update a test case Nov 14, 2017
third_party add 64bit pre-build angle libs Aug 17, 2018
tools separate license (CC-BY-NC) for examples/ and doc/ Jan 6, 2016
.appveyor.yml try to fix appveyor build Aug 17, 2018
.gitignore more android stuff Apr 20, 2017
.travis.yml use wasm for html backend (travis test build 5) Jul 15, 2018 fix mingw build Aug 17, 2018
LICENSE update copyright year Nov 27, 2017
Makefile add 64bit pre-build angle libs Aug 17, 2018 update README Aug 21, 2018
cachegrind_amulet add cachegrind script Feb 16, 2016 update default font gen script to use amulet pack Jan 20, 2016
logo.png add Sep 23, 2015
logo_notext.png windows installer script Dec 14, 2015
profile_amulet add profiling script Feb 16, 2016 add -MT opt for multi-threaded malloc on windows, add sc… May 16, 2018
valgrind.sup audio_buffers Jan 6, 2016
valgrind_amulet rename vamulet script to valgrind_amulet Feb 16, 2016

Amulet is a Lua-based audio/visual toolkit designed for small games and experimentation.

Here's what a minimal Hello World! looks like in Amulet:

am.window{}.scene = am.text("Hello World!")

Supported platforms

It currently runs on the following platforms:

  • Windows 7+
  • Mac OS X 10.6+
  • Linux
  • iOS
  • HTML5

The engine technically works on Android too, but exporting to Android is not yet supported.

Binary distributions

These are available from



Reporting bugs or requesting features

I don't use the github issue tracker. Instead please email bug reports or feature requests to me at ian -at-, or use the forum.

Building from source


Make sure you have gcc and g++ installed, then do:


If you get errors, you may also need to install additional dev packages, such as as libgl1-mesa-dev (for OpenGL headers) or libasound2-dev (for audio support in SDL).


Install the command line developer tools (clang, clang++), then do:



You will need to install MinGW and MSYS as well as a Microsoft Visual C compiler.

You will need to create your own version of msys.bat with something like the following at the top:

call "%VS120COMNTOOLS%vsvars32.bat" >NUL:

(VS120COMNTOOLS may be different depending on which version of Visual Studio you're using.)

This sets up the Visual Studio command line environment.

Then, from the msys shell, do:


Cross compiling

It's also possible to cross-compile to various platforms (e.g. HTML5, iOS, MinGW). See the files .travis.yml, scripts/appveyor.bat and scripts/ for examples of how to do this.


Amulet uses or borrows code and ideas from the following projects:

The HTML editor uses code and ideas from:

The Amulet logo was designed by Bethany Wilksch.

Build status

System Status
Travis (Linux, OSX, iOS, MinGW) Build Status
Appveyor (MSVC, Emscripten) Build Status