上周的服务器问题-开发人员如何从错误中学习

尽管有阴谋意识的球员很快就戴上了锡箔帽子,但坠机背后的真正原因与光明会无关,而与墨菲定律有很大关系:如果出了问题,那就会出错。

7月25日,发生了问题。

传奇执行制片人James Marr(jmarr,如果您正在论坛上)最近发表了冗长的解释,详细说明了所发生的事情。

事件开始后不久,客户服务部就涌现了有关老板产卵率的罚单。 玩家报告说老板的产卵速度比平时慢,但是客户服务团队在游戏中找不到任何行为异常的代码。

票证的涌入清楚地表明,产卵率并不是一个孤立的问题,因此团队决定通过请求主服务器提供更多诊断信息来进一步调查,该服务器协调较小的服务器集群以保持游戏运行。

“从历史上看,主服务器非常可靠,我们每天都会使用它几次来更新游戏调整,例如,当我们向游戏中添加新事件,引入新游戏包,发送收件箱消息等时, ” jmarr写道。 “本周早些时候,我们向主服务器部署了我们认为是良性的更新,但实际上引入了一个严重的错误,即更改任何参数都会告诉我们服务器也更改所有其他参数。”

这些参数之一是要向游戏团队显示多少诊断信息。 为了弄清老板产生问题的根源,游戏团队无意中发现了隐藏在代码中的关键错误。

“当我们尝试增加诊断日志记录的数量时,此错误导致它还告诉服务器部署不同版本的游戏调整,这恰好是前一天的游戏调整版本,没有任何变化。活动信息。”

每天都会在系统复位时(每天5点在加利福尼亚州, 传奇的总部所在地,也就是世界时00:00)发布对传奇的稍作修改的版本。 有时,这些修改是次要的,例如参与者所拥有的催化剂数量。 在其他时候,这些修改很重要-例如在部署新事件时。 当主服务器中的错误加载了游戏的事件前版本时,它将清除有关活动事件的所有活动信息。

“从6:50 pm到7:00 pm的十分钟中,任何活跃于游戏中的玩家都失去了比赛进度的这些部分:公会老板级别,召唤硬币余额,支持包的等级进度,事件礼物,事件集合索取状态,活动商店购买状态,幸运宝石销售购买数量和排行榜组位置,” jmarr写道。

这是对游戏团队的证明,该错误已隔离,已修复,并且事件在十分钟内得以恢复。 但是,对于希望早日抢占先机的玩家来说,赛事的开放时间充满活力。 这些努力的记录就是丢失的东西。

游戏团队首先专注于恢复正确的公会首领等级和召唤玩家的硬币数量,挖掘所有可用数据以获取正确的数量。

但是现在有更多关于排行榜的客户服务门票。 玩家在整个地方都看到自己和其他玩家的副本。 这是主服务器崩溃在事件发生的早期消除了他们在排行榜上的进步的第二种效果。

“例如,如果一个球员在国王联赛第3组中获得1000万积分,那么当他们的组位置丢失时,则可能会将用户替换为第6组,” jmarr写道。 “这将导致该玩家的’幽灵’以10m的积分停留在第3组中。 随着他们获得更多积分,这将反映在第6组排行榜上,而不是第3组。”

查找,识别和删除幽灵播放器是一件相当简单的事情。 但是,对于主要由鬼组成的团体,它创建了数字鬼镇-这些地区只有一小部分是真实的人。

然后,识别出这些幽灵小镇中的玩家,并将其随机分配到人口更多的人群中,这导致一些玩家看到自己在排行榜上的位置从一个时刻到下一时刻都发生了显着变化。 可以理解的是,这让那些因在鬼城中竞争而排名上升的玩家感到沮丧。

不幸的是,事故是不可避免的。 但是, 传奇团队对这一特殊事故的迅速反应将撞车的影响降到了最低,即使他们无法完全消除撞车造成的所有挫败感。

有关更详细的细分,您可以在此处查看jmarr的整个论坛帖子。