当前位置 博文首页 > 安柏霖的专栏:面试官谈游戏开发入行--选择

    安柏霖的专栏:面试官谈游戏开发入行--选择

    作者:[db:作者] 时间:2021-08-23 16:08

    这里写图片描述
    恩,选了个颇“标题”的题目,和以往的正常写写文章不太一样,这个系列确实希望可以让更多的有意去开发游戏学生看见。
    笔者在腾讯北极光工作室群工作,也做客户端通道面试有段时间了,上个月刚刚结束了在几个城市的“巡回”面试,整个面试的过程是一个让我颇感能量充盈的过程,看到一个个渴望进入游戏行业创造精彩的年轻面孔,还有什么比这更让人兴奋的呢?
    其中也看到有些同学非常的有热情,但是走了弯路,把有限的精力放错了地方,不免感觉颇为可惜,加上平时在各个渠道也收到不少这方面相关的问题,这里就自己的经验写一个小系列,来谈下学生入行。

    这里写图片描述
    决定的瞬间
    工作也有10多年了,和很多人聊过,大家怎么开始想做游戏,怎么开始入行的。
    相当多的人会经历一个转折点,那个点上你突然意识到这个就是你要做一辈子的工作,有的是到朋友家玩的时候,玩一个游戏,突然意识到自己要做这个;我是准备GRE休息的时候,在bbs上看到《doom启世录》某一个章节的时候;有的同事是已经工作了,而且根本不是编程方面,自己在家玩游戏的时候;
    有的是在传统型的软件企业里,厌倦了一成不变的生活,追求一个变化剧烈需要一直学习的生活;有的一直就是对于视觉上的东西,对于绚丽的东西感兴趣。。。
    丝毫不意外的是:在开发历程中,非常的有持续力,能保持专注和成长的同事,普遍的特点就是对于游戏本身有着持久浓烈的热情。
    不管如何,当这个瞬间出现,你被击中了,或许你就属于游戏开发,游戏开发也属于你,不妨放下种种担忧牵挂,就开始你的探险吧。

    工作相比考研的优势
    对于学生来说,到了大三就是一个选择,是去游戏公司工作还是去考研,个人的推荐的是当你下定决心去做游戏,那么尽早的开始准备起来,到尽可能好的团队中去开始游戏开发。
    大家会认同,如果能进好公司好项目,当然就及早去了,不然读研之后的目标不也是如此么。
    只是现实种种原因不能如愿啊,比如本科玩多了,心理还没准备好,和高几届读研的师兄比有劣势等等等等。
    这里很多想做游戏的同学,最终还是选择了读研之后再工作,很大的原因就是没有意识到,同样的时间点,工作的意义有多大。
    这里写图片描述
    ==经验的“金山”==
    这里常见一个误区就是,本科进到项目组里,作为小弟,也是各种打杂,不如在学校里自己做做游戏多学习等等。
    但是即便硕士毕业进入项目组也是可能从打杂开始的,这里不妨说下我研究生毕业刚刚进入育碧的时候,当时项目组里没有data manager,于是我就在一开始就变成这个data“manager”了,就是去负责处理各种perforce相关的事物,完全不是编程的工作,后来招到了data manager,我就开始做一些简单的工作,从截图开始,然后就是给各位资深程序“打杂”,大大们在做优化,相应模块有bug,我就去跟。。。第一年相当的时间就是这样度过的。
    这个从项目角度来看其实非常正常的,项目组总是追求最大化的性价比,所以人力总是不足。那么资深程序去做最大化输出就是最合理的安排,如果一定要有人去打杂,当然就是输出能力最低的新人来做了,这就是骨感的现实。
    之前在这个回答里https://www.zhihu.com/question/58552670/answer/162971564 有人留言说,一毕业就能做高端的事情好羡慕等等,其实是一毕业就一段时间不能编程了。

    但是即便如此,依旧是能够获得比学校里好得多的成长,主要就是你能接触到项目组的代码,你可以看到整个项目如何一点点实现的;
    看到资深程序如何写代码的,尤其是开始帮资深同事debug的时候,更是能上手去看,这个真是一个大开眼界的过程,中间不懂得地方去问问,一般也能得到比较好的解答。

    说到底,有积累的团队好比一座金山放在你面前,进去就做主力培养,相当于把金子送到你面前让你捡,进去就打杂,那你完全还可以去挖,关键是要有能接触到的金山。
    而像腾讯&网易这种,公司开发了n款游戏的公司,你更可以跨项目的接触到高质量资源,可以去问更多的大牛问题,这个副本掉落,真的可以有。

    这里写图片描述
    ==更高级别的学习==
    很多时候我们会觉得,在学校里时间更充裕更自由,没有考评没有leader过来逼我加班,可以更好地学习等等。
    实际情况是,实际项目中,我们更容易进入学习的更高阶段:切身知道学习的意义,以及将知识综合的用于实践。

    当时刚工作时候,看老司机们的代码的时候,发现大家对于cache性能,多线程,各种编程模式,语言特性等的驾驭非常的好,可以说多个领域的知识(语言,算法,操作系统,硬件)都非常好的融合到一起,在一票代码中体现。

    而我当时对于这些还是停留在书本上的概念阶段,并没有特别深刻的理解(即便在考试中分数没问题),也不可能有充分的理解,这个理解就是要这样在高挑战型项目里,综合纯熟的应用出来才能达到。
    所幸当时学校的书都是非常经典的,我也带到了上海,又翻出来就这些章节反复的研读,而且这次读的时候,可以结合代码,几个科目可以联系起来,完全就是一种“I was blind, now I see”的感觉。
    而且读好了之后,就有用了,能更好的理解老司机们的代码,甚至偶尔还能提出点不同的看法,到后面自己也能写出这样的代码,可以应用到实际的游戏里,带来性能和效果的提升,可以见玩家的感觉,这个时候知识的真正意义才呈现。
    所以,在学校的时候,学习的第一个层次:概念性的理解到位,知道这个是什么,能够通过考试就差不多了,学生时代也算考试一把好手,再把书看几遍也就是这个水平了。
    要达到第二层次深刻理解,融会贯通,在真正的需要这些东西的大型项目中去应用方是最好的方式。
    相比之下,在学校里,部分可以学习到很好地研究方法等等种种优势,但是绝大多数情况,是不如在正规项目组里去磨练和学习来的更好。

    ==工作的相对优势sum==
    上面聊了这么多,其实也是自己的经历有关,本科时候并没有做游戏的想法,研究生才有,即便研究生所在的实验室(老板非常的强力,做的项目也给力)很给力,自己也在认真地做和学,但是工作之后才发现,这两年的成长比起实际项目来说真是微乎其微,近乎在浪费时间。

    所以如果我们定下来想做游戏,大可以把工作和读研都作为一个纯粹的学习阶段来看待,在好的团队里工作中可以:
    - 有更好的磨练机会,更好的学习资源
    - 让我们更好更深刻的理解学习内容
    这个意义是非常大的,大到值得我们去在本科的早期,好好准备,尽早到前线去开始磨炼。
    话说回来,万事无绝对,这里的工作的意义是和团队水平有很大关联的,越是有经验越是严肃做项目的,对于成长来说就越好,如果种种原因,让人无法吸收和学习,那就要三思了。

    及早的有意识的进行准备
    前面聊了及早工作的意义,要想在大三秋季招聘的时候,就能获得工作机会,尤其是在好团队中的机会,这个就需要我们有相当的积累。
    ==成本==
    这里在招聘中常常见到的一个情况是,虽然我想做游戏,但是实验室老师是做完全不同的方向,但是我也ok,只要努力了,有进步总是好的。
    这个就是一个典型的误区,这里大家需要对于成本有一个较好的认识。
    做A事情的成本就是同样时间你能做的最有价值的事情,可能是到好的团队中去实习,可能是你专项的阅读游戏开发的书和做实际的项目。
    本来你可以在同样的时间里,得到很大的成长,但是却做了“有些进步”的事情,而且感觉还挺ok,这真是太可惜了。
    ==及早&有意识==
    本文读到这里,可以说“诗和远方”少了点,“务实的比较”多了些。
    就中长期来看,始终是我们对于开发的热情是最重要的,但落到实际情况来说,毕竟能够在大三时候,和研究生师兄们同场竞争,获得好的工作机会挑战也很大。
    如果我们能尽早的意识到这一点,有意识有计划的进行准备,那么我们不仅更加可能获得好的就业,进而能够做自己喜欢的工作,欢快的成长,甚至也能把该打的游戏,该玩的球,该谈的恋爱都收获了,大学生活很美好,不容浪费呢。

    cs