Game Localization · All Services
GameMaker Localization — GameMaker Studio 2 i18n Pipeline
Native translators. Engine-specific expertise. LocQA in your build. Get a free quote →
GameMaker Studio 2 does not have a built-in localization system comparable to Unity’s Localization Package or Godot’s gettext pipeline. Most GameMaker projects handle localization through custom implementations: CSV string tables loaded at runtime, JSON key-value files, or community localization libraries. This means the localization pipeline varies significantly between GameMaker projects — and must be understood and validated for each project before translation begins. SandVox provides GameMaker localization from string audit through LocQA in a running build.
Common Localization Challenges
- No built-in localization system — GameMaker Studio 2 has no native i18n framework; each project implements its own string table loading (CSV, JSON, INI, or custom format), meaning the pipeline must be reverse-engineered from the project before any localization work begins
- String extraction complexity — localizable strings in GameMaker are often hardcoded in GML event code (draw_text(), show_message(), string concatenation), mixed with script calls that assemble strings at runtime, or stored in object variables that are never surfaced in a single exportable file
- CSV and JSON format handling — GameMaker localization files are typically project-specific CSVs or JSONs without a standardized schema; column naming, key format, and encoding (UTF-8 vs. Windows-1252) vary between implementations
- CJK font rendering — GameMaker uses its own font rendering system; Japanese, Chinese, and Korean require custom font assets with the correct glyph ranges included; GameMaker fonts are bitmap-sampled at specific sizes, meaning CJK fonts must be included at each required pixel size to avoid rendering artifacts
- No native plural form support — GameMaker’s string system has no built-in plural rule handling; games with pluralized strings (“1 item” vs. “3 items”) need per-language logic implemented in GML, which must be verified during LocQA
- Community localization libraries — popular community solutions (GMLScripts.com localization scripts, custom CSV loaders) each have different file format expectations and runtime behaviors that must be understood before delivering translated files
What We Deliver
- GML source audit — identifying all hardcoded strings, draw_text() calls, show_message() calls, and runtime-assembled strings across event code and scripts
- String extraction to translatable format — converting project-specific localization format to CAT-tool-compatible files for memoQ processing
- Translation using memoQ with per-project Translation Memory and GameMaker-specific terminology glossary
- Plural form handling review — identifying strings requiring plural logic and advising on GML implementation per target language
- CJK font asset specification — identifying required glyph ranges and font sizes for Japanese, Chinese, and Korean builds
- CSV/JSON file reconstruction — returning translated files in the exact project-specific format and encoding
- LocQA in running GameMaker Studio 2 builds — font rendering, text overflow in draw_text containers, string variable rendering, runtime locale switching
How a Project Works
- Scoping: GameMaker Studio 2 version, localization library in use (if any), string extraction format, target languages, platform targets
- String audit — reviewing event code and scripts for all localizable strings; mapping the existing localization pipeline if present
- String extraction — converting to memoQ-compatible format for translation; flagging runtime-assembled and hardcoded strings requiring manual handling
- Translation with GameMaker-specific character limit metadata and context screenshots
- File reconstruction — returning translated CSV/JSON/INI files in project-specific format
- LocQA in running GameMaker build — font rendering, draw_text overflow, runtime string rendering
Languages Available
Japanese · Korean · Simplified Chinese · Traditional Chinese · German · French · Spanish · Brazilian Portuguese · Italian · Russian · Polish · Dutch · Arabic
Frequently Asked Questions
How does SandVox extract strings from a GameMaker project without a localization system?
We audit the GML event code and scripts directly — searching for draw_text(), show_message(), string literals, and string concatenation patterns. We then work with the development team to understand how strings should be externalized (what format the localization system uses or should use) and deliver a string table in that format. For projects with no localization system at all, we can advise on implementing a simple CSV or JSON-based string table that integrates with the existing codebase.
What font format does GameMaker use for CJK localization?
GameMaker samples fonts at specific pixel sizes when you add them to the project — it doesn’t use vector fonts at runtime. For CJK localization, you need a font asset that includes the required glyph ranges (Hiragana, Katakana, and basic Kanji for Japanese; GB2312 coverage for Simplified Chinese; etc.) added at each required render size. This produces large font assets. We specify required glyph ranges during scoping and validate font rendering during LocQA — missing glyphs render as empty or fallback characters in GameMaker builds.
Does GameMaker support RTL text rendering?
GameMaker Studio 2’s built-in draw_text() functions don’t natively handle bidirectional text or RTL layout. RTL localization (Arabic, Hebrew) in GameMaker requires either a community extension that handles BiDi text rendering, or drawing text using manually reversed strings — neither approach is fully satisfactory. We advise on RTL feasibility during scoping for GameMaker projects. Most GameMaker indie titles that localize for Arabic or Hebrew either use a third-party rendering solution or scope RTL out as a later phase.
What string file format should our GameMaker localization use?
For projects without an existing localization system, we recommend a simple CSV format with columns: key, source text, and one column per target language. CSV is easy to parse in GML, works with most spreadsheet tools for translator review, and is straightforward to import into memoQ for professional translation. JSON key-value files are an alternative if the project already uses JSON extensively. The most important requirement is UTF-8 encoding with BOM — GML string functions handle UTF-8 correctly, but file encoding must be explicit.
Start Your GameMaker Localization Project
Tell us your word count, target languages, and timeline. We’ll send a fixed-price quote within one business day.
Frequently Asked Questions
GameMaker Studio 2 handles localization through its built-in Localisation system (Resources > Localisation) which manages a translation table where string keys map to values in each language. Strings are referenced in GML code using the string_get_from_csv or the newer localisation_get functions. The localization data is stored as a CSV file that can be exported for translation and re-imported. Older GameMaker projects may use custom ini files or JSON-based string tables. SandVox handles GameMaker CSV export and re-import, and can work with custom string systems if needed.
GameMaker’s font system requires pre-generating font glyphs at specific sizes — unlike vector font rendering in Unity or Unreal, GameMaker bitmaps fonts during build. For CJK languages, this means generating a font atlas containing all required CJK glyphs (6,000–20,000 characters) at each font size used in the game. This increases build size significantly and requires pre-knowing which characters will appear in the game. GameMaker 2022+ supports SDF (Signed Distance Field) fonts which reduce the atlas size issue. SandVox advises on GameMaker font strategy for CJK localization projects.
GameMaker is used primarily for indie games — many are smaller scope (5,000–30,000 words). A GameMaker platformer or RPG (15,000 words) into Japanese costs approximately $2,700–$5,250. A mid-size GameMaker game (40,000 words) into German costs approximately $4,800–$8,800. SandVox provides GameMaker-specific localization including CSV preparation, font guidance, and in-engine QA as part of the project scope.
GameMaker has powered many successful localized indie games. Undertale (one of the most acclaimed indie RPGs) was built in GameMaker and has been localized into Japanese, Simplified Chinese, Korean, German, French, Spanish, Portuguese, Russian, and more. Hotline Miami, Spelunky, and Nuclear Throne are other notable GameMaker titles. The GameMaker community has strong localization tooling support. SandVox has experience with GameMaker’s localization pipeline from both GMS 1.x legacy projects and current GMS 2.x projects.