中文站

游戏主程成长史:《倩女幽魂》徐海东痴与不痴

2018中国杭州云创大会将以“开放·生态·赋能”为主题,汇聚行业领袖、技术大咖及产业链从业者,探讨数字化浪潮下云计算、大数据的发展方向和应用趋势,分享教育、游戏、制造、金融等行业精英的前沿实践,重点解析工业智能互联网和数字化产业园区的升级之路。

此次大会还将基于开放技术和创新模式与大家一起探索打造联合生态圈,推动产业智能化升级,引领互联网+企业数字化转型;以知识共享促进云计算、大数据普惠化的道路,形成数字经济共同体,成为未来中国经济增长的新引擎。

为了帮助大家进一步了解这场全球前言技术共振盛会的内容,网易云采访了参会大咖,以飨读者。

以下为本次访谈正文: 

“人生路,美梦似路长……”1987年版《倩女幽魂》主题曲响起,相信这首承载了太多人记忆和情愁的歌曲,就会立马将人带入那凄美浪漫、荡气回肠的人鬼之恋中,想起“哥哥”张国荣英俊潇洒、憨厚可爱的形象。

有人说:小倩往去,世间再无宁采臣。也许是巧合,或许历史注定着有些事就是存在某些关联和延续。

他,在《倩女幽魂》上映前后的年代出生。二十年后,他参与网易游戏《倩女幽魂》研发,从一开始的边缘化工作音效、随机地图拓扑结构的生成到IM系统,从帮会系统再到游戏的独特玩法,最终他成长为《倩女幽魂》的主程,来到舞台中央。

他虽无“哥哥”张国荣在电影里那般痴情和憨厚,但他对游戏的痴迷和独特的性格让接触他的人记忆深刻。大部分人工作虽然谈不上干一行恨一行,但下班后都是想丢开工作相关的事;而他的工作是做游戏、玩游戏,回到家后也还是喜欢趴在游戏上,甚至疯狂的时候凌晨一两点还在玩。他对于自己内向的性格形容到:“有的人是在现实里内向,在网络里比较活跃,而我是全方位的。”他解释,网络里能自己干的事,绝不会找第二个人。

太过于执著一样东西,往往容易被这样东西吞噬。但他拿得起,放得下。大一痴迷游戏,大二迷上程序设计比赛,并干翻一帮学校集训队,最终在后续比赛中拿到ACM Regional金牌。

他,就是《倩女幽魂》主程徐海东。

两度“金盆洗手”

徐海东玩游戏求精不求多。他不会玩很多游戏,但只要玩,都会非常投入进去,玩得很深度。

他最早玩的网游是《奇迹MU》,当时他经常逃课泡网吧,当萦绕在身上的烟味累计到一定程度时,他突然发现,不能再这样了。“太痴迷了,已经对学习有很大的影响了。”徐海东说。

而当时,他已经是最顶尖的玩家之一,“游戏里的人物等级已经达到一个新的阶段,可以带上翅膀。”他说,整个服务里大概也就二三十人能等到这样的高度。于是,他在某个晚上平静地打开游戏后,就暂时挂“标”而去。

这是他第一次“金盆洗手”,而第二次金盆洗手发生在大一那会。进入大学后,徐海东没什么方向,所以大一又回到游戏,不过此时的回归和往日有所不同,他只是在玩CS等不会太过沉迷的游戏。此时,他并不知前方有一个比较大的转折在前方等着他。

有一天,辅导员发了一个比赛的通知,徐海东去参加了一下,发现他连自己最基本的规则都不了解。这一天,他知道有程序设计比赛叫ACM,也是这一天,他的兴趣暂时从游戏转移到程序比赛上。

比赛回去后,他把自己关在一个小房间里,埋头吭哧练习习题一个暑假。

从干翻一帮学校集训队,到赢得ACM Regional金牌

再次归来的徐海东,已经从顶尖游戏玩家变成熟谙程序设计的人了,他在一次校内赛里初露锋芒——干翻了一帮学校集训队里的人。

崭露头角的背后,是他把游戏上的疯狂用到了学习中,甚至有过之而无不及。“有的时候疯狂刷题刷到凌晨两三点。”他解释,并不是自己不想睡,而是晚上不做几个题就会失眠,无法入睡。

