白节门户网站 > 娱乐 > 海港城线上娱乐网址_暴雪程序员的幕后故事:差点因为死灵被炒鱿鱼

栏目热门

整站热门

海港城线上娱乐网址_暴雪程序员的幕后故事:差点因为死灵被炒鱿鱼

发布于: 2020-01-08 17:24:27

海港城线上娱乐网址_暴雪程序员的幕后故事:差点因为死灵被炒鱿鱼

海港城线上娱乐网址,本文作者 雪暴君,未经授权请勿转载!

在2017暴雪嘉年华上,有一个特别为暴雪的程序员们准备的座谈会—“代码争霸”,在这个座谈会上五位来自暴雪各个部门的程序员和我们分享了他们在工作中的经历和趣事。不同于设计师的是他们可能无法决定一个角色的强弱,但是却能让你永远使用不了这个角色(笑),以下是座谈会的详细内容。

derek dupras :早上好,今天我们找到了五位仍然醒着的程序员,也许他们现在才刚刚起床。先来介绍一下我是炉石的程序经理derek dupras。

nick rivera:我是暗黑团队线上组的高级软件工程师nick rivera,我已经在暴雪工作9年了。

andrew murphy:嗨,我是andrew murphy,我是战网平台的首席工程师之一,我已经在暴雪干了大约三年半了。

seyil yoon:早上好,blizzcon。 我叫seyil yoon,我是炉石传说团队的首席服务器工程师,我已经在暴雪和炉石项目呆了三年半了。

ryan newsome:早上好,我叫ryan newsome。 我是网络和移动软件工程师。 我已经在暴雪一年多了,我是刚刚发布的战网移动应用程序团队的一员。

andy tran:早上好,我叫andy tran,我是暴雪公司的网络和手机软件工程师。 我在这里已经有9年半的时间了,我在很多网络项目上工作过,包括论坛,我们的新系统,魔兽世界档案库和星际争霸2玩家资料库。

derek:那么,让我们从一些简单的问题开始吧。 nick你最大的失误是什么,你从中学到了什么?

nick:好的,这个故事的关键是我还能站在这里跟大家讲故事而不是被炒鱿鱼。那是在死灵法师即将推出的时候,我们对此非常高兴,而不仅仅是因为死灵法师成为一个非常酷的职业,而且对于我们这个在线小组来说也是非常重要的,因为我们将在游戏商店中发布它。

那时,游戏内的商店仅在中国推出,因为游戏在那里是免费的。 游戏中的商店是一个很酷的系统,因为它完全是由数据驱动的,这意味着你只需要在某个数据文件的某个目录中添加一些东西,然后它就会出现了。而且这里大多数工作不需要触摸到游戏或服务器数据。

我之所以说“大部分 ”,是因为死灵法师是个例外。游戏中的服务器必须在我们上线之时知道什么是死灵法师,否则我们的线上服务器就会在我们监控软件的屏幕上统一发出警告说:“ 我不知道那是什么鬼 。”

还在这仅仅只是个警告。 我们预计到这个警告会出现,没有什么更糟糕的事情发生,但是我们也不喜欢在我们的监控软件中出现奇怪的警告,因为它产生的误报会让真正的问题变得难以追踪。

所以我们评估了一下,看看如何去掉这个警告,然后我们想出了一个非常简单的解决方案那就是:“好的,我们只需要修补一下当前的服务器,让它知道什么是死灵法师,那么它就不会瞎嚷嚷了。“

这么做不会发送什么消息,它们不会发送给游戏,而是遏制警告信息罢了,然后生活还会继续。这个修正大概也就是一两行代码的事儿,所以我快速地写好然后上线了,当时我就想着:“呵,这也没啥大不了的“。

然后,几个小时之后,我接到一通电话,在中国上线推出之后,很多玩家都报告说他们不能再进行任何购买了。 而我的脑海里却是这样想的:“ 呃,不是把,这么小的一个修补,只有两行代码 ,”然后我们努力去追踪问题的根源,你猜猜是啥...就是那两行修正代码。

显然我丢人丢大发了,但是我们也已经恢复了过来了,因为改回原来的很简单,一切都恢复正常了。 虽然我是有点尴尬。

所以,那天我学到了两样东西,不管事有多小,总是要先测试再推出,而更重要的是偶尔犯一个错误是可以的 - 即使那看起来好像是世界末日,但是最终都会有一个解决方案的。 所以,如果你犯了一个错误,你只需要自己去承担就可以尽快解决问题,并且最后能够完成这个任务的。

derek:谢谢nick分享的这个故事,我很高兴你仍然和我们在一起。

nick :我也是。

derek:andrew能跟我们分享一下发布新补丁,新版本,新资料片时会面临哪些挑战么?

andrew:我是战网购物团队工作的,如果你曾经在游戏中买过东西,如果你曾经访问过网上商店,如果你曾购买 过激活码,或者曾经激活过什么东西的话,那么你都是通过我们平台来运作的,而这一步似乎都没有人会注意到,事实上,当平台在运作的时候,甚至没有人真正意识到我们的作用。但是我们确实有时会遇到一些真正有趣的挑战,因为我们需要支持每一款游戏。

我们建立了一个真正高度可扩展的系统,它是分布式的,你可以从世界上的任何地方登录并同步游戏里的东西。但有时我们也会遇到一些挑战,比如风暴2.0时,他们说:“嘿,我们想在第一天就送给玩家一大堆战利品。“

我们说:“好的。 那一堆是多少呢?“...12包到70包之间吧。“”哇,这么多啊,那他们什么时候能够拿到这些?“”只要他们登录就好了。“ ... 然后我们就算了一下,要做到这一点,我们的系统会比以往任何时候都要繁忙上百倍。

