Welcome
Welcome to the Catspeak documentation, this page is extremely work-in-progress. See the "Library Reference" tab for the library documentation.
ยง Navigating the Book
Home: Basic information about how to use the Catspeak library.
Library Reference: Documentation for the library functions.
Dubiously Undocumented: Weird deprecated behaviour and compatibility documentation.
ยง Features
If you run into any issues using this project, please create a GitHub issue or get in contact on Discord through the GameMaker Kitchen server.
๐ Minimal Setup Required
Self-contained and ready to use after installation.
No need to place a persistent God Object in the first room of your game!
โฏ Seamless GML-Catspeak Interoperability
Call GML code from Catspeak.
Call Catspeak code from GML.
Familiar syntax inspired by GML and JavaScript.
๐โโ๏ธ Performant Runtime
Optimising compiler generates performant code capable of competing with pure GML implementations.
At best, Catspeak code will be just as fast as GML.
On average, Catspeak code will be 5x slower than GML.
๐ฝ Cross-platform
Implemented in pure GML.
No external dependencies or platform-specific DLLs.
Mods should work on any target platform. (Tested on VM, YYC, HTML5, and others)
๐จ Customisable, Sandboxed Runtime Environment
Modders cannot gain access to parts of your game you don't want them to.
Expose only the functions and resources you feel comfortable with.
Impossible for modders to execute malicious code by default.
Detects infinite loops and recursion so the sly
while true { }
doesn't freeze your game, whether intentionally or unintentionally.
๐ช Built for Power Users
Full compiler back-end documented and available for experimentation.
Pre-compile your scripts to JSON, and cache them for later. Skip straight to code generation.
Parse your own domain-specific language into Catspeak IR, then let the code generator turn that into a GML compatibile representation:
A custom UI language which supports running user-defined functions as button events.
A custom data-specification language where certain keywords act as calls to GML functions.
A simple shell-script language for a developer console.
A custom scripting language for a programming game.
๐ Cute Name and Mascot
ยง Disclaimer
Catspeak is currently a solo project (by katsaii), and is being maintained in my free-time. However, if you want to make a suggestion or report a bug, please do report it on GitHub and I will try to review it as soon as possible!