25 releases

new 0.8.4 Apr 16, 2024
0.8.3 Dec 12, 2023
0.8.2 Sep 26, 2023
0.7.8 Jul 24, 2023
0.1.2 Oct 6, 2020

#559 in Command line utilities

MIT/Apache

260KB
3.5K SLoC

adam

I am thy creature: I ought to be thy Adam, but I am rather the fallen angel, whom thou drivest from joy for no misdeed. -- Frankenstein's Monster in Frankenstein by Mary Shelly

adam is a command-line utility for compiling GameMaker projects on Windows and macOS. Invoking adam is trivial:

adam run

This will compile your project, run it, and give you stdout ("show_debug_message") with colorization and links. adam supports compiling with the VM (default) and the YYC (by passing in --yyc). adam also supports faster recompilation than GameMaker does, so if users recompile a game without making changes, their game will instantly load, without invoking the compiler at all. This is especially useful, since adam easily allows you to run multiple instances of your game at the same time on your machine.

adam will place all its generated artifacts within a folder relative to the working directory -- by default, it will use "target" as its output output. It is highly advised that you add your output directory to your .gitignore.

COMMANDS

run: Builds and runs the project.

build: Builds a project without running it (but will report compile errors)

release: Builds a zip of the project (only available for users with an Enterprise license)

clean: Cleans the output directory

test: Runs the game after setting user-defined environment variables. See the config file guide for more information.

You can also run adam help to see a more detailed version of the above.

INSTALLATION

The best way to install adam is through cargo:

cargo install adam

You can get cargo by install Rust.

CHANGELOG AND ROADMAP

Please see the CHANGELOG for release history, and the ROADMAP for planned features.

CUSTOMIZATION

You will likely need to customize an adam command for most usages. To see CLI options, simply run adam run --help:

Of special note, please see --yyc, which will allow users to compile using the YYC, and -c, which allows users to pass in a configuration.

However, passing in numerous values every compile can become tiresome. To support this, users can create a config file in either JSON or TOML, where these options can be specified. To create an adam configuration file, please follow this guide.

CHECK

Running adam check will invoke scripts if you set up them up in your configuration file. These scripts will also have the following environment variables set:

Name Value
ADAM_CHECK 1
ADAM_YYC 0 or 1
ADAM_CONFIG String
ADAM_VERBOSITY Number
ADAM_OUTPUT_FOLDER String
ADAM_IGNORE_CACHE Number

LICENSE

Dual-licensed under MIT or APACHE 2.0.

Dependencies

~30–44MB
~492K SLoC