去年无聊的一个下午实验课,接到了一个杭州电话:“你好你是任磊达吗,我是网易HR想约你面试,能不能留一个QQ邮箱给我,我怕我们的面试通知发不到你的邮箱当中。”,到实验课中告诉好友,网易hr约我面试了!一时引起周围同学注目。

雷火的面试官真是人格魅力满分。到了网易发现就坐在我旁边工位真实受宠若惊。开始面试时候直接问划水项目herodict,但在面试过程中他特别温柔的一个劲问:“你最擅长的部分是什么呀”,然后任由我发(吹)挥(水),各种问题打不上,一时我以为我挂了。。

没想到过了两天曹神的二面电话打来了,记得第一个问题是”你最喜欢的游戏是什么呀“,”狼人杀“,”没事我不玩狼人杀,我们来聊聊英雄联盟的一个场景吧。。。“,过了智力题之后,大概网易面试就稳了。。。三面是萌老大面试,问题就跟犀利了:”你喜欢玩狼人杀呀,这个游戏的技术难点是什么“

可能因为hr面讲故事口才突发,给hr姐姐讲了半个小时故事,惊喜的赚到了口头offer。

正值期末考试,觉得要做一些入职前准备,于是就下载了雷火公司发行的终结者2,在别人天天紧张期末周的时候天天吃鸡w(虽然后来发行这个并不是雷火开发的哈哈哈),以至于计算机网络半夜通。

然后就一张机票来杭州啦!第一天就因为找错宾馆分店,然后就在杭州享受了一波地铁沿线洗脚服务。。突然跑到线城市,被路上横冲乱撞的摩托吓得还是很不适应。

入职第一天老大把我领到老王那里,老王马不停蹄顺手把我交给胡鹏。。比我提取十天来公司的鹏鹏表示十分吃惊,“你以前用过unity吗”,“没”,(老王)”那你先帮他装一下unity“,然后我就开始了一个月学lua学unity顺便成为台服的测试实习生生涯

游戏实习生么,核心就是上班玩游戏啦!萌老大与我们交流游戏比交流工作多多了,每天中午ZC小朋友玩炉石的时候据说萌老大就在后面喊666😁,有天早上我来公司早了,老大凑过来”你玩守望先锋吗“,”不玩“,”来我这里有块守望先锋鼠标垫送你“。。。

望着分完的可乐,萌老大拿起一瓶雪碧,一本正经地问我:”这个算肥宅快乐水吗?“

网易可以说是肥宅的天堂,每天到公司往往可以看到一件可乐;同事考证了或者犯错了也会有披萨炸鸡享受。在杭州唯独两次吃到小龙虾还是在棒约翰上面的,味道真棒。

“为什么可乐叫肥宅快乐水呀”
“因为可乐便宜又好喝呀!”

来网易的第一周,看着萌老大下班后在公司打魔兽的我就开始吃鸡了。老大和实习生最多的交流是看我们打游戏喊666,据郑晨说他炉石套路十分吸引老大围观。下班后也是约鹏鹏吃鸡玩萌老大的PS pro。之所以叫丁磊网咖也不是毫无道理。。不过最近工期变得紧张一些后,只能在公司和策划小哥哥打三国杀到一点半了。。

部门活动团建可能是实习生能体验到的最大福利了hhh,平日里的肥宅们一个个突然变得生龙活虎只剩我一个保持着肥宅的尊严。。KTV一个个变成麦霸,皮划艇围成艇队跑步,骑个自行车甩了我三公里。。。

传说中互联网公司最好的食堂,听老王说得去广州园区才能体验。。在杭州园区只能体验最有心机的食堂,每天最好吃的一顿一定是夜宵,早饭早来一个小时能喝到橙汁和牛奶,周六加班有概率能找到小龙虾。。打盒饭到工位上加班的菜可能比食堂好。反正我。。没有抢到过几次。不过夜宵有个trick,奶油小蛋糕一定要九点半准时到食堂二楼,在十分钟内保证抢光。

作为大厂最大的优势是跨部门合(活)作(动)了,大规模广(减)播(脂)体(大)操(赛)贴心的把结束世界设到了洗完澡出来刚好可以吃到夜宵,混进了周五狼人组织可以凭借一身本事去骗骗小哥哥小姐姐我到底是湖南人还是广东人hhh反正被发老乡牌不容易吃刀!

