暗黑3伤害数字设计的深究 本地化的困难与选择
新闻导语
无论是参与开发商业软件、娱乐软件还是你最喜欢的游戏软件,过程中遇到问题时并非总有简单的解决方案。就游戏开发而言,其过程可谓错综复杂,牵扯到成千上万的运动部件,哪怕做最细小的更新都可能要花数周时间进行修改和重做
无论是参与开发商业软件、娱乐软件还是你最喜欢的游戏软件,过程中遇到问题时并非总有简单的解决方案。就游戏开发而言,其过程可谓错综复杂,牵扯到成千上万的运动部件,哪怕做最细小的更新都可能要花数周时间进行修改和重做。非开发人员可能忍不住会问:“修复一下不就完了吗?”这就好比问面包师傅干嘛不用糖代替甜蜜素一样。对于这种问题,各行各业从业者的回答都是类似的:“没那么简单。”
数字的工作原理是什么?
在《暗黑破坏神III》中,玩家需要接受的信息量比较大。我们单说数字,因为数字到处都是!装备上有数字,角色信息里有数字,战斗时更是数字满天飞。在这些数字的背后,是巨量的技术工作。正是这些技术工作让数字能以现在的样子呈现在玩家眼前。
我们听到不少玩家反馈说在快节奏的战斗中,数字多得看不过来,还没看明白就消失了。在过去,看到大数字时会感到精神一振,因为大数字特别显眼,显得玩家特别厉害。那么现在我们该如何让玩家找回这种感觉,同时不会让他们觉得自己变弱了呢?
为了解决这一问题,我们在2.4.0版本中引入了一些新特色。首先,我们在游戏中加入了用缩写显示长串数字的选项。其次,我们加入了一个全新特色,即用不同的颜色突出显示部分最大的伤害数字。我们在游戏中实装这些新改动时又遇到了各种各样的挑战。有些是设计上的问题,还有些是本地化方面的问题,而最重要的事,最后的结果必须拿得出手。
我们起初的想法是将玩家在过去几秒内打出的伤害数字中最高的 5% 高亮显示。这种方法的第一个问题就是每种技能和装备搭配都不同,尤其是造成伤害的方式。有些搭配打出的伤害数字呈阶段性一阵阵地冒出,有些搭配则是持续不断地冒出数字。我们初期遇到的另一个问题是没考虑到可预料的伤害波动。比如说威能塔能暂时大幅提升伤害,但持续时间结束后,你依然想知道自己是否造成了可观的伤害。
为了解决上述问题,我们花时间完善算法,最后决定的用橙字显示伤害的规则如下:
低于 10000 的伤害数字不予考虑
如果即将显示的伤害数字高于上次用橙子显示的数字,则此次伤害数字以橙色显示。
最大数字的值每秒降低 3%。
这样就会降低很久都看不到橙色数字的几率。
最先出现的 10 个大数字不予考虑
此设定让系统可以自我校准。
如果连续 10 秒未造成伤害,系统重置。
“万”和“亿”哪儿去了?-本地化过程中遇到的挑战
如果你已经玩了最新版本的游戏,也许已经注意到伤害已经缩写显示了。不少英语国家和地区的玩家问我们为什么不用“十亿”而用“百万”。
这么做有几点原因,但最主要的原因是本地化方面的考虑。《暗黑破坏神III》是面向全球发售的游戏,有 13 种语言的版本。在文字(和数字)的设计上,我们必须考虑到各个语言版本的游戏。也许大家觉得翻译数字易如反掌,实际上比想象中复杂得多。
左图:英文版里的数字。右图:韩文版里的数字。
看上图就可以明白看似简单的工作其实没那么简单。有些语言,比如法语或西班牙语中,通常没有专门表示“十亿”的词。他们表达十亿的方式是“一千个百万”,而不是用一个专门的词表示。从词源学角度说,“十亿(billion)”这个词最早代表的是“一百万个百万”,但英国和美国英语中,这个词慢慢演变成代表“一千个百万”了。
而在韩文版或中文版中,情况就更加复杂了,这两种语言中,大数字又有专门的叫法。比如说英语中数字的命名法是每隔三位用一种新表达法,比如说“千(thousand)”、“百万(million)”、“十亿(billion)”等等。但在韩文中,是每隔四位用一种新表达法。因为在韩国,人们更习惯说“几十万”,而不是“几百千”。
还有一个问题就是标点符号的使用。并非每种语言都有每三位数字加一个逗号隔开的习惯。在欧洲,句点更加常用。而有些国家和地区根本不用符号。
左图:韩文版金币计数。右图:法文版金币计数。
《暗黑破坏神III》中的数字越来越大,于是我们决定加入分隔用的标点,不过我们得考虑每种语言版本里该在何时何处加标点,确保“翻译”的雅。我们的代码用的是 ICU 库,全称“国际统一码部件”,此种库为软件本地化提供了大量支持。ICU 的使用方式有很多,但就本地化而言,我们用到了其中一个能力,即输入一个数字,选择一个地区(例如美国英语、法国或韩国),并让它输出符合所选地区使用习惯的数字格式,包含逗号或句点。我们的本地化团队也有一张对照表,上面显示各个地区数字的表达法,以及最后结果的预览
上面是一张本地化对照表,上面显示各个语言的数字缩写规则。
不同语言版本中,我们选择根据情况多用或少用缩写,这主要是因为文化差异。数字的长度会影响玩家看到数字时的心理满足感。不同的文化与个性也影响玩家的偏好。例如在英文版中,我们并不是只要数字上了百万就一律用缩写,较小的数字我们依然完整显示。因为“1000000”看上去比“1M”让人更有满足感。同样道理,“1000M”看上去比“1B”让人更有满足感,所以我们选择不用“十亿”这个缩写。当然,我们不仅要考虑数字尺寸的大小,还要考虑视觉效果、颜色和移动方式都至关重要。
对于简体中文版,我们同时考量了伤害数值给玩家带来的打击感和满足感,兼顾到伤害数字太长导致的阅读困难,以及实际游戏中测试下来的效果。最终在国服本地化的过程中,我们选择了那些小于亿的数字保留原有的数值大小和尺寸,有利于带给玩家满足感。同时对于大于亿的伤害数值,用了M作为单位。
让数字起舞 - 改进视觉效果
玩家看到数字时,很重要的一点是要确保他们一下子就明白此数字本身和出现此数字的时间点代表的含义。在2.4.0版本中,我们目标是提供比以前更多的战斗信息。因此才决定突出显示暴击数字。
看那个漂亮的暴击!
改变颜色是呈现重要信息一种方式。我们为了以最佳的方式表现出这些大数字,可谓绞尽脑汁。要不要把数字弄得大一点?让它们的运动轨迹与众不同?让它们闪光?让它们在画面中停留时间久一些再消失?还是说用不同的颜色表示?我们如何决定哪个才是最好的选择呢?
我们最后决定在颜色方面着手,因为从玩家接受的角度考虑,颜色最能突显重要信息的不同之处。橙色很显眼;玩家以前也从没见过,所以他们会下意识地更加留意橙色数字。
橙色也通过了色盲测试。看色彩圆环可以发现,橙色和我们当前用来显示信息的颜色都不同。也就是说色盲的玩家也能辨别出橙色显示的大数字了!
在更改界面颜色方面,我们的美工从三方面下手:色调、饱和度和亮度。这三样是“HSL色彩空间”的一部分,而HSL色彩空间是色彩圆环的通用数字标准。调节每一方面都能影响玩家的情绪或引起新的情绪反应。若要改变玩家心情,只需要调节色调。如要让色彩鲜艳的图像变得不那么鲜艳,调节饱和度是关键。若要改变图像的显眼程度,调节亮度就对了。
例如,游戏中有一项至关重要的信息就是玩家接受的治疗量。治疗量就是生命力,必须设计得非常显眼,所以治疗量数字是游戏中亮度最高的信息之一。我们也想把暴击数字设计得非常显眼,因此将暴击数字的亮度调得很高,这样打出暴击时玩家一眼就能看到。
让游戏成为有机整体
我们谈及《暗黑破坏神III》开发团队时,很容易首先想到团队如何设计一个职业、物品、或是加入供玩家探索的新特性,因为这些内容和玩家有直接的互动,也和玩家最有共鸣。不过,除了玩家的角色装备外,我们团队中的美工、工程师、本地化专家、以及无数其他工作人员都为了确保全球玩家能得到流畅的游戏体验而辛勤付出。