这次显露头角引起了校队教练的重视,教练把他招进了校队。在这个校队里,他认识了很多志同道合的朋友,包括现在网易雷火游戏技术部门总监卢小军。“他当时是集训队的第一届队长,后来我是第二届队长。”徐海东解释到。

徐海东并不满足于在校队取胜,他认为这并不能说明什么。内向、不善用言语证明自己的他认为,一次成功或许是侥幸,而更大的成功才能说明实力。ACM程序设计竞赛是全球最具影响力的大学生程序设计竞赛,他的目标是这里。

2007年11月,他从在六七十只参赛的队伍中遥遥领先,并最终取得ACM国际大学生程序设计竞赛(成都赛区)的金牌。比赛中,徐海东完成了一道比较有决定性的题目。这是道图论的题目,他做了优化,把时间复杂度降了。如果图论设计理解不深的话,会很难解除,“我们积累了三年的相关经验,才把这道题解出。”他说。

被云风大牛“Diss”

徐海东大四由于一直在比赛,并没找工作。他开始考虑工作时,已经到网易游戏的卢小军把徐海东推荐给了云风。

云风是游戏领域的大神,他真名叫吴云洋,是前网易游戏核心成员、杭州研究中心总监,也是网易《大话西游》、《梦幻西游》等游戏的重要开发者。

在云风那,徐海东的面试并没过,但后来成为网易杭州雷火游戏部技术总监的程龙给了他机会,并最终拿到Offer。而此时,徐海东也拿到了巨人的Offer。

在这个十字路口怎么选?徐海东渐渐有了答案:学技术肯定是网易,网易游戏是国内最强的。除了云风外,当时面试他的程龙也是大神,国内第一个Online Judge系统就是他做的。

“圈子里大神级的人物都在网易,于是我也就对网易情有独钟了。”徐海东腼腆地笑着说。

效率提高了四五倍

进入网易后,徐海东一开始接触的是一个引擎,他需要把代码搞懂,比如是怎么运作和跑起来的。接着他开始做随机地图,把那些偏规则、四方的迷宫图进行优化,变得不那么规则。这工作看似不起眼,但价值很大。“因为它解决了人员不够,而地图需求量大的问题。”

而更有价值的是,这样的地图除了提供新的玩法外,也能拿来防作弊。“如果我们发现这个人有外挂嫌疑,就可以把它传到这个迷宫里,让他走出来。如果他不能够顺利走出来,基本上就可以断定用的是外挂。”徐海东说,这招对于外挂来说是无解,因为地图是完全随机的,外挂无法实现记录迷宫的结构。

高兴之余,徐海东并不轻松。因为他发现,生成随机地图会爆发巨大的计算量,这对游戏的稳定性是个非常大的考验。他琢磨后发现,这和大学期间参加竞赛的一个点很相似,它同样都是解决时间复杂度较高的问题。

按照这个思路去优化算法,效果立竿见影。“随机地图生成的效率提高了四五倍,满足了游戏的需求。”后来,结合随机地图,徐海东也开创了一些玩法。比如在轻功玩法里,可以投放技能书和道具等。

“吓了一跳,感觉要一个季度的时间才能搞完”

之后,徐海东相继开发了倩女的IM系统和帮会系统,以及大量的活动和玩法。

其中,帮会系统的开发对他挑战最大,挑战体现在两点:

第一点是,没有基础,哪怕是任何相关的内容,需要什么就得加什么;

第二点是,整套的业务流程非常多,比如加入帮会、申请帮会、创建帮会、帮会活动、玩法、帮会场景创建等;

说起那时的感受,徐海东说接到业务内容时自己吓了一跳:“感觉得花一个季度的时间才能全部搞定。”他表示,现在光看内容这块的代码,也都有上万行代码。

除此之外,他不光负责服务器端,也得画那些界面,思考按键摆放在哪里更合理,相当于从客户端到服务端整个都过了一遍。前后,他用了一个多月的时间,才把整个流程搭建起来,并逐渐填充“内容”进去。

一些开创性的玩法也随之而来,比如帮会救急令、双生国玩法、接力赛。“接力赛的玩法就应用到之前做的迷宫,看哪个用接力的形式最先跑出来。”徐海东说,他们会定时更新和推送给玩家。

正是这些创新的玩法,让《倩女幽魂》从2011年正式发布到现在,都还属于比较活跃的一个游戏。

