Development covered 27 Jul 2026 to 2 Aug 2026 (commit dates).
The game has eleven languages and every string in them was translated on purpose. Then I played it in Japanese for an hour and wrote down every English word I saw. The list ran past fifty entries: the mining screen, the skill tree, the sect exchange, duel results, map labels, the shop shelves, a modal asking for an email address. All of it translated, all of it showing English.
There are only about four ways this happens, and knowing them is more useful than the fixes.
The internal name printed as a label
The worst one, and the most common. A screen wants the name of an object, asks for it, and the lookup misses, so the fallback shows the object's internal name. On the shop shelf, in every language including the two it was written in.
This is worse than showing English, because English is at least a language. An internal name is a string the player was never meant to see, and it leaks the shape of the thing behind the game. It also passes every review, because a developer reading their own screen recognises the object and moves on.
The structural cause was that item names had been keyed one way and the objects had been renamed to another scheme months earlier. Every lookup that had been updated worked, every lookup that had not fell through to the raw name, and nothing distinguished the two on screen unless you were looking for it.
Strings added after the translation pass
Second mechanism, unavoidable, and worth planning for. A large translation pass takes days, and development does not stop while it runs. Every string that lands during those days is born untranslated, in the source language, and it will sit there until somebody notices, because everything around it looks right.
The traditional version of this is a subtle one: the traditional Chinese locale had fallen eighty-one keys behind the simplified one, so readers of traditional Chinese got English on exactly those eighty-one strings. A gap between two close relatives is much harder to see than a gap between distant ones.
A fallback that looks like success
Third, and the reason the first two survive so long. When a translation is missing, the sensible behaviour is to fall back to the source language, so the player sees a real sentence instead of a blank.
That is right, and it makes the failure invisible to exactly the person who could fix it. The developer reads English, the fallback is English, and the screen reads perfectly. The audit that found all fifty of these was not clever: it was playing in a language I cannot read, where a fallback is unmistakable.
Half a feature translated
Fourth, and the most embarrassing. Several screens had their labels translated and their refusals not. Press the button and the interface speaks your language; press it when you are not allowed to, and it explains why in English.
Refusal copy sits in the error path, so it does not get read during ordinary testing, and it is precisely the copy a confused player most needs. Any translation audit should start with every message that appears when something goes wrong.
While I was in there: an economy that had drifted by four orders of magnitude
A separate pass compared what the game actually pays against what the design budgets, quest by quest, realm by realm.
The early realms were paying about a fifth of their budget, which reads to a player as a game that will not let them buy anything. The late realms were paying up to eleven thousand times theirs, which reads as a game with no economy at all, since everything is affordable forever. One quest at the very end handed over an amount with ten digits in it that nobody had ever chosen.
None of that was one bug. It is what happens when numbers are authored per feature over months while the budget lives in a document. Every individual value looked reasonable when it was typed. The lesson I take is that a balance document is worth nothing unless something regularly compares it to the running game, and that comparison should be a script rather than an intention.
A note on image size, since it comes up
Small thing worth passing on. Uploaded pictures needed to stay under a size ceiling, and the first version set the encoder quality to a value low enough to be safe.
A quality setting does not bound a file size. The same setting produces a tiny file for a flat illustration and a large one for a photograph of foliage, so a fixed low quality means every simple image is needlessly ugly and some complex ones are still too big. Starting at high quality and searching downward until the file fits is barely more work and gives every image the best quality it can have inside the budget. The ceiling is the requirement; the quality is just the dial you turn to meet it.
More devlogs and the game: Idle Cultivation Game.
Top comments (0)