Show HN: Instance – A clean-room reimplementation of GameMaker 8.1 in Rust
github.com · Read Story HN original
You can try the IDE here in your browser: https://groverburger.github.io/instance/. It comes with three example games, including Spelunky Classic built from Derek Yu's released source shared under its permissive license. Just change something and press Run to see your edits in action.
Old GM games depend on a lot of quirks such as the order events run in, the exact random number generator, how sound_isplaying lags behind the audio. I wrote up the behavior as specs from the documentation, the file formats and black-box tests against the real program, then implemented it from those specs. No proprietary code was disassembled or decompiled. CLEANROOM.md describes the process.
It covers most of almost all of 8.1. All the resource editors, GML and drag-and-drop actions, d3d, particles, surfaces, MIDI, mplay multiplayer and DLL calls. It can also export a game as a standalone executable or a single HTML file. Projects can be saved as folders of plain text and PNG files for git.
I wrote most of the code with Claude Opus 5.5 over about three weeks. Claude banged out a pretty good reimplementation in a morning, but as always the last 20% took 80% of the work. GameMaker also turns out to work surprisingly well with LLMs. GML is small and simple, and a whole game fits in one project file.
I'm happy to answer any questions!
Comments
No readable comments yet.