《鬼妇》开发者日志No.8 - 语言本地化

精华2018/12/25579 浏览综合
文章翻译:Vickie
TapTap
Hello there! Andre's here. Since a while, we actually have been wanting to implement a data-driven system to Pamali and other games, but always ending up casting that aside and deem in not urgent at the moment.
But all that changes when there's a new urgency: localization.
大家好! 我是Andre,又和大家见面了!。一段时间以来,我们实际上一直想在《鬼妇》和之后的系列游戏中实现一个数据驱动的系统,但一直将该计划抛诸脑后,并认为当前该计划并不紧迫。
但当出现一个新的紧急情况: 文字本地化时,情况就不同了。
Pamali has a lot of speech contents such as conversations, player monologues, readable objects, choices, object names and interaction choices.
《鬼妇》拥有大量语句内容,如:对话,玩家独白,可独内容的物品,各种选择,物品名称以及交互选择。
Up till last sprint all these contents all implemented manually inside each object's code.
直到上个冲刺任务之前,所有内容都是通过每个对象的代码手动实现的。
This pipeline itself has a lot of flaws:
这样操作本身有不少缺点:
1. Transferring of the contents from the writer into the code are very prone to human error (e.g. mistype, pasting the wrong speech)
1. 将内容从编写器传输到代码中很容易出现人为错误(例如输入错误、粘贴错误的语音)
2. If there's a revision it takes two layers of work to be fixed: the writer and the programmer
2. 如果需要修改内容,需要经过两道工序:作出修改的人和程序员。
3. Sometimes we manually fixes and changes the content directly inside the code (such as minor misspelling, wrong object name, etc.) and most of the time the writer is not aware of this.
3. 有时,我们手工修复并直接更改代码中的内容(例如拼写错误、对象名称错误等),而大多数情况下,作者并不知道这一点。
This resulted in two different sets of data (the contents inside the engine and the contents on the documents created by the writer). Thus, there isn't a centralized 'document' that is always up to date that the team could access anytime.
这就会产生两组不同的数据(引擎内的内容和内容创建的文档上的内容)。因此,就没有最新版的整合文档以便团队成员及时查看。
After seeing the problems above and imagining how it will be multiplied exponentially by doing it again and again on different languages, we feel that it is the time to develop the data-driven system.
在意识到上述问题并想象了一下语种越来越多后工作量会加倍增长,我们认为现在是开发数据驱动系统的时候了。
On this new system, our game takes data directly from a spreadsheet file consisting of various data and is implemented through the use of keys. We only need to assign an object inside the game to its corresponding key on the spreadsheet. Here's an example:
在这个新系统上,我们的游戏直接从包含各种数据的电子表格文件中获取数据,并通过使用各按键来实现。我们只需要将游戏中的一个对象分配给电子表格中对应的key即可。举个例子:
TapTap
^ We now have a spreadsheets listing all of out interactable objects.
^我们现拥有一张汇集全部可交互物品的工作表单。
TapTap
^ I assigned the corresponding key to the object's code.
^我将相应的key分配到物品的代码中去。
This allows our content writers to directly change the data inside the game, greatly increases the efficiency of our speech content production especially when doing revisions on the content.
这使得我们的内容作者可以直接更新游戏中的数据,大大提高了我们的语音内容制作的效率,尤其是在对内容进行修改的时候。
And with a centralized database, it is easier for anyone in the team to pull the latest data that is up to date to both the contents created by the writers as well the the one implemented in engine. Debugging (content-wise) is also so much easier now. (Its a huge lifesaver)
使用整合式数据库,团队中的任何人都可以更容易地将最新的作者创建的或引擎中实现的内容进行提取。Debugg(内容方面)现在也容易多了。(它简直就是大救星)
And lastly, this allow us to handily implement various languages to the system. This urgency manifested because we currently implementing a Chinese localization to Pamali and hopefully to be able to release it together with our English version. We had a new partner and they are helping us with the localization for Simplified and Traditional Chinese.
最后,这使我们能够方便地运行各种语言。这种紧迫性的出现是因为我们目前正在对《鬼妇》实施中文本地化,中文版《鬼妇》希望能与英文版本一起发布。我们的合作伙伴“听枫语”,已经完成了简体和繁体中文的本地化,目前正在帮助我们进行本地化的优化。
In a nutshell, we are glad the development of this data-driven system goes smoothly and everything works on the first try (this rarely happens...).
简而言之,我们很高兴这个数据驱动系统的开发进展顺利,而且每个步骤都在第一次尝试时就成功了(这种情况很少发生...)。
That's all for the first part of my devlog about localization, on my next devlog I will share on how we handle the localization of our readable objects on the game. See you next time! :D
这是关于语言本地化的第一部分,在以后的《开发者日志》中,我将与大家分享如何处理游戏中可读对象的本地化。下次见! :D
6