说实话,我第一眼看到这个新闻的时候,整个人是懵的。
《Tamagotchi Paradise(たまごっちパラダイス)》出了个bug——如果你的电子宠物活到256岁以上,然后死掉,游戏会出一些奇怪的问题。不是"宠物死了"这种正常问题,是"大往生"的特殊演出播不出来、濒死时本该救你一命的机制失效、连星星都不亮了的那种问题。
但更让我困惑的是:这bug是怎么被发现的?
《たまごっちパラダイス》是万代去年7月发售的,最新一代电子宠物机。带了个叫"ズームダイアル"的新功能,能在四个不同规模的环境里养——从"たまうちゅー"到"たまごっち"本体都有。根据养育方式和环境,能长成12种族、50种以上的形态,再算上遗传配种的话,据说能凑出5万种以上的外观组合。
玩法上就是经典的电子宠物逻辑:喂食、清理、陪玩、看着它长大、变老、最后迎来寿命的终点。但这一代有个细节:30岁以上的宠物死亡时,会触发"大往生"的特殊演出,还有看星星时的特别画面,以及一次"濒死时被救回来"的机会。算是给长寿宠物的仪式感。
问题出在256岁这个节点。
万代5月20日的公告说,256岁以上特定年龄段的宠物死亡时,这些演出会出错。具体是"256~285岁""512~541岁""768~797岁"这几个区间。表现包括:年龄显示异常、星星不亮、濒死救援机制失效。
看到"256"这个数字,懂点计算机的人应该已经反应过来了——这是1字节数据能表示的状态数(0~255)。推测是某些处理流程里,年龄值被截断成了1字节,导致269岁的宠物在判定时被当成13岁(269-256=13),于是"30岁以上"的特殊逻辑被跳过了。
那几个出问题的年龄段也符合这个猜想:256~285岁对应截断后的0~29岁,512~541岁也是0~29岁(512-512=0,541-512=29),768~797岁同理。都是低位字节落在0~29区间的巧合。
有意思的是,养育界面本身能正确显示256岁以上的年龄,说明存储空间是够的。只是某些判定流程里,程序员可能觉得"255岁还不够你玩?",或者沿用了老代码里的旧逻辑。考虑到《たまごっち》系列快30年的历史,后者可能性不小。
万代说不会为此提供主机更换。倒也合理——这bug的触发条件,本身就说明了一件事:有人把电子宠物养到了256岁以上。
电子宠物的一天通常对应现实的几分钟到十几分钟。简单估算一下,256岁意味着现实时间里连续养了少说几个月,多则一两年。而且是在知道"30岁以上有隐藏内容"之后,继续硬养到256岁。这不是普通玩家,这是把电子宠物当成终身项目的硬核养宠人。
去年《たまごっち》刚进了"世界电子游戏名人堂",和《俄罗斯方块》《超级马里奥》这些并列。当时觉得是对一个老IP的怀旧认证,现在看可能低估了它的生命力——真的有人在用现代人难以想象的长情,对待这个巴掌大的塑料蛋。
类似的底层bug其实不少见。去年《艾尔登法环 黑夜君临》就出过攻击力太高导致溢出、反而打不出伤害的问题。但那个是战斗数值,玩家天天碰,触发快。《たまごっち》这个是寿命系统,设计本意就是"不会有人玩到这么老"——结果有人玩到了。
游戏发售不到一年就被报出这种bug,侧面说明全球范围内,把宠物养到超长寿的用户可能比想象中多。日本人爱电子宠物是出了名的,但欧美那边《たまごっち》也一直有稳定受众。名人堂入选之后,估计又吸了一波情怀回坑的老玩家。
我好奇的是发现者的故事。是某天突然发现星星不亮了,去查才发现年龄显示异常?还是社区里有人炫耀"我家宠物300岁了",然后其他人跟进测试?电子宠物没有联机功能,这种信息怎么传开的,也挺神秘。
至于修复——万代不修,大概是因为修了也得换硬件,成本划不来。而且真养到256岁的人,估计也不在乎那个演出有没有播。他们要的可能是别的:一个能证明自己养了很久的数字,一段只有自己知道的陪伴时间。
游戏bug暴露了程序的边界,但也暴露了玩家的边界——原来有人真的会在乎一个电子生命超过256年。这大概是程序员写代码时,永远不会写进注释里的需求。
热门跟贴