因此,我们必须要开始做负载测试,我们必须想出更快的方式来写入数据库,我们必须要想出新的方式与游戏进行通讯。然后还有客服团队,他们必须要能确保玩家获得他们的东西,还有如果出现什么问题,我们要如何纠正它,以及所有其他的一大堆东西。

所以在每一次的补丁暴雪除了游戏设计之外还有很多其他的新东西要搞清楚并确保它是稳定的,这样玩家甚至不需要意识到我们团队在这里所发挥的作用。

derek :好的,谢谢andrew。 那么,seyil我们是在同一个团队中,我很好奇,你在炉石工作时最令你难忘的东西是什么?

seyil :让我想想,我是在发布之后的一个多月就进入炉石团队中工作了,我记得是在2014年3月。在我刚加入的时候,我做的也是一个团队新人要做的工作。 我负责抓虫,当时我们正准备推出纳克萨玛斯之诅咒冒险篇。

所以我只是在那里修改bug,但是我所做的第一件令人难忘的事情就是我们第一次的资料片哥布林大战地精。 (如果你还记得的话)那里有一张名为热砂港狙击手的卡片 - 而热砂港狙击手这张卡真的很有趣,因为它能做到一些你此前在游戏中无法做到的事情,那就是改变英雄技能的攻击目标; 而我们当时的目标指示系统可能比当时需要的更复杂一点。

所以这就变得真的很有意思了,因为我正在深入学习以前从未使用过的这个新系统,而工程师是喜欢解决问题的; 所以深入挖掘这些东西的运作机制是很有趣的。而另一个非常有趣的事情是我是来自一个更加注重技术的行业,这是我第一次和一位技术美工一起工作 - becca abel。

所以这真的很酷。 我以前从来没有和一个艺术家合作过,而且这真的很有意思,因为你编写了这个代码,并且和一个艺术家一起工作,当你玩热砂港狙击手时,你会在屏幕上看到你的代码活了过来,突然之间,英雄图标的变化,你可以开始瞄准别的东西了,这真的很酷; 那真是一个非常酷的感觉很好的时刻。 所以,这是我在炉石第一个令人难忘的时刻。

derek :谢谢你。 那么,ryan ...你一直在战网应用上工作。 我希望这里的每个人都能来下载它。确实很棒。 对此,我真的非常感激。 你可以跟我们分享一下推出这个应用程序所面临的一些挑战吗?

ryan:好的。 那么当我们开始制作战网移动应用时,我们清楚我们想要让iphone和android用户都满意 - 这本身就是一个挑战。 我们必须要做的事情之一就是为给定的每一个平台都单独创建一个用户界面。 我的意思是:如果你是使用iphone的用户,那么你在应用和体验中得到的所有内容都是你熟悉的iphone味道; 对于android应用的用户也是如此。

为了达到这个目标,我们让工程师和设计人员紧密合作,让设计人员能够利用工程师的熟悉的平台经验和专业知识,分析我们在应用程序中放置的每个ui组件,以确保它们适合于平台。

我们想让所有东西都尽可能地保持一致。关于两个区分的一个例子就是主屏幕上的标签。 如果你分别看过android和ios应用程序的话,它们是处于完全相反的位置上的,甚至android和ios访问配置文件都是以不同的方式来运作的。而当我们真正开始制作应用和设计工具时,我们就遇到了我认为是身为软件工程师必须面对的最困难的事情之一 - 那就是抛弃我一直努力工作制作出来的东西。

很多时候,在我们做出来一个组件并实际使用它之后,或者是在用户测试之后,我们确信那是错误的。又或者说设计方向有了变化,规格有了变化,以及有了更多的要求等等。

有时我们可以对已经存在的东西进行重大修改,但是很多时候我们必须作出艰难的决定,那就是抛弃现有的东西,从头开始。 这样能带来了更好的代码,更好的组件,最后得到更具暴雪品质的应用程序,这对我们的玩家来说是一个更好的用户体验。

derek :谢谢,非常感激。那么andy,现在有很多很棒的电子竞技赛事,而且我知道你一直在电子竞技平台上工作。 你能告诉我们这个平台的一些目标是什么,以及有什么样的挑战。 你是如何帮助团队来实现这些目标的?

andy:是的,暴雪在电子竞技中一直扮演着重要的角色。 所以我们希望为所有粉丝提供最棒的全球体验来追踪所有的电竞游戏。对于我的团队来说,我们希望建立一个工具和服务的共享平台,来执行最常遇到的动作,如支架逻辑,配对管理,缓存,以及其他优秀的api功能。以便各种各样诸如风暴hgc和守望世界杯这样的电子竞技项目可以集中精力做好自己的网站整合,以体现自己独特的电子竞技体验。

所以,从一开始我的团队就决定,我们想要专注于有一个精准而不断更新的文档,并拥有所有的一切示例,这件事情说起来容易做起来难。对于这个文档,我们的经验是,我们很容易做出一个新特性,但却没有计入文档字段里,或者甚至忘记了记录整个特性; 而且我觉得忘记更新几个月前添加到文档中的所有示例是很正常的。

所以,我们应对这个功能的方法实际上是在我们的自动化测试中增加了一个步骤,它实际上会将请求记录到响应当中,以便我们随后可以在示例和文档中使用它们,这几乎就可以确保我们的示例和我们的文档始终是最新的。除此之外,我们的测试将会检测是否我们引入的东西缺少相应的文档字段,如果是则不会通过测试。

这样就迫使开发者去记录一切数据。因此,我们的平台几乎拥有100%的文档覆盖率,并有助于我们推出各种各样各种电子竞技网络体验功能。

nba外围盘口