Those empty rectangles or scattered question marks that replace actual text are more than an eyesore. Players call them tofu (after the plain white blocks they resemble), and they signal a font that simply lacks the glyphs needed for the language on screen. In Thai, Arabic, Khmer, or certain South Asian scripts, the problem shows up fast once a build leaves the Latin-heavy testing environment. Menus turn into grids of boxes. Dialogue becomes unreadable. Reviews start mentioning it, and download numbers in those markets suffer.
The root cause is almost always the same: the typeface baked into the game was chosen for its look in English or a handful of European languages. Most commercial fonts cover only a fraction of Unicode. Thai needs proper handling of stacked vowels and tone marks. Arabic requires contextual letter joining and right-to-left layout. When the engine’s font atlas or runtime renderer cannot find a matching glyph, it falls back to the .notdef placeholder—the tofu square—or a question mark.
Google’s Noto family exists precisely to stop this. The name stands for “no more tofu,” and the project supplies coverage across more than a hundred scripts so applications can keep rendering instead of blanking out. Developers who pull in Noto Sans Thai, Noto Naskh Arabic, or the relevant CJK variants as fallbacks see the boxes disappear. The same principle works in Unity’s TextMeshPro: create a primary font asset for the main Latin style, then add language-specific assets to the Fallback Font Asset List in priority order. The engine switches per character. Unreal’s composite fonts achieve a similar result by assigning Unicode ranges to different typefaces within one font object.
Size and performance matter, especially on mobile. A full CJK font can balloon past 100 MB before compression. The practical fix is subsetting—extract only the characters that actually appear in the localized strings, then generate a tight atlas. Tools such as pyftsubset automate this at build time. Dynamic atlases help with player names or user-generated content, but they need careful monitoring; once the texture fills, new glyphs turn back into tofu. Increasing atlas resolution (2048×2048 or higher) and enabling multi-atlas support buys breathing room without loading every possible character.
Thai and Arabic add extra layers. Unity’s built-in renderer historically lacked full OpenType GPOS and GSUB support, so tone marks can collide or Arabic letters appear disconnected. Community packages and third-party shaping engines (HarfBuzz-based solutions) correct the positioning and joining. Netflix’s own internationalization guidelines for games explicitly call out these issues and point teams toward Noto fonts plus dedicated adjusters for Thai. Testing has to happen in-engine with real strings, not just in a spreadsheet. Pseudo-localization can catch expansion problems, but only native-script playback reveals missing glyphs or broken shaping.
Prevention starts earlier than most teams expect. Generate character inventories from the final translation files, compare them against every font asset, and flag gaps before packaging. Separate font assets per major script family keep memory under control while guaranteeing coverage. Fallback chains should place the regionally correct font first so Japanese-looking characters do not leak into a Simplified Chinese UI, or vice versa.
These technical steps turn an embarrassing post-launch bug into a non-event. When the text finally appears correctly—connected Arabic letters, properly stacked Thai diacritics, readable Khmer—the game stops feeling half-finished in those markets. Players notice. Retention improves. The difference between a quick patch and a lasting reputation often comes down to whether the fonts were treated as a first-class localization asset rather than an afterthought.
Artlangs Translation has spent more than twenty years refining exactly this kind of work across 230-plus languages, drawing on a network of over 20,000 professional linguists. The company handles full game localization alongside video localization, short-drama subtitle localization, multilingual dubbing for short dramas and audiobooks, and multi-language data annotation and transcription. Studios that bring font coverage and linguistic quality into the same pipeline avoid the tofu boxes that still catch so many releases off guard.