瓶颈一定要用数据做验证


徐海东认为,每款游戏的瓶颈不是靠想出来的,而是要靠真实数据得出结论

从08年1月2日实习,到今天徐海东已在网易游戏工作了十年,他现在已经是一名主程,负责一款游戏的方方面面。

服务器端优化上,他认为,每款游戏的瓶颈不是靠想出来的,而是要靠真实数据得出结论。他说,《倩女幽魂》优化的过程中,一开始大家都认为热点是在技能释放、PK,但通过采样服务器数据后发现,热点居然在自动寻路。“这是整个团队意料之外的。”这件事情加深了他的认识,不要自以为哪一块是你们的瓶颈,一定要有数据支持之后再判定。

游戏安全,徐海东说,有两块一定要做到。一是防DDoS攻击;第二是防外挂,防外挂除了随机地图外,徐海东的团队也做了一整套机制,比如说内存方面的检测等。而后来推出的口袋版《倩女幽魂》上,则使用了网易云易盾的移动安全一些服务。

对于主程的职责,他说,主要是攻关项目遇到的难点,尤其是在瓶颈上做一些突破,其次是人事上的管理。对于如何成为一名合格的主程,他指出,首先得技术上过硬,其次是了解技术上热点,以及能创新。

网易游戏的主程是如何成长的,徐海东说,网易游戏是有一套机制存在的。“每过几年,特别资深的老人会组建新的团队开新项目,慢慢替换一些新人上来。”为此,这位在网易待了十年的老游戏人说,他特别喜欢网易的文化。“给你个人充分发挥的空间,而且领导没有架子,跟朋友一样,没有勾心斗角,人与人关系上非常融洽。”他说起领导的没有架子,大家会在一起玩游戏,领导经常是被虐的。

下班还玩游戏

有些人做游戏,工作之外就不怎么玩了。“你下班会玩游戏吗?”

“还玩。”他说,现在每天至少在游戏上花三四个小时。“疯狂的时候,下班回到家还玩到凌晨一两点。”不过他强调,游戏从业人员玩游戏和纯粹玩家有点不一样,他会想某个东西是怎么实现的,能不能拿到自己的游戏里来。

“我游戏玩的不是很多,但是每一块玩的都特别精。”

“那你妻子不会对你有意见吗?”

“她也玩游戏,她玩游戏花的钱比我还多。”说到这里,徐海东情不自禁地笑到:“她就是做游戏策划的,有时我晚上睡觉了,她可能还在玩游戏。”

“那你会让你的孩子玩游戏吗?”“会,家里买PS4主要就是给他。”但徐海东并不鼓励玩游戏,他会控制时间,且一开始只让孩子去了解一些必要的知识的点,比如说识字之类的;后面也让孩子接触一些赛车游戏,发展孩子的协调行动。

他建议别管的太严,太晚接触游戏不好:“网上应该有很多报道,因为没玩过游戏,到大学后就放轻松的人——第一期班级名列前茅,第二学期就挂科了。”

结束语:能一个人干的事,绝对不会找第二个人

说起生活中的自己,徐海东说性格偏内向,而且比较宅。“这和有些人不一样,有些人现实里内向,游戏里比较活跃,而我是全方位的。”他说,网络里一个人能干的事,我绝对不会找第二个人。这并不是说徐海东没有朋友,不管生活还是游戏里,他都有很多好朋友,只是他比较独立。

独立之外,他也敢作敢为,超越常规做一些别人不敢做的事情。比如有一次他直接去外网在线服务器上采集相关数据,当时的主程吓了一跳:“让他小心,别把服务器搞垮。”而这是这种初生牛犊不怕虎的大胆做法,对后面他们的游戏优化起到了比较大的帮助。

这些也可以从他泡泡上的签名端倪得出,他的签名是:“战火为何而燃?秋叶为何而落?”

这句话来源于魔兽世界,完整的句子是:

战火为何而燃 秋叶为何而落

天性不可夺

吾辈心中亦有惑

怒拳为谁握

护国安邦惩奸恶 道法自然除心魔

战无休而祸不止 吾辈何以为战


如果你用心揣摩这几句话,你就会明白,他为什么是这样的一个人,以及痴迷游戏,却不会被这个执念的负面所影响。