Localizing Sakuna: Of Rice and Ruin
By John Wheeler
When I joined XSEED back in 2016, we would gather for weekly meetings to discuss upcoming titles, and on occasion someone would bring up a game by the name of “Sakuna.” I wasn’t familiar with this title or Edelweiss, the indie team making it, but everyone always talked about it in excited tones. In 2017, we demoed Sakuna: Of Rice and Ruin for the very first time at E3, where I watched players get wrecked repeatedly by the giant toad boss. We showed different demos in 2018 and 2019, and the game was even featured on Nintendo Treehouse: Live 2019 with the two main members of the development team, Nal and Koichi, as guests (and me nervously interpreting for them). Which is all to say that this game has been a part of my life for about as long as I’ve been at XSEED, and I’ve had an incredible experience working with an absolutely stellar team to produce its localization.
(I introduced the story and characters in our blog post about the voice recording process, so please check that out first if you’re unfamiliar with Sakuna.)
As excited as we are to finally let players get their hands on it, I think we’ll all miss working on this game. While that’s partly because it’s just so much fun—seriously, I stayed up late playing it during QA more than a few times—we also had unprecedented access to Edelweiss’ development tools, which allowed us to take a more hands-on approach in the localization process than ever before. This meant that Sakuna presented us with immense (and immensely rewarding) challenges to overcome as we worked steadily on the game over the course of three years, before finally wrapping up LQA this year. We’re honored to have played such a role in Sakuna’s development as localizers, and I’d like to take this opportunity to get into the weeds a bit to share some of the most memorable parts of our localization process for this special game.
Iteration and Improvement
When working on titles still in development, we often catch a glimpse of the creative process by observing how the game’s text changes. Sakuna evolved gradually before our eyes over the years we spent localizing it. We completed the localization in stages, with text updates coming in bursts, sometimes several months apart.
The amazing team of Elizabeth Bushouse and Derek Heemsbergen localized the main story back in late 2018/early 2019. After they finished, we recorded the English voiceovers in April 2019. By this point, all the text that had been recorded in Japanese and English was locked in. However, Edelweiss revised and expanded upon much of the game’s unvoiced text, including item descriptions and NPC dialogue, right up until this year. Our localization team was responsible for catching any changes and updating the English accordingly. One major change from early 2019 to now was that the system text was changed from being written in a neutral voice to being written in character voices. For example, item descriptions are now written in the voice of Tama, Sakuna’s elderly guardian. Detailed quest descriptions in Sakuna’s voice were also added.
Here are a few examples of these changes from the text files.
Early 2019: As you can see, lots of items still lacked descriptions, and what few did have them took a neutral tone. One of the many challenges our localization team faced with Sakuna’s text system was item localization. Many game objects contained words rarely heard in modern Japanese, and some items were referred to by older names or used kanji no longer in common use. A good example of this is the word 馬鈴薯 (bareisho) being used to refer to potatoes instead of the more common じゃが芋 (jagaimo). These item names and descriptions needed to give the players clear information without any translator’s notes, while still fitting within the limits of the text box. You can also see Liz’s detailed notes, which always provided valuable context (and made for a fascinating read).
August 2020: The final text. More detailed descriptions written in Tama’s voice have been added for every item. We also carefully inserted line breaks to make sure the text looked great on-screen (more on that below). Note that we changed “Millet” to “Foxtail Millet” in order to distinguish it from “Sanwa Millet.”
Early 2019: We originally localized a simple list of objectives for the quest text. (Notice Liz’s translator notes asking us to clarify how the text would be used.) We hadn’t finalized place names at this point, so “Narrow Cave” would later become “Cylindric Cavern.”
August 2020: We’ve finalized the quest/place names and added a quest description in Sakuna’s (usually exasperated) voice.
These two minor examples show just how much the game’s text has evolved over the last two years, and how our localization changed to reflect this. Localized items and place names existed as early as our 2017 E3 demo, so we could go back even farther to see how the Japanese and English have changed since those early days. However, since I was the one who translated that demo text, I would prefer to leave it in the past and stick with the work produced by our excellent localization team.
Sakuna’s localization tools are unlike any that I have ever worked with before.
Normally, localization and QA testing proceeds something like this:
- The publisher delivers text to the developers in a predetermined format
- The developers insert the text into the game and create a build
- The publisher checks the text in that build
While this process can be streamlined, there will always be a lag between delivery of the text and confirmation in a build. If the turnaround time is 2-3 days and a mistake is made in the text that needs to be corrected with another delivery, you end up losing precious time that can cost you dearly when you’re on a tight schedule.
For Sakuna, Edelweiss trusted us with direct access to their development environment. This allowed us to change text in the same environment they used to create the game, and then instantly check the results in a build specifically designed to test updates within that environment. Of course, checking the changes in a console version still required an updated build, but during localization and QA, these localization tools meant making and confirming a change in-game took us mere minutes. This gave us unprecedented control over the text’s in-game appearance, as well as the ability to iterate without asking the developers for new builds.
By the same token, this control came with responsibility to find and work through display issues ourselves, even down to inserting and checking line breaks manually. One particularly challenging issue concerned how the game handled maximum line lengths. If a text string exceeded a pre-set width limit, the game would automatically squish the text display to accommodate it. This looks really bad, so we spent a lot of time during QA shortening the text as necessary to prevent it.
One area that we had to do a lot of work on was the mini-boss names. The game’s regular demon enemies have tougher versions that you fight as mini-bosses, which usually follow the naming pattern of “Demon Animal General – Color Attribute.” In the supported Asian languages—Japanese, Korean, and Traditional Chinese—you can write such a name with only a few characters. In English, we had to get creative.
This screenshot shows the first version of these mini-boss names—in this case, Demon Deer General (Black Shadow).
While the top-most exploration objective appears without issue, adding conditions such as (30sec.) or (Night) causes the text to shrink. The Japanese name for this boss (鹿鬼大将・玄影) doesn’t have this problem because those 7 characters fit nicely into the allotted space for objectives.
After discussing how to shorten the English name, we first tried removing the words “General” or “Demon” as redundant. Updating the text files and viewing these changes in a build took less than 5 minutes.
That’s close, but still too long. Not only that, but this method also fails to account for every type of demon mini-boss, some of which have even longer names. We continued to experiment and asked Edelweiss for more information about the Japanese naming scheme to better understand their intentions. Ultimately, we decided to remove “Demon Animal General” from the boss names entirely.
We worried about whether this choice would make the exploration objectives less clear to the player, but the mini-bosses have a health bar that displays their name when they appear, so in the end we felt this was the best way to resolve the situation in a way that worked within the limitations of the text. We spent further hours debating how to localize the mini-boss names, going so far as to ask Edelweiss for screenshots of ones still in development just to make sure our names matched their appearances (and sounded cool, of course). I hope it is clear by now that our team really enjoyed this whole process, especially since we could implement and check changes on our own without waiting for the developers to make a new build.
This next screenshot shows the quest objectives as they will appear in-game. Besides shortening the boss name to “Black Shadow”, we also changed the secondary objective from “30sec” to “30s.” Since these secondary objectives exist as separate strings in the text files and are automatically added to quest objectives, we couldn’t shorten them for specific objectives.
This is not to say that we were left completely to our own devices to fix display issues with the English text. On the contrary, Edelweiss did an enormous amount of work during QA testing to make the text look as good as possible, and also answered many questions about what certain things meant. One problem we worked closely with them on involved how the game displays the attributes of your rice. As you may have heard, in Sakuna the rice you grow in your mountain home has a direct impact on your battle stats. In Japanese, the six rice attributes are each expressed with a single character: 量, 味, 硬, 粘, 美, 香. In English, they are written out as Yield, Taste, Hardness, Stickiness, Aesthetic and Aroma. (Have you noticed a pattern in these problems yet?) The menu screens generally had no issue accommodating for these drastic discrepancies in text length. However, the Skill Acquisition submenu that shows what battle skills you’ll learn as your rice grows was thrown completely out of whack by the longer English words. (Note that the red square drawn around the text in the following screenshot does not appear in-game—we highlighted it for a bug report.)
We proposed abbreviating the attributes on this screen in a way that would still allow the player to make sense of the information. Edelweiss quickly implemented this change in the text files so that only this screen would use a different set of strings.
Note that the Japanese characters in the second column remain the same regardless of the “_Abb” tag in the first column, whereas the English in the third column changes to show the abbreviated form of that attribute. Edelweiss implemented several other fixes like this throughout the text files, including adding singular and plural versions for a few terms that were being using in multiple places (Fighting Skill/Fighting Skills, for example), another common problem when going from Japanese to English. We’re so grateful to them for working with us to make the English text appear as aesthetically pleasing as the Japanese. Here’s how the abbreviated attributes appear in-game:
The Edelweiss Extended Gaming Universe
I’d like to end this post by briefly discussing an interesting journey I took while working on Sakuna. For obvious reasons, everyone who worked on this game’s localization learned far more than they ever expected to learn about topics such as premodern Japanese farming techniques, food staples, and tools. Edelweiss researched these topics extensively during Sakuna’s development, and when I first started working on the game, I checked out an academic history of premodern agriculture (Rice, Agriculture, and the Food Supply in Premodern Japan by Charlotte von Verschuer, translated by Wendy Cobcroft) to familiarize myself with the game’s world.
I never would’ve guessed that my research would include playing one of Edelweiss’ earlier titles: Fairy Bloom Freesia.
In Sakuna, dinner scenes serve as a major source of exposition. You can share a meal with your companions at the end of each day and discuss a variety of topics. Some of these scenes are essential to the story, while others offer information about the game’s world, which takes inspiration from the Warring States period of Japanese history. One of Sakuna’s human companions is Myrthe, a missionary from the country of Ventania (this game’s version of the Netherlands) who has traveled across the world to Yanato (Yamato being another word for Japan itself), the country where Sakuna’s story takes place.
In her dinnertime stories, Myrthe tells of her journeys to other fictional countries and the people she encountered along the way. She tosses out a number of fantasy-sounding names, and we initially localized them without context. However, upon learning that we had localized the forest of アムル as “Amurru,” Edelweiss told us that this was actually a location in Fairy Bloom Freesia that had already been localized as “Amal.” (Quick aside: it is a sign of just how deeply Edelweiss cares about their work in all languages that they reviewed the English text that closely.) Well, after that I simply HAD to buy the game on Steam and play it to make sure we were using the correct versions of the names. While I can highly recommend playing Fairy Bloom Freesia, you don’t need to have played it in order to understand anything in Sakuna. But it does make some of those dinnertime conversations with Myrthe a little more meaningful.
I hope you’ve enjoyed this small glimpse into our Sakuna localization journey. This game has been a labor of love for us for many years, and we’re all so excited for you to finally experience it for yourselves.
For more information about Sakuna: Of Rice and Ruin: www.sakunaofriceandruin.com
Pre-order at XSEED Games Store: https://store.xseedgames.com/product/sakuna-of-rice-and-ruin/
Digital pre-orders: http://sakunaofriceandruin.com/order/digital.php