总之在老大听说我要离开之前,每天过的小资日子还是挺爽的。每天两小时工作量之后就快乐的打开易信看今日菜单是不是又把本帮菜和粤菜换了个名字骗我们去吃。然后老大一听说我要离职就开始疯狂加班(到六点)的日子了,溜的那天下午还拉着我修了两个bug。。。

看到一个肥宅说出他是做游戏的,旁边的小姐姐眼中突然泛出了光芒

来雷火之前,打了一个学期游戏。以致于第一次在职业录用上面有了一些规划–也就是发现是开发游戏的时候充满了好奇。那么游戏开发究竟是什么呢?

一般而言,游戏是以项目组为单位进行开发,一个项目组有项目经理作为老大,然后就是下面的pm小姐姐来管理项目进度。具体的以策划、程序、美术三个智能进行迭代开发,策划大佬想方案文案后开三方会议和程序美术撕逼。。然后美术大大开始画图程序哥哥们开始写业务啦!

具体在程序环节,分为客户端和服务器。对于小游戏而言客户端的工作量更大,服务器需要仔细教研但是对于大型的MMORPG,服务器需要做的划分和视野控制就很重要了,另外用UDP等trick做网络延迟控制也是体现技术的一部分,如最近很火的《第五人格》和过气的《刺激战场》,同样的慢延迟(公交车/高铁上)吃鸡的卡顿感会好很多

在雷火我主要做的是客户端实习,对于客户端中最关键的是调优游戏的打击感,但是和我没什么关系,因为我们对于游戏引擎进行了一层封装之后再lua里面刷业务代码拼拼UI就可以了。游戏中底层技术活是引擎,稍高一些的是项目组对于引擎的封装。一个好的项目应该在封装中不涉及业务代码,然后就可以用lua在业务中快乐的热更新了。但是对于祖传项目而言,事情往往不是那么简单。在很多代码入口都看见萌老大加hook的需求,可是一年过去了仍然是TODO:

毕竟,相比于代码质量,游戏代码更重要的是work。。

一般刚来的同学主要任务是修bug,必现bug打印一下数据流一般就解决了(这种机械活应该交给AI做吧hhh),偶现bug就会比较蛋疼。记得一个偶现bug我修了一周,都开始思考人生,讨论lua函数重入的框架设计问题了。最后发现还是业务上面的break写成return了。

然后拼UI也还是有些讲究的,毕竟以后要交接UI工作给策划(误),2d在unity中有两个流派,ugui和ngui,一个unity后来居上象征未来,一个资料多使用者丰富。在这两个ui框架中以组件的深度分层–当然是先以panel的深度分层,而后是组件的深度。这样控制的渲染顺序可以有层级的控制对象的分布。另外有一个坑,就是对于3d对象,需要调整隐藏状态或者z坐标来结合2d位置。对于渲染窗口的隐藏一般就是移到偏僻的地方就可以了。

除了UI就是写一些业务逻辑了,简单来首把业务分层,然后用事件机制解耦合来做。数据层和视图层分开写可以有效地提高debug效率,用类进行基本的封装可以在set,get中加钩子来加快数据流的追踪。然后对于网络数据进行打印可以有效的甩锅给服务器。一个很重要的事情是不要一边吐槽祖传代码一边相信前辈的注释。。。尤其是修bug时候。

在闲暇时候,我接触了一下互娱开源的测试框架airtest,这个东西通过socket来建立unity和应用程序之间的通信,然后抓取到了视图层拼的ui,从而可以编写测试代码来测试系统功能。但是对于脸黑的我来说,该测的bug跑了一天的脚本没有跑出来,缺挖出许多陈年老bug并不是罕见的事情。

在雷火实习的最后一个月,萌老大要我去接触一下神谕的项目,他们组用c++对于cocos进行了一个较好的封装,然后业务就更加纯粹了–拼UI做适配,神奇的cocos全部ui坐标都是拍脑袋+微调出来了,呆了一个月觉得靠近了炼丹工程师一步。

在别人封装好的框架下刷脚本还是挺肥宅的,最后记下测试大哥送我的一句话自勉:“你作为一个程序,怎么能相信玄学呢”