AppsWorksSource available
Target: Instance

Instance: A Rust-based GameMaker 8.1 IDE and Engine

Platform
Windows, macOS, Web (Linux buildable from source)
Outcome
Works
Instance: An open-source visual editor and game engine for .gmk and .gm81 projects.
Image: Source: raw.githubusercontent.com

Evidence at a glance

Loading source evidence…

What was done

Instance is a clean-room implementation of a GameMaker 8.1-compatible IDE and engine written in Rust. It supports visual editing, GML scripting, and cross-platform playback, including WebAssembly, by replicating legacy engine behaviors through black-box testing and specifications.

Instance is an open-source game development environment designed to support .gmk and .gm81 project files. The project provides a full IDE, including sprite, sound, and room editors, alongside a runtime capable of executing GML scripts and drag-and-drop actions. The author reports that the engine was built from scratch in Rust, with no existing engine code disassembled, decompiled, or copied. To ensure compatibility with legacy engine quirks—such as specific event ordering, random number generation, and audio latency—the author documented engine behaviors through black-box observation and wrote specifications. The code was then implemented from those specifications in Rust. The project utilizes instance-blackbox to maintain compatibility via black-box test projects. Development was assisted by Claude Opus 5.5, which the author credits in commit logs for co-authoring various components. While the core engine was developed rapidly, the author notes that significant time was dedicated to refining the implementation to match the specific, undocumented behaviors of the original engine. Instance supports Windows, macOS, and browser-based execution via WebAssembly. Linux support is currently limited, though the author notes it should be buildable from source.

Sources: Source 1, Source 3

From the source

Reproduce it

setup
Install Rust via rustup, clone the repository, and run `cargo build --release`. Use `target/release/instance-ide` to launch the editor or `target/release/instance-runner` to execute a game file.

Community

Ask a question, share what worked, or follow the next milestone.

Your library