Internationalizing Ikinari Maou for LocJAM Japan

Introducing Ikinari Maou

Simply put, Ikinari Maou is a puzzle-solving game disguised as an 8-bit RPG.

It was created during the Tyrano Game Fes JAPAN 2016, a jam where the goal was to create short games with TyranoBuilder (or using the TyranoScript language), a visual novel creation tool.

The game won the 2nd prize, and was praised for its originality, the quality of the challenge and its clever use of TyranoScript’s capabilities.

As a parodic RPG, the game ticked all the boxes for the LocJAM’s needs: reasonably short, diverse (lines from different characters, menus, system messages) and using a vocabulary typical of video games.

The Localization Tool

For the purposes of the contest, Shikemoku-MK, the creator of TyranoBuilder, kindly wrote a localization tool that reads scenario files and extract localizable strings, with the possibility of previewing and generating the game in the target language.

Technical Challenges

Most of the technical obstacles we met during the internationalization process were due to the nature of tool. TyranoBuilder is originally designed for novel games. You will typically have the scenario read in a windows, with the occasional selection to make through textual buttons.

Ikinari Maou, however, isn’t your typical novel game. As mentioned earlier, it could be described an RPG/puzzle-solving game, albeit a very scripted one. And to keep that old school RPG feel, the developers had to push the tool to its limits and use its features in creative ways. Long story short, we also had to find ways to accommodate the specifics of the game to make it localization-friendly.

  • In terms of volume, the main task was to convert graphical buttons in text buttons to make them localizable without the need to produce new image files. Remember, the contest is aimed at translators, many of whom aren’t familiar with advanced image editing tools, so everything had to be plain text.So we went over the script files and converted image buttons (“button”) to text buttons (“glink”), switching the image attribute of the former to the text attribute of the latter. We also tweaked TyranoScript’s CSS files to render these links a little more nicely, as options were a bit limited inside TyranoBuilderThis part went fairly smoothly as text and image links essentially work the same way… for the most part.
  • On the name entry screen, switching the graphical confirmation button to a text version had the game crash and it took us a while to figure out why. As it turns out, graphical buttons and text ones work a little differently in the background. The way TyranoScript was designed, clicking on a text button would actually kill the name entry field before any extra code can be applied, effectively making it impossible to save the name entered (and making the script crash by calling an element that has been deleted). The solution here was to dig a bit deeper and make a couple of edits to TyranoScript’s JavaScript files, the core of the tool that converts script (scenario) files into the HTML your browser displays.
  • This time we had to prepare not only the game but also the localization tool, and so we had to debugging on both fronts. One issue that appeared is that the tool originally didn’t extract strings under the “ptext” tag, which allows you to place text anywhere on the screen (outside the space reserved to the “story”) and was used in a couple of places in the game’s scenario files.
  • Another challenge was to find a good format to make strings easy to translate in a broad range of software. We decided to go for a tab-delimited .CSV file using UCS-2 Little Endian encoding – a format that can easily be opened in spreadsheet editing software and most computer-assisted translation (CAT) tools. It is flexible, universal and allows for instant implementation of translated strings.
  • Finally, we had to adjust the original text at a number of places, because of the limitations of our localization tool and TyranoScript. For example, variables were not localizable, so we had to remove a number of things, such as the default character name. We also had to make sure there would not be strings concatenated on a single line. Otherwise the options were to either automatically add a space every time, which would have made punctuation non-compliant in certain cases, or ask translators to add line-breaks manually every time. Obviously the latter option would have been a little tedious, so we just opted to move the text around to avoid issues.
  • As for the font, we used Atari Small, which we carried over from the very first edition of the LocJAM. It covered all of our needs and matched the game’s feel.