现在是2020年,距离上一次发博已经过去了两年半,这两年半发生了太多太多的事情,庆幸的是,没有发生什么天崩地裂的事情,生活依然在继续。前几天想登上来看看,发现验证邮箱给忘了,用另外一个邮箱给官方客服发邮件沟通了好久,让我等处理,最后还是自己找到了验证邮箱。登上来之后看了看自己之前写的那篇这样的大学,尬的我脚趾快在地上抠出梦幻城堡了。时隔良久,再看自己以前写的文章真的是一种折磨,字里行间透露着各种幼稚和不驯,但是我依然不想删除,或许这就是成长的魅力吧,时隔多年,回头再看看当初的年少轻狂,也是一种特别的滋味。
星途
说说自从上次分别之后都发生了啥吧,那之后我一直在准备校招,做各种公司线上线下的笔试卷,真的是各种公司,因为只是想单纯锻炼一下自己,这样到真正自己想去的公司,就可以发挥好一点。面试了很多游戏公司,福州最好的游戏公司,到最后一轮因为自己的失误,材料没有准备充分,导致HR面试没过。厦门最好的游戏公司,校招的时间比较早,导致去的时候完全没有准备,我感觉是没戏了,就报了那个公司的游戏策划,因为我感觉自己平时游戏玩的挺多的,而且游戏策划是短时间内最容易准备好的职位,后来笔试虽然过了,但是面试真的很糟糕,当时问我平时玩什么游戏,我居然会说出王者荣耀,真的脑残,到真正去游戏公司和那些策划打交道之后,才知道不是什么人都可以当游戏策划的。我只想说,机会都是给有准备的人的,自己没准备好真的只能怪自己,所有如果有后浪的话,我的建议就是一定要尽早开始研究自己要去的公司的信息,如果已经决定了要在某个城市找工作,那就可以先锁定那个城市自己行业的最好的那个公司,然后开始了解这个公司的各种信息,校招时间,面试流程,越好的公司往往校招时间是越早的。所以,真的要提前好好准备。
再后来,就去报名了第二志愿的公司,结果是笔试过了,技术面试没过。我面试的时候准备了两个游戏demo在手机上,一个是用cocos做的2d跑酷游戏,一个是用unity做的3d闯关冒险射击游戏。我自以为有了这两个demo,在面试的时候应该会有所优势,因为在面试的时候已经能拿出自己作品的在我了解的情景中是不多的,即使有很多人也是拿着网上别人的作品去的,而那两个demo确实从头到尾都是我自己做的,期间遇到的各种问题,都是我一个一个网上查资料解决的,但还是有几个问题实在找不到原因,可以说是以我当时的能力无法解决的bug吧,就一直留着。然后第二志愿的公司当时看我演示的作品看到了那个bug,就问我这是什么原因,为什么会有这个问题。我就说这个我确实不清楚,也查过,但是找不到解决方案。好了,情况就急转直下,我明白他的想法,他是觉得我没有深入研究,没有独立思考的能力,只留于表面。确实,如果当时我花个几天专心研究那个问题,哪怕花上几周,应该是可以解决的,即使解决不了,也可以收获很多。但是当时的环境,太浮躁了,每天都在东奔西跑,花花绿绿的招聘信息铺天盖地,那个不起眼的小bug一直没放在心上,总觉得自己做出这样一个不错的作品已经很强了,一两个bug不足为虑,但是我错了,之后当然是没过。如果有后浪的话,我又想发表我的建议了,面试作品多真的不是什么好事,只要一个拿得出手的作品就可以了,而且那个作品一定要精,好的公司往往很注重细节,不要忽略了任何一个小小的问题,有问题一定要及时解决,一定要有能冷静下来认真研究某个问题的习惯和能力。
那以后,我就去报名了第三志愿的公司A,当时笔试的题目都是学校学的一些知识点,都挺简单的,我估计是挺高分的。到后期面试的时候,我说我有两个作品可以展示,但是面试官说等下再看先回答几个他准备的技术问题,其实我感觉自己回答的也不是很好,有几个还答不上来,答完之后就让我回去等消息了,连作品都没看,我感觉自己应该是凉了。有趣的是,在公交站等公交的时候,我很久之前面试的一家也是第三志愿的公司B打电话跟我说我过了,当时还挺开心的,因为之前面试过了很久都没有消息,现在突然告诉我过了,估计是没人了,找个替补,虽然是替补而且价开的不高,但是这家名气其实挺大的,如果能去,是不错的。紧接着,我就又收到了刚才面试的公司A的电话,问我走了没有,让我直接回去最后一面,回去后随便聊了聊,我感觉多半是过了,后面也确实是过了,我感觉应该是我的笔试成绩不错的原因,其他的面试啥的都是小问题,他们更看重在学校成绩这块的表现,这也说明了,专业成绩好确实有点用处的,所以如果有后浪的话,也可以参考这个比较老实的做法,把专业知识搞清楚。不过期间我在那家名气比较大的公司B待过一个星期就找个理由辞职了,虽然那边福利什么的都挺好,但是首先是做的东西不是我喜欢的,是做网站平台的,和游戏开发没什么关系,然后我对网页开发那些框架啥的也不感兴趣,然后是工作环境不是很好,像在网吧五连坐,连个隔栏都没有,很压抑,后面就直接辞了,在公司社交账号注销前几分钟,还有一个不认识的姐姐问我为什么这么快就走了,完全不认识的,就说家里的事情。最后就去了那家公司A做了游戏开发,直到现在。我在的那家公司,在知乎上其实风评不佳的,但是那时所在城市确实也没有更好的,很多小的游戏公司我也去面试过,都是去涨涨面试经验,虽然都过了,但是给的待遇真的是不堪入目。在没有其他更好选择的情况下,很多时候只能妥协。虽然我也想去更大的公司,想拥有更好的待遇,但是当下情况已经如此了,自己的能力也是有限的。
小岛
一开始就先说件比较后悔的事,就是答应去公司A后,HR问我什么时候可以去实习,他们当然是希望我越早去越好。其一是当时很多同学都已经确定了去处,我也是一腔热血,想早点开始接触技术,让自己快快成长,其二是实习也有钱拿,其三是如果不去可能他们对我的印象会变差,不想让事情变糟,因为我已经辞了A公司,种种因素下就答应了过一周就可以去。然后有一段时间就在学校和公司之间来回奔走,坐公交岛内坐到岛外,来回三个小时,每天累死累活的,后来实在太累就在公司旁边找了个房子租。现在看那时,其实不用那么着急去的,因为经常学校会出一些事情,有一些活动必须出席的,就不得不请假,然后工作的内容也大多是学习和修复一些小bug,然后又断断续续地工作,主管也不好给我排任务,两边都不讨好。现在想来,真不应该那么早去的,浪费了那段最后的大学时光,可以搞个毕业旅行啥的,而且很多人都是毕业后才去的。为了那一点激情和钱,还有在意的他人的看法,失去了宝贵的大学时光,是很不值的。如果有后浪的话,我建议是晚点去实习,尽情享受你的大学时光,因为后面你会发现,那才是真正快乐的时光,而且有可能是你今后很长一段时间都不会有的可以自由管理的时光。
再说一件比较后悔的事(都是心酸和泪),去公司A的时候,HR有问我比较想去哪个项目,当时有一个已经上线的比较成熟的游戏,是用cocos引擎+js客户端+erlang服务端写的,还有一个是15年就开始现在还在开发的一款MMORPG游戏,是Unity3D引擎+lua客户端上层+C#客户端底层+erlang服务端写的,当时比较看好Unity的前景,觉得做3D游戏很酷,有点轻视cocos那个2D项目,就果断地选了正在开发的Unity3D项目,这一待就是两年半。但其实那个项目人数众多(有五十多人),虽然人多,但是每个人的工作量还是很大,经常强制加班996,最惨的是年底奖金几乎没有,因为还没有上线运营,没有收入。而已经上线的那个项目是公司的头牌游戏,不仅工作量小,运营稳定,流水记录不断被打破,年底奖金更是另一个的好多好多倍。最惨的是前段时间那个Unity3D项目已经停止开发了,是的,因为测试数据不佳项目原地解散了,从2015年12月开始开发的游戏,到2020年6月停止开发,期间所有人的努力都付之东流。当时做选择的时候真的没有考虑那么多,真纯粹呀,看好技术,看好前景,就选了。如果让我再选一次,我估计就不会那么选了,都是吃了没经验的亏。给后浪们一点小建议,选项目尽量选已经稳定上线运营的,待遇佳、风险低,正在开发的项目待遇低、风险高,随时有可能解散,我现在才相信前辈说的那句话,十个游戏九个凉,能成一个就已经是非常不容易的事情了。
说说在那个项目的两年半我都经历了啥吧。一开始的时候,一个应届毕业生,啥都不懂,只是充满热情,一开始会分一些bug单给我做,都是非常简单的bug,改一个估计就几分钟的事情,那时候每做完一个,就很有成就感,好像参与了一件很有意义的事情,修复了一个游戏的bug,因为之前的身份都是玩游戏的玩家,现在自己居然变成了做游戏的人,有一种强烈的参与感。而且随着时间的消磨,越来越不满足于一些小bug单,想做更大的系统,主管也会根据熟悉程度,慢慢把一些系统模块的任务单给到我,做一个独立的系统是最有成就的了,越大的系统越开心,就像一个作品印上了你的标记,等到将来有一天,游戏上线后,你可以很自豪地告诉别人,这个游戏的这个系统是我做的。那时候我就是这么想的,后来有新人进来时才知道,其实大部分人都是这么想的,都想做大单,大系统,都可以理解。我一开始是客户端服务端都做的,因为带我的人是服务端的大佬,他很希望我可以往服务端方向走,但我本身是Unity3D自学出生,对引擎相关的东西上手很快,而且客户端用的是Lua,简洁又好理解。反观,服务端使用的是erlang,是一门很非主流的语言,市场上大部分都是用golang,C,而且erlang语言其独特的匹配思维,非常晦涩,再加上项目初期的服务端代码写的很乱,各种嵌套回调,让我慢慢对服务端产生抵触。期间还出现一次事故,是因为我写的服务端代码引起的,虽然游戏只是小范围的删档测试,但是出事故都是很严重的事情,因为如果上线运营后出现事故,会对公司产生损失,这种情况根据事故大小也会做一些相应的处理,小的反思总结公开批评,大的就直接走人了,从那以后就更害怕写服务端了。后来程序的人数越来越多,开始分客户端和服务端的时候,我毫不犹豫地选择了客户端。其实后来我才慢慢明白,语言什么的都是浮云,重要的是思维,语言只是一门工具,如果你畏惧一门语言,那只是因为你还不够了解它,如果你一直用它,一直学它,久而久之,它就会变得很简单。有一点是我深有感触的,就是有一天,我突然能明显感觉到我阅读lua代码的速度变的好快,以前可能是一个语句一个语句、一行一行地看,而现在是一段一段地看,甚至瞟一眼就知道这段代码是干什么的,已经到了那种程度,就是因为天天看,天天写,熟能生巧。在那段时间,我做了游戏里面的好多好多系统,有大有小,以及核心玩法核心战斗表现,游戏里随处可见我的作品,后期也接手了比较复杂的战斗技能模块,基本上那块一出问题就是我来处理,渐渐变得老成、也开始变得油条。
沉落
说说项目是怎么一步一步走向灭亡的,在我看来,策划和程序都有很大的责任。说说程序,其实作为执行者,在这艘船沉的过程中讲道理应该不会有太大的问题,因为程序都是水手,水手都听船长的话,偶尔吐吐槽,耍耍脾气,对整个大局都是无关痛痒的,而且整个开发时间里,程序都没有出现很重大的bug,最常听到的槽点就是手机会发烫,但是试问现在市场上这种大型多人在线pk战斗的游戏,玩久了都是会烫的。对于这场灾难程序好像也没犯什么错,外部看来,是这样的,但是在我内部看来却不是。
讲一个有趣的故事,有几个工人聚在工地,有人提议:我们盖一栋大厦吧!好,那我们就盖一栋大厦!大家都信心满满,但是没有人知道地基要打多深,因为没有人有盖过一栋大厦的经验,大家都只盖过几层楼的房子,凭着各自的经验和道听途说的内容,包工头用手比划了比划,大概就是这么深吧,这么深应该够了吧。好吧,那我们开始往上盖吧!然后大家就开始前仆后继,努力搬砖,努力盖房子,但是盖着盖着有一天发现,不对啊,这楼这么越盖越歪啊,好像要倒了。于是大家赶紧都停下了手中的工作,讨论了才明白,原来是之前的地基打的太浅了,然后就遇到了尴尬的境地,到底是继续盖,还是推倒重来,继续盖也不是不可以,但是每加一块砖都要进行精确的测量,算好重心和角度,然后摆放在可以平衡房子的位置。但是算算时间,这样下去,后面摆几块砖的时间都够重新再造一栋楼了。但是重头再来也不太现实,毕竟都盖了这么高了。于是机智的包工头想了个两全其美的办法,一部分人去加深地基,一部分人继续盖,真是天才的想法!大家纷纷表示认同,于是一部分人开始去打地基,一部分人继续盖房子。打地基的人看不到上面盖房子的人平时都在干嘛,盖房子的人也没去管打地基的人在平时都在干嘛,打地基的人手都很重,动不动就给你拆个顶梁柱,或者拆个几楼,并扬言要打最好最坚固的地基。于是,就出现了一个现象,盖房子的人经常发现,哎呀,这根柱子怎么没了!哎呀,这层楼怎么没了!整栋大厦摇摇欲坠,经常会掉一些东西下来,打地基的人都是挥挥手:“没事兄弟,等我这块地基打完了,就好了”。盖房子的人天天在上面,战战兢兢,也不敢用力盖了。等好一阵,终于地基打好了,大家发现,确实稳了不少,又可以开心地盖房子了。可是,盖着盖着,又发现,不对啊,房子又开始歪了,之前打的地基还不够深啊,至少要比原来的两倍才可以啊,大家都叹了口气,没办法,还是按之前的方式,一部分人打地基,一部分人继续盖房子,又这样战战兢兢过了一段时间。包工头!这地基还是不够深啊,至少要原来的四倍才可以啊。大家都累的不行,但是想想马上就要盖好了,咬咬牙,好吧,最后在干一次。期间反复如此,浪费的时间可想而知。其实真的,开篇的那些人太关键了,真的需要更专业更有经验的人来做这些打地基的事,摸着石头过河是会吃大亏的。不好的房屋结构和不稳定的地基,会让效率变的很低,有太多的时间浪费在走弯路这件事情上了,导致整个盖楼的过程就是又臭又长,而且大家都很累。
程序是加快这场灾难的推波助澜的人,而策划则是罪魁祸首,我们的制作人之前就是一个数值策划,其实想再说一下,策划当制作人真的不如程序当制作人,因为策划绝大多数都是不懂程序技术的,我见过太多次,主程给制作人解释为什么要做这件事情,为什么这个不能做,他更多的是看产出和表现,至于程序的代码结构是否合理,是否是方便可持续开发的,他都不关心,虽然我感觉他每次都在听主程解释原因,但是我确信他还是没有真正听懂,只是觉得有点道理,那就那么做吧,而且对任务的难易程度都是没有认知的,打个比方,有一个需求是给通用的物品格子加个图标,在他的认知里,有好多好多界面都用到那个物品格子,那么工作量是非常大的。而在程序的角度,那个物品格子是通用的预制,只要改通用的那个预制,动态加载出来的所有的物品格子都会改变,完全不是什么量大的工作。在我看来,程序当制作人真的会好过让策划当制作人。
说说那些策划都犯了什么罪。这里再讲一个故事,说有一艘小船,所有人都在船上,我也上船了,我是半路上的船,那时候船有一个目标是一座小岛,小岛上有一些宝藏,但没人知道有多少宝藏。而小岛就在眼前,有一点距离,但是不会花太多的时间。小船开的还算平稳。但是开着开着,内部出现了一个惊人的消息,不久前有一艘大船,登上了一个大陆,陆地上全是金条!满地的金条!而那个大陆虽然距离我们有点远,但是比起小岛上子虚乌有的一些宝藏,诱人太多了,因为金条是看的见,摸得着的,为什么我们不去那个大陆看看呢,说不定也可以大捞一笔。不知道是哪个天才提出的这个想法。船长听地口水直流,我们要去那个满是金条的大陆!一声令下,大家迅速调整航向,朝着金条大陆出发,什么小岛,都见鬼去吧。船上的人虽然平时都很辛苦,但是想着将来可以踏上那座满是金条的大陆,就又充满了斗志。领航员也经常告诉大家,前途是一片光明充满希望的,事实都摆在那了,金条大陆真的有金条,别人已经到达了,我们相信我们也可以!在航行了很长一段时间后,船上的人看见了那座大陆出现在地平线上,大家都兴奋起来,快到了,终于快到了!眼看马上就要达到,远处又传来一个更惊人的消息,有一艘巨轮,登上了另一个大陆,陆地上全是钻石!满地的钻石!这时候,船上的人都没说啥,但是领航员沸腾了!那座大陆,一定要去!我们既然能坚持用一条小船到达金条大陆,那么我们一定也可以到达那座钻石大陆!大家都沉默了,确实挺诱人的,但是实在是太累了,有一些人坚持不下去跳船了,但是大部分人还是被迫听取了领航员的话,于是我们马上又调整航向,向着那座钻石大陆出发。水手们任劳任怨,期间也有人看上这条小船的终点眼红,半路买船票上来的,也有不想去钻石大陆半路跳船的。终于,大家在花了和去金条大陆时几乎一样的时间后,地平线上出现了那座闪闪发光的大陆,胜利的曙光就在眼前!大家开始兴奋起来,越来越多人都相信了,因为那座大陆真的会发光!大家慢慢朝着钻石大陆前进,期间,经过一座小岛,有人发现,岛上有宝藏,虽然没有钻石大陆的宝藏多,但是和金条大陆的宝藏比起来差不多的。大家又沉默了,要不要就此止步,止步了船上装满宝藏就不能再去钻石大陆装钻石了。这时候,领航员又发话了,大家都努力了这么久,如果就此止步,那不就和当时去金条大陆一样吗?那我们期间花的时间不都浪费了吗?我们要去钻石大陆!有些人感觉到了事情有点不太对劲,在得知领航员的指令后,纷纷开始跳船,但是大部分人还是看好钻石大陆的财富。终于,离钻石大陆越来越近,马上就可以登上全是钻石的大陆了!真的太近了太近了!突然,一个水手大叫起来,不好啦,那座大陆的周围全是旋涡,我们的船马上就要被卷进旋涡了!怎么会这样?之前没有人说这个消息啊,为什么别人的船就可以登录?因为他们的船是巨轮!有锚的!我们是小船,啥都没有,开了这么久还没坏,已经是奇迹了,期间还有一些想跳船的领航员乱开船,他们好像知道我们肯定是到不了的,故意把船乱搞开地更坏了。其他领航员不敢相信眼前这一幕,他说出了所有人都惊讶的句话,要不我们把船也改造成巨轮吧?天哪!改造巨轮得到猴年马月啊!这时候哪有时间啊,马上就要沉落了!很快,船开始解体,散架,最后彻底沉了。船上的人都落入水中,好在其他的几艘比较好的船赶来了,分别接走了船上的人,也有人不想上船的,自己游走了。
在最后一波冲刺完成,数据出来很不理想后,大家开始产生疑惑,为什么我们游戏和别人的已经几乎一样了,好的玩法都抄了那么多了,为什么数据还是那么差,是不是剩下的那块不一样导致的,比如技能他们是可以随意更换的,而我们的技能是固定的。所以开始计划把技能那块的内容也做的和竞品一模一样,大家还专门开了个很大的三方评审会,会上,所有人都高谈阔论,讨论地热火朝天,说要怎么设计技能的搭配,不同职业的技能流派要怎么搭配才有意思,还让每个人说明自己的加点方式,气氛真是太好了。期间我也看了项目的技能模块的代码,对将要实现的技能框架有了认知,也有了方案,一切都挺顺利的,但是比较意外的是在此期间随口问了一下特效,那么多技能,你一个人做完要多久啊,他很平静且优雅地说了句:也就半年吧。我当时人傻了,虽然我知道量多,而且刚好另一个特效快生孩子了,但是听到是半年的时候,还是被吓到了,因为已经等不了了,这个项目已经拖太久了,如果一两个月还可以接受,我开始怀疑重构技能这个任务的真实性,问了下主管,这个要做半年是认真的吗,他听到后也是惊了一下,但是随后叹了口气:先做吧,后面的再说。然后第二天老板叫了几个项目的核心人员去开了个会,第二天下午就宣布解散了。真的是猝不及防,说实话,在得知要解散的小道消息时我是有点不敢相信的,因为昨天还在讨论技能讨论未来的规划,那么积极向上,热血的会议,第二天就不行了,就像临死前的回光返照一样。虽然我猜到会有这么一天,因为我本身就不看好这个项目,觉得失败是早晚的事,但是我没想到这一天,这一刻来得这么快,我以为还会再拖一段时间,把技能做好了再试试上线,但是这次老板的决策是这么果断,这是我真没想到的。以至于我的计划都有些被打乱,我当时的计划就是在做技能的这段时间,正好会有一些自己的时间,可以提升一下自己,然后去别的公司发展。但是这样一来完全打断了我的计划,真正体会到计划赶不上变化。
云风港
项目解散大会上,其他项目的负责人也在。看情况就能猜出七八分了,这么多人,最后大家肯定是被分到各个组,总不可能全部辞退吧。一方面是其他项目组确实有缺人的,一方面也是公司的口碑摆在那,出这么大的事总要负责吧,毕竟大家在能力方面都是没问题的,错的是决策者。虽然有很多其他项目的负责人在,但是可以看出,有些人是不情愿来的,因为他们项目并不缺人。但是大家都去抢着分人,你不去,不就显得有点看不起这个项目的人吗,不就显得很没情商吗?其实大家懂的都懂,看破不说破。解散大会末尾每个项目组的负责人都说了自己项目的优势等等,有什么年收入几亿的,还有什么次留百分之多少多少的,还有和腾讯合作的,还有一个没什么优势的,就拿自己之前的据说是比较有名的游戏说的,虽然他说了那个游戏,但是我肯定在场也没几个听说的。其实也就四个选择,一个是上次我错过的,已经在运营中的成熟的cocos2d回合制卡牌游戏,还有一个马上要上线的unity回合制卡牌游戏,还有一个是已经上线的和腾讯合作的一款经营策略游戏,最后一个是像马里奥闯关那种的独立游戏。独立游戏这种其实并不缺人,重要的剧情点子,而大家好像也都约定好了似的,也没有人选独立游戏,都是在剩下的三个项目里面选,最后每个人根据自己的意愿和项目的实际需求分到了不同的项目。有的不想选的,就直接n+1了,有的想选的,也被n+1了,可以说借此机会他们把一些被认为有问题的人清理掉。我选了之前错过的那个项目,虽然不是用的unity,但是其实更多是看好项目的发展才选的,可以说那个项目就是整个公司的顶梁柱,平时大家都调侃那个项目是大家的衣食父母,如果那个项目倒了,公司就可以倒闭了。选的时候也毫不纠结的,选个最好的,不让我去,我就走人,内心是很坚决的,也不跟那些人客气了,因为解散后我本来就想走的,但是突然给了我一个选择的机会,不用其实挺可惜的。结果马上就出来了,可以去。说实话是有些开心的,因为得到了他们的认可。但这时候纠结才真正开始,到底是继续在新项目搬砖还是直接撒手走人。其实直接撒手走人有点不太现实,因为那时候对我来说是意外解散的,去面试其他公司可以说是毫无准备。如果真要走人,那势必意味着有一段空窗期用来准备,但这个空窗期具体要多久变得很难确定。于是我决定给自己一个缓冲的时间,就是先去新项目工作一段时间,感受一下成功项目的魅力,让自己的工作经历更丰富些,然后在此期间准备一下,找个合适的时机走人。其实还有一个原因是,我不喜欢在一个地方待太久,会腻,就像以前上学的时候,我的那个学校有幼儿园,小学,初中和高中,都是在一个校区的。我幼儿园和小学都是在那里上的,但是在小升初的时候,我毫不犹豫地选择了另外一个学校的初中,不管两个学校的口碑如何,我实在是无法在一个地方待八年以上了。不喜欢一成不变的环境和一成不变的状态,那会使我感觉压抑和难过。