Supported engine · GameMaker
A GameMaker game (earlier releases were sold as GameMaker Studio) ships its compiled data in one file: data.win on Windows, game.unx on Linux, game.ios on macOS. RuneTranslate reads and writes that file itself, with no third-party tool or sidecar. It follows each string through the game's bytecode to see whether it reaches a draw or message function, so the text a player sees is offered for translation while lookup keys, file names and strings the game compares against stay untouched. Language files the game ships beside it (JSON, CSV, INI / key=value, Yarn and Chatterbox dialogue) and gettext .po / .mo catalogs are picked up too, and markup and control codes are masked behind placeholders so a provider can't break them. You translate with any provider: DeepL, an LLM (OpenAI / Anthropic), free Google Translate, or a local model. On export, when the translation needs characters the game fonts lack (Cyrillic, Vietnamese, Chinese, Japanese, Korean, Thai, accented Latin), RuneTranslate adds those glyphs to the game's own fonts in a matching style, and for Japanese, Chinese and Thai it breaks lines only where the text box width is proven from the game. Every export is re-read and verified byte for byte before it replaces anything. GameMaker is newly added and was verified end to end on real games made with GameMaker Studio 1.4, GameMaker Studio 2.3 and the GameMaker 2022 LTS, 2023 and 2024 releases. Games compiled with YYC (native code) are the exception: their language files and fonts can be translated, but the text inside their code can't be reached. Source language is Japanese by default and configurable per project.
GameMaker games repeat character names, item names and menu terms across the data file and its language files. Add them to your glossary first so every line renders them the same way. Glossary 101 →
Point RuneTranslate at the game directory: the folder holding data.win on Windows, game.unx on Linux, or game.ios in a macOS build. Detection recognises the data file automatically, and opening the game changes nothing. If the game came as an installer, install it first. A GameMaker Studio 1.4 game packed into a single executable is unpacked into a normal game folder by the export.
RuneTranslate reads the data file itself, with no third-party tool or sidecar, and follows each string through the game's bytecode to see whether it reaches a draw or message function. The text a player sees becomes a translation unit; lookup keys, file names and strings the game compares against stay untouched. Language files the game ships beside it (JSON, CSV, INI / key=value, Yarn and Chatterbox dialogue) and gettext .po / .mo catalogs are listed too.
Translate with DeepL, an LLM (OpenAI / Anthropic), free Google Translate, or a local model. Markup and control codes are masked behind placeholders so a provider can't reorder, drop or translate them, and translation memory reuses repeated lines.
Export a translated copy to another folder, or in place, which some Steam games need. When the translation uses characters the game fonts lack, the export adds those glyphs to the game's own fonts in a matching style. For Japanese, Chinese and Thai it breaks lines only where the text box width is proven from the game, with kinsoku rules. For a macOS or Linux build it writes only the changed files, which you copy over the install.
Every export is re-read and verified byte for byte before it replaces anything. Launch the translated game and check the dialogue, menus and fonts in game before you share it.