本文原文发布于牛客,点击链接:23届游戏开发/游戏客户端开发岗位个人秋招全记录,面经+总结

今年毕业,去年秋招。为了总结整理一下,当然也是为了回馈一下牛客社区,我就写了一篇比较长、比较全的面经。文章发出后各种数据一直在稳定增长,直到今天,我都在回复各种私信、微信之类的。希望真的对一些人有所帮助吧。

毕竟是为了发出来,在写的时候我特地在避免我特有的意义不明的长篇大论(虽然到最后还是写了很多字),就把一些比较个人的废话和其他行业的面经都删掉了。在博客里就把这些有的没的当作特典加上吧。

〇 个人博客特典

运气

面经无非就是记录一下公司的面试流程和问的问题,让后面的人做一下心理或者知识上的准备。每个人在准备秋招时,当然也都是朝着多看新东西、多学新知识的方向上努力。

但不得不说,我觉得对于我等大部分普通人,校招还是运气成分比较多,主要就是看行业今年能容纳多少人吧。知识上的准备是准备不完的,大部分候选人在公司眼里也大差不差。投递时间合不合适、捞的组招不招人、问的问题会不会、面试官心情好不好,都不是个人能决定的。我们能做的也就只有多投多面,多碰碰运气了。

我觉得有这样的心态很重要,但我并没在面经里写这个,因为写了也没什么用,而且准备的时候还是专注于知识比较好。但好像一些人会把某些公司的面试看得特别重,不知道这样的心态是好还是不好。

怎么说呢。。

再次不得不说,虽然行业和环境都不景气,但真正的精英肯定还是不愁找工作的。就比如实习群里同样没转正的清华哥、交大天才少年,人家找工作当然是比较方便的,腾讯网易米哈游再不行都能把他们招进去。也不用说名校本科生了,很多18岁小伙都比我25岁老同志厉害很多,各种竞赛奖项、理论知识、实践经历看得我汗颜。这段时间我也是涨了不少见识。

对于这些人我想说,你们来找我问秋招这么难该怎么办,就像三叔跟张顺飞学刷野,是想问出点啥?我也就是普通人帮普通人,记下来的问题大多可以速成,不要太当真好嘛?有在名校苦读打下的基础,或者有融入了热情和梦想的游戏项目,大概也不会经历各种小公司的奇怪面试。而且还有些年轻的天才开始担心起一些有的没的。怎么说呢,让我产生了一丝负罪感……

如果能选的话,我还是想以技术大牛的身份跟这些精英交流,作为睿智的前辈传授给他们一些知识和经验——而不是像各种动画里除了年功序列啥都没有的老头,一张嘴就是“我吃的盐比你们吃的饭还多!”……

搞得我现在看到自己的面经都觉得有点羞耻了。在个人博客里犯犯病吧。

迪子?华子?

我第一个拿到的offer其实是比亚迪。刚开始准备秋招的第一天,辅导员在群里发了比亚迪的信息,当天晚上我把信息填好投递,两天后就二面完了,基本上也没问什么有意义的问题,流程很快就结束了,也没有线上查流程的地方,总感觉有点草率。对于迪子,都没听说投了的同学有没拿offer的,让人不禁想问“到底要招多少人?”。我面的是用Unity做车模渲染的部门,感觉也还不错,但后面还是觉得有点太快,薪资也是大锅饭,并且当然想往游戏行业努力一下,所以就拒绝掉了。

据别人说,6、7年前的华为也是这么招人的,是很多人的保底之底中底。即使是在我本科毕业的2020年,华为也算不上是很难进的公司。但现在,华子已经是我们这个层次高攀不起的存在了,面试每次都是养大鱼,池子一泡两个月。现在的华子不会就是过几年的迪子吧?

不过在2023年,迪子能提供这么多的工作岗位,respect。

从未如此美妙的开局!今年的迪子确实让我产生了莫名的信心,但后面一个多月屡战屡败的日子就显得更难受了一点。

国企:中车四方所(中车制动)

中车四方所是青岛比较有名的国企了,也是我投的为数不多的国企。面试流程比较古板,一面是一大堆人一起等、按顺序叫人,每个人10m左右。然后几位面试官如果有兴趣就私下联系二面。

青岛的企业,像海尔、海信我投了都没动静,说实话自信心有点被打击到了。四方所一面的那天我有四场面试,本来想鸽了的,但还是腾出点时间去做了个自我介绍。第二天,有个大叔加了我微信,联系了二面。

二面是用微信开了个视频聊天,一共聊了95分钟。过程以我讲为主,性质有点像给其他领域的老同志做工作介绍,顺便介绍一些计算机技术概念,算是比较轻松。在最后的拉家常环节,我们竟然发现,面试官的小孩跟我是高中同一级不同班的同学,只不过他的小孩高中就去阿美了,所以并不认识。(不知为啥,在这个环节之前,面试官说他一直以为我是南方人。)

怎么说呢,这场面试对我来说真的挺治愈的。在经过一个来月游戏行业的锤炼后,这位面试官让我觉得其实还是有一些欣赏我的人的,我的各种知识也是有用武之地的(至少表现出来的是这意思)。

最后面试官问:我总有种感觉,如果给你offer,是不是也不一定来?我说确实是这样的,虽然屡屡受挫,但我还是想往自己喜欢的方向发展一下,找工作也更多在争取南方大城市的机会。面试官赞同了我的想法,建议我出去打拼,并鼓励我对自己的能力拿出信心,也聊了一点兴趣和未来发展之类的事情。总之最后的结果是如果决定要回青岛工作,就在毕业前联系他就好。

中车四方所的风评并不好,有伺候领导、7×24 on call、减薪之类的说法。中车制动不知道是什么情况。但我觉得,进入一个能让自己得到别人认可的环境,回到家人身边,也是一件很好的事情。但咋说呢,在青岛我想找一个游戏开发工作已经是不可能了,找一个各方面都不错的企业也是相当难,更不要说老家县城了。

在11月底,我还跟这位面试官交流了几句技术问题。后面我说准备去杭州工作了,他说:“杭州真好,dream city for innovation!”。

初创:分岔点VR

最后值得记录的是一个初创公司的面试经历。牛客、脉脉上都有招我面试的hr的信息,一、二面的流程也非常专业,面试前都是邮件提醒+飞书,面试强度也不低,都是1.5h带刷题。

知道是小公司,但没想到是初创。二面才知道,公司目前一共就5个人,其中hr和两面的面试官就是其中三位了。二面面试官就是老板,是抖音早期推荐系统的开发人员,年纪轻轻就开始追求自己的梦想了。羡慕啊,羡慕。

两面的刷题我都做得不算好,都是常规题,但以我的水平确实要么用的低级方法,要么写了很长时间才好。其他的,感觉跟面试官也聊不到很一起去,VR、Unity我接触的并不多。而且,毕竟是初创,如果让我来当老板,招的每一个人都是要跟团队的各方面都契合的。二面后过几天,hr就说我跟当前的团队要求并不符合。

如果去大公司,当然平台更大,接受的培训也更好,对职业生涯更有利。但去小团队,一方面能接触到更完整的业务,另一方面好像也有了一飞冲天的可能吧。

博客特典就写这些吧。又变得更像是我在随意记录生活了。

以下原文。


一 关于本文

一方面,我觉得我赶上了中国游戏行业的变革期。产品开始追求品质,重度手游越来越多,赚到钱的也不少;技术上,3D、大世界、虚幻引擎都是这几年的热点,看上去是处在各公司进行技术积累或者抢占下一个爆款的关键时期。近期有新消息的像『百面千相』、『无限暖暖』、『王者荣耀世界』,看了确实让人觉得游戏行业前景大好、作为一名校招生进入游戏行业大有可为。

但另一方面,在环境和各种政策加持下,今年的秋招确实是寒气逼人,老实说我也没想到工作会这么难找。

我是去年暑假决定以后要找游戏开发工作的,今年的秋招也是瞄准了游戏公司来投。我投递了几乎所有开了秋招的游戏公司的游戏客户端开发岗位,以及一些非游戏行业的UE4/U3D开发岗位。结局是我没签游戏客户端开发的工作,因为确实没拿到相对满意的项目或者公司的客户端开发offer。从游戏开发/游戏客户端开发岗位来说确实是失败了。

这篇文章算是一个普通人的游戏开发岗秋招实录,我会把个人准备情况、面经、各公司的面试体验和考察重点都记录下来,也会写一些针对秋招的反思、经验教训之类的,大家当作失败经验来看就好。

祝大家都能找到理想的工作!有任何问题欢迎留言或者私信。

二 个人秋招情况总结

个人背景:双非本末流985硕,科班,几个简单项目(两个Unity 2D小游戏,一个腾讯游戏公开课UE4蓝图项目),一段大厂暑期实习。

个人知识:基本的八股,一些UE4引擎源码知识,入门的图形学知识。比较薄弱的是做题,笔试难的就做不出来了,面试手撕基本上也是现场思考。

在今年我的简历应该是勉强够看的水平。项目、学历没什么亮点,实习虽然是客户端开发岗,但做的是引擎开发、性能优化相关的工作,另一个薄弱的地方就是我从头到尾都没有比较深入的gameplay开发经验。

我实习结束、开始准备秋招是9月初,简历投递集中在9/10、9/16、10/7这几个时间左右。投得比较晚,没有赶上任何一家公司的提前批,错过了大部分公司的第一批。

总得来说,我基本上是逮着游戏客户端开发岗位投(公司之间技术栈有所不同),也投了几个非游戏公司的UE4/U3D开发岗位。约60家,情况总结在下面:

1.未转正(1个游戏厂):

​ ①腾讯天美

2.没进面(39家公司,34个游戏厂):

​ ①简历挂:4399,鹰角网络,Garena,海尔(UE4),散爆

​ ②投了没动静:搜狐畅游,阿里巴巴灵犀互娱,哔哩哔哩,龙图游戏,云畅游戏,飞鱼科技,椰岛游戏,盛趣,迷你创想,索尼中国(VR/AR)

​ ③投递后联系说必须实习:电魂网络,心动

​ ④笔试挂:网易雷火,吉比特/雷霆游戏,91Act,西山居,百田/百奥,友塔游戏,米哈游

​ ⑤笔试后没动静:多益,巨人,funplus,英雄游戏,竞技世界,快手游戏,勇仕,梦加网络,高通中国(图形学/游戏),Unity中国

​ ⑥笔试后筛选挂/不匹配/不合适:完美世界(还是我难得ak了的),博乐科技,乐狗游戏,途游游戏,小米

3.进面挂(14家公司,10个游戏厂):

​ ①一面挂:tap4fun,红海无限,极致游戏

​ ②一面完没进展:SNK中国,永航科技,联想研究院(unity)

​ ③二面挂:诗悦网络,字节跳动朝夕光年,剑心互娱,分岔点(VR),酷家乐(渲染开发)

​ ④二面完没进展:祖龙游戏,柠檬微趣

​ ⑤三面挂:中国系统(UE4)

4.全面完(3家公司,还有一个最后去的不写了):

​ ①通知通过:盖娅互娱(谈薪后第二天说hc调整,不发offer了)

​ ②收到offer:数字天空

5.流程中主动放弃(9个游戏厂):

​ ①笔试放弃:腾讯凯博(冲突没做),掌趣游戏(10月下,不想做了),冰川网络(不想去),沐瞳游戏(10月下,不想做了),乐元素(11月中,拿到其他offer了)

​ ②一面放弃:库洛游戏(11月,拿到其他offer了),yahaha studios(不是合适岗位)

​ ③hr面放弃:游族(听说必须实习),360游戏(听说必须实习)

直到国庆假期期间,我一共面试了不到10场。为了防止失业,也投了其他行业的一些工作岗位。大部分是C++开发,没备注的就是没动静的,也有懒得记录了的:

​ ①恒生(笔试放弃),同花顺(二面放弃,总是大晚上面),比亚迪(offer,太早了拒了),中车四方车辆研究所(算是口头给offer了),新华三H3C(笔试放弃),阅文集团(笔试放弃)

​ ②民生科技,中电科南湖研究所,云鲸智能,导远电子,海信,智已汽车

所有厂加起来一共面了44场。其中,大家普遍印象中的游戏公司应该是15家进面、5家收到hr面通知(放弃了2家)、2家offer,一共面了29场。

整个流程回忆下来,10/1之前面试比较少,基本上都是笔试和测评。面试都集中在国庆假期后的两周内,10/10-10/14、10/17-10/21这两周我分别是16面、12面,天天赶场子。这两周之后我就比较累了,剩下的流程就全都推了。

到了10月底就没有流程了,11月中旬签好了三方,秋招就大结局了。

三 面经总结

我没有给面试录音或者及时记录的习惯,就凭回忆在这里整理一下,如果想起来更多会更新。

很多贴子记录了具体公司的面试题,大家可以按需搜索查看。我觉得我按照知识点把个人被问到的问题记录一下比较好。

可以保证下面都是我在面试中被问到的问题。

3.1 C++八股

1.内存

​ ①内存分区

​ 几个区域分别存放什么

​ 堆和栈的区别

​ static变量在哪里

​ 什么const在常量区,什么const在栈区,什么const放入符号表优化

​ 虚函数表既然希望类的所有对象共享为什么不放在全局区

​ ②几个基本数据类型占多少空间

​ ③内存对齐

​ 为什么要内存对齐

​ 自定义类型的内存对齐规则,举例子算占多少内存空间

​ 什么时候不希望进行内存对齐

​ #pragma pack

2.多态

​ ①虚函数

​ 构造/析构函数能否是虚函数

​ 构造/析构函数里能否调用虚函数

​ 讲讲虚函数指针和虚函数表

​ 虚函数指针什么时候创建、存放在哪里

​ ②模板

​ 模板是要解决什么问题,有什么缺点

​ 模板的声明和定义为什么不能分开写,要想分开写该怎么做

​ 模板特化、偏特化

​ 模板在编译时生成的代码是否会相同,生成的相同的代码如何处理

3.其他语法

​ ①继承时一般要写类的哪些成员函数

​ ②拷贝构造函数和移动构造函数,深浅拷贝等等

​ ③内联是什么,为了解决什么问题,递归函数的内联会有什么问题

​ ④野指针是什么

​ ⑤指针和引用

​ 有什么区别(说越全越好)

​ 值类型、引用类型,C++的值、指针、引用

​ 它们两个传参时是否要复制

​ 除了传值,还有什么情况C++会拷贝构造临时对象

​ ⑥new/delete和malloc/free

​ 有什么区别(说越全越好)

​ delete如何知道该释放多大的空间,这些信息存在什么位置

​ delete[]和delete的区别,基本数据类型的数组使用delete可以释放完全吗

​ ⑦怎样让对象只能创建在栈/堆/内存池中

​ ⑧具体如何重载operator new

​ ⑨RTTI原理,type_info信息存在虚函数表的哪里

4.C++ 11

​ ①Lambda表达式

​ Lambda表达式如何对应到函数对象

​ 圆括号传参数是如何实现的

​ 方括号捕获外部变量(闭包)是如何实现的

​ ②智能指针

​ 有哪些智能指针,为了解决什么问题

​ shared_ptr的引用计数机制,它的问题,如何用weak_ptr来解决

​ ③类型转换

​ 四种cast简述,分别的使用场景

​ dynamic_cast和虚函数的区别(dynamic_cast是为了使用子类的非虚方法或成员变量)

​ ④右值

​ 左值、右值的概念,C++哪些情况下会产生临时对象

​ 移动语义

​ 移动构造函数和拷贝构造函数的区别

​ 转发和完美转发的概念

5.STL

​ ①vector

​ vector的capacity和扩容机制,使用时要注意什么

​ 接着上一题,如果扩容时会引发自定义类型挨个复制构造,C++有什么机制来避免这一点(右值,swap)

​ ②list

​ vector和list的区别,内存、复杂度等

​ ③map

​ 二叉排序树、平衡二叉树、红黑树的设计思想

​ 红黑树的几个性质,各种操作的时间复杂度

​ ④unordered_map

​ 哈希表跟红黑树的比较,优缺点、适用场合,各种操作的时空复杂度

​ unordered_map容器的具体实现,怎么取哈希值,怎么处理哈希冲突

6.其他问题

​ ①C++静态链接库(lib)和动态链接库(dll)的区别

​ ②顺序遍历链表和顺序遍历数组哪个更快,为什么(我答的数组,原因先猜的不用指针寻址,再猜的cache命中率高,面试官都不认可)

​ ③memory_move和memory_copy两者的作用和区别

​ ④一段代码怎么样在main函数之前调用

​ ⑤你觉得C++有什么功能跟面向对象的三大特性相悖

3.2 游戏引擎问题

面试官会找你擅长的引擎问。我这里记录的都是UE4的问题。

我实习内容跟Slate渲染流程的性能优化相关,就把UI模块的一部分源码看得比较细,有的面试官会顺着我会的聊很多,所以下面我写下来的问题比较多。但整体上来看,AI、网络同步是更多面试官喜欢问的,如果要准备推荐先看这些模块的资料。

UE4 C++是做UE的厂必问的,差不多就问gameplay架构、反射、GC、智能指针这几部分,不过大概都会被问到不会为止。

1.UE4 UI模块

​ ①UMG和Slate的关系

​ ②UMG的几种Widget分类

​ ③Slate tick的大致流程,invalidation下的tick流程和缓存更新细节

​ ④LayerId的分配机制(跟第②个问题相对应。SLeafWidget、SCompoundWidget派生的控件基本上都直接用父类的,SPanel派生的Overlay和ConstraintCanvas重写了比较特殊的规则)

​ ⑤Slate的update flag和invalidate reason举几个例子,分别是什么意思

​ ⑥render batch合批的规则

​ ⑦对游戏UI框架设计的思考

​ ⑧其他的性能优化方法

2.UE4 AI模块

​ ①EQS是什么

​ ②UE4的AI行为树有什么结点

​ ③为什么要单独用黑板存储数据

​ ④AI perception是什么

3.UE4 网络同步

​ ①UE4的网络架构(C/S、状态同步、UDP)

​ ②主端、服务端、模拟端的概念

​ ③UE4 RPC能够调用的条件是什么,除了authority是player controller之外的其他条件

4.UE4 C++(这些会先问有什么了解,然后根据你的回答往细了问)

​ ①Gameplay架构(做UE4的厂必问。主要是知乎上大钊的一系列文章)

​ 讲讲UE4的Gameplay架构

​ GameMode和Actor都继承自UObject,那么什么样的UObject才能被拖到场景中

​ Level能有几个,跟World什么关系,GameInstance是什么

​ ②反射

​ 为什么要用反射

​ UBT、UHT具体做什么,如何支持反射

​ MetaData是什么,派生出什么,跟我们用的UPROPERTY、UFUNCTION等宏如何对应

​ 平时写的宏有什么用,比如UCLASS代表什么

​ ③GC

​ UObject本身的GC使用的标记-清除法的大概流程,分帧之类的细节

​ 如果派生自UObject的对象不想使用引擎的这套GC,该怎么做

​ 如果非UObject的自定义类型想使用这套GC,该怎么做

​ ④智能指针

​ UE4 C++的智能指针和C++ 11的智能指针有什么区别和联系,要解决什么问题

​ TWeakPtr等能不能指向UObject类型的对象,能指向UObject的智能指针是什么

​ TWeakObjectPtr怎么判断指向的UObject对象是否invalid

​ 智能指针GC和UE4自己的GC是否会冲突

5.开发经验

​ ①用rider for Unreal(IDE)调试的心得

​ ②Widget Reflector(调试UI的引擎工具)的使用经验

​ ③Gameplay开发中,UE4变量、方法之类的哪些应该写在C++里,哪些写在蓝图里

3.3 游戏开发问题

关于游戏开发的通用问题。各个模块会再问一些特定引擎的问题,对照上面的3.2。

1.游戏AI

​ ①常用的做法简述(NavMesh + 寻路)

​ ②NavMesh的生成过程简述

​ ③A*寻路算法的原理

​ ④是否了解多个AI都在自动寻路时的动态避障算法

2.物理碰撞

​ ①如何判断子弹射击到敌人(然后继续问包围盒、碰撞检测算法等),如果子弹特别快怎么办

​ ②BVH、八叉树等场景管理加速结构,在这些树上检测碰撞的过程

3.网络同步

​ ①状态同步和帧同步的原理

​ ②上面两个在反作弊、断线重连、实时性等等场合,用哪种同步策略好

​ ③TCP和UDP应用上的区别和游戏开发中的使用偏向(不用细说它们的原理)

4.场景题

​ ①跳跃到最高点自动开枪,这个功能应该怎么做

​ ②游戏分辨率变换、窗口尺寸变换时,UI应该怎么适配

​ ③角色可以穿脱装备,每个装备对角色的血量有不同的buff,该如何设计这个功能

​ ④水的着色应该写在vertex shader还是fragment shader

​ ⑤游戏中物体从不透明变成透明,对渲染有什么难度

5.游戏设计模式

​ ①单例模式的作用,使用单例模式和只创建一个static对象有什么区别

​ ②工厂模式,有构造函数为什么还要设计抽象工厂模式

​ ③观察者模式,MVC是什么、怎样对应观察者模式,观察者模式的应用场景

6.其他

​ ①Unity对象生命周期(乍一听不知道是什么意思,实际上是问MonoBehaviour类的tick过程中,各函数调用的顺序,Awake、Update、FixedUpdate、OnDisable等等)

​ ②让你设计一个游戏引擎UI框架,有什么想法,要考虑什么

​ ③游戏引擎的RHI是干嘛的

​ ④游戏开发中的对象池技术是干嘛的

3.4 图形学

对于客户端开发,图形学只是加分项,不算特别重要。我是入门水平,也没有相关的项目,所以被问到的不多,绝大多数公司只让讲一下渲染管线就好了。

1.图形渲染管线,会先让你大致讲一下渲染管线,然后问一些细节问题

​ ①drawcall是什么,为什么要减小drawcall

​ ②粗细粒度culling的区别

​ ③MVP、viewport分别进行什么变换

​ ④深度测试是什么,early-z是什么

​ ⑤延迟渲染管线是什么,有什么优缺点

​ ⑥半透明物体的渲染顺序

​ ⑦shader中为什么要避免使用if语句

2.抗锯齿技术

​ ①MSAA、SSAA的区别

​ ②延迟渲染为什么用不了硬件AA

​ ③DLSS原理的简单说明

3.光照模型

​ ①BRDF概念

​ ②简单描述blinn-phong光照模型,specular、ambiant、diffuse

​ ③简单描述pbr光照模型,lambert漫反射 + cooktorrence反射(DGF)

3.5 计算机基础

五百年没看了,只记得几个经典知识点,再问详细的实在是忘了。跟面试官说不会,基本上也不会再细究。

  • 编译的过程,几个阶段分别发生什么
  • 寻址的过程
  • 虚拟内存空间的概念
  • 进程和线程的概念
  • 进程间通信方式
  • 进程的多个线程是否共享进程的全部资源
  • 进程切换、线程切换,是否引起上下文切换、用户态/内核态切换
  • 为什么线程太多会导致性能下降(1s的进程分10个线程,比分100个线程的执行时间要更短,为什么?我答了调度有消耗但面试官不认同)
  • 怎么发现、定位内存泄漏
  • OSI网络模型
  • TCP、UDP的区别
  • 在应用层如何保证UDP的可靠传输
  • TCP的三次握手四次挥手
3.6 算法题、数学题、脑筋急转弯
  • 口述:判断扇形攻击命中(2D空间判断点在扇形内)
  • 口述:2D空间中,在三角形/圆内如何随机并且均匀采样点,均匀是指点各自占的面积尽量均匀
  • 口述:判断点在三角形内(比较基础,但经常被问。重心坐标、叉乘法、面积求和)
  • 口述:层次遍历二叉树
  • 口述:快速排序
  • 口述:绳子分成3段,要求三段长度乘积最大
  • 口述:两个鸡蛋判断最少从哪层楼扔下来会碎,怎么弄比较好
  • 口述:如何检测链表相交的所有情况,包括有环、在环上相交、入环点不一样等等
  • 手撕:1、2、3、4、5、6、7、8的链表变成1、8、2、7、3、6、4、5,不使用额外存储空间
  • 手撕:合并n个有序链表
  • 手撕:有重复元素的顺序数组,查找新来的元素最前面的插入位置
  • 手撕:DFS解数独
  • 手撕:数组的最长递增连续子序列长度
  • 手撕:两个字符串的最长不连续公共子串(逆天,看一眼直接放弃)
  • 手撕:链表的倒数第k个元素
  • 手撕:顺时针90度旋转矩阵
  • 手撕:数组的第k大元素
  • 手撕:判断汉字的unicode编码是否合法(题很长,记不清了)
  • 手撕:判断回文链表,不使用额外存储空间

四 各公司面试体验

总览
  • 一面挂:tap4fun,红海无限,极致游戏,SNK中国,永航科技,联想研究院(U3D)
  • 二面挂:诗悦网络,字节跳动朝夕光年,剑心互娱,分岔点VR,酷家乐(渲染开发),祖龙游戏,柠檬微趣
  • 三面挂:中国系统(UE4)
  • 放弃hr面:游族(听说必须实习),360游戏(听说必须实习)
  • 全部面完:盖娅互娱(必须实习),数字天空

总结如下(大致按一面时间排序)。

中国系统(UE4)

风评很差的伪国企。看到有UE4岗位,投了练手的。说是刚成立的部门,布局元宇宙,招来的人不进具体项目,而是培养几年作为未来项目的骨干。

8/30投递,9/6笔试,9/9一面,9/16二面,9/27三面。

一面技术面30m左右,节奏较快,只问C++八股和实习经历。二面hr面也是30m,面试官很喜欢纠结字眼。三面准备3页ppt,8分钟时间讲。

9/30感谢信。

祖龙娱乐(UE4)

祖龙连着裁了两年的应届生了,也是当作积累面试经验投的。直接面项目组,我的是祖龙北京,UE4 FPS游戏,类似Apex。

9/8投递,没笔试直接约面,9/20下午一二面连着,加起来约2h15m。

一面上来先做题,然后问一些基础知识,C++、数学、图形学等等。一面完说通过了,如果后面有时间可以连着二面。二面就直接全程做题,面试官不太耐烦的样子。

虽然是UE4项目组,不过面试不问实习和UE4 C++之类的。祖龙看样子是对算法要求比较高。我刷题比较弱,当时也是我秋招的第一场像样的技术面试,整体表现不太好。二面后没消息。

诗悦网络(游戏客户端)

得知是去了再分项目组,最好去实习。听别人说今年诗悦招人很多,进了再来一轮筛选,不太厚道。

9/6投递,9/11笔试,9/22一面,9/29二面。

一面20m左右,先问一些项目、实习心得,再问一点C++、数据结构简单题,无难度。二面hr面,问能不能来实习。

二面后挂。10/11感谢信。

红海无限(游戏开发)

在北京,做cocos2d,说最好去实习。

9/15投递,9/17笔试,9/22一面。

一面1h,先细问实习经历,然后问职业规划、兴趣、业余学习之类的,问一下渲染管线,然后就是做道题(DFS解数独)。我没完全写出来。

9/23感谢信。

联想研究院(unity)

投的是武汉的unity岗位,得知是新部门、做渲染方面的工作,用什么引擎也还没确定。

9/16投递,没有笔试,9/24一面。

一面两个面试官,一共不到30m。技术面试官问了下实习经历,然后讲了下渲染管线,问了几个unity引擎的实操题。然后另一位hr面试官也问了几个常规问题。

一面后无后续。

极致游戏(游戏开发)

9/16投递,9/17笔试,9/27一面。

一面有两位面试官,一位技术一位hr,共1h多一点。知识上问得不多,主要就是各种八股,难度不高。hr面试官问得很多,有实习感悟、项目成长之类的,也有一些常规无聊hr问题。总体上聊得还是挺愉快的,面试时间也挺长,但反手就给挂了。

10/8感谢信。

SNK中国(UE4)

也是UE4项目,好像是MMO,但大概也是去了再分。会问倾向于进上线了的项目组还是在研项目组。

9/16投递,9/24笔试,9/29一面。

参加得比较早的面试,有C++八股,也有一些UE4的内容。我答得不是很好。

一面后无后续。

tap4fun(游戏客户端)

9/8投递,9/16笔试,9/29一面。

一面30m。20m细问实习,5m问项目(碰撞、网络同步等功能)和渲染管线,剩下开始问网络、OS,太久没看了实在答不上来。

放完国庆假期挂了。10/10感谢信。

盖娅互娱(unity)

在北京,unity项目,类似江南百景图。必须实习转正,可以寒假去实习。

9/15投递,没笔试,10/9一面,10/10二面。

一二面都是30m左右。一面无八股,按照游戏开发的各个模块来问,渲染、AI、物理、网络、脚本语言等,渲染问得挺多。二面印象中C++八股问得多一点。

流程倒是飞快,二面完hr在微信上谈薪。谈完薪第二天又说hc调整,不发offer了。可能也是想找能去长时间实习的。

游族(游戏客户端)

我面的是游族上海的少年工作室,做cocos2d。每轮面试可以自选时间,也有hr微信联系,挺专业的。看到牛客上游族面经非常多,我应该是比较靠后面的批次。

9/6投递,9/23笔试,10/11一面,10/21二面,10/25约hr面。

一面常规技术面,30m,两个面试官,问八股为主(因为我没用过cocos),问对不同的引擎有什么看法,接不接受转cocos。二面像是leader面,1h左右,技术问得少,会问一些规划、感悟,还问发了offer会不会来,我就比较真诚地说会对比考虑。

感觉表现得还不错,面到底应该有可能拿到offer。二面后约hr面,但当时马上11月了,一是对cocos没兴趣并且已经拿到了UE4的offer,二是考虑直接不做游戏客户端了,三是看帖子说要实习,就主动放弃了。

室友跟我分到一个工作室了,面试时间相近,也面到底、拿offer了,钱给的挺多,也对他挺器重的,并且也没说必须实习。游族是在特定领域很有成功经验的老厂了,如果对项目、城市感兴趣,选游族也是一个不错的选择。

360游戏(游戏客户端)

360北京,做出海手游,unity引擎,有轻中度各类项目,去了分。

9/6投递,9/9笔试,10/10一面,10/19二面,约10/25三面。

一面25m左右,问了一些简单的八股,我答得都不错。二面1h左右,这场面试应该是我整个秋招印象最深刻的面试了,面试官基本上是以一个前辈的身份来聊聊天,一方面讲游戏开发技术的专精、探索领域和职业晋升路线,另一方面也介绍一些相关的重点知识,偶尔穿插着问几个问题。面完了感觉像上了一节课一样,而且接触到了一些工作经验、职业路线方面的东西。作为还没入行的新人,我们之前学习的重点都在“入行”这件事情上,这种工作后的经验确实很难了解到。

同样是二面面试官说的,360游戏现在确实没什么名气,但也刚做了一些调整,大家都希望能把360游戏做起来。只以二面的感受来说,我觉得去360游戏也真不是不行。

但差不多也是10月底了,出于跟游族类似的考虑,放弃三面了。室友面了三面,要求提前实习。

酷家乐(图形渲染引擎开发)

做家具场景的渲染引擎的公司。10/9投递,10/11一面,10/13二面。

一面其实就是笔试,给1h开摄像头做一道大模拟题,大意是识别车牌。

二面前搜了一些面经,看到都是图形学、渲染问题,但实际面试问我的全是C++八股,30m左右,答得还可以。

11/1感谢信。

剑心互娱(游戏开发)

9/11投递,9/14笔试,10/12一面,10/18二面。

一二面都是30m左右。一面问简单八股。二面之前要填一大堆个人资料,包括家庭信息什么的,跟多益要的那些信息类似。二面问的东西偏向计算机基础,有一道编程题。

二面的内容对于我来说算是比较偏了。前面记录的一些怪问题都出自这一面,比如顺序遍历数组和链表哪个更快、为什么分10个线程不如分5个线程。出的编程题涉及到汉字转unicode编码,这个确实没接触过。

听完问题感觉是不难的,但一下子也不知道面试官想问什么知识点。跟面试官交流想法(比如确定一下思考的方向)是得不到任何有用信息的,反正两位面试官说完题目就开始闭麦聊天,跟我交流就是把题目翻来覆去地说。体验并不比字节二面好,唯一好的就是面试官不PUA,觉得我不行就直接不理人了。或者说字节二面我还能学点东西,剑心二面真的是意义不明。

10/19感谢信。

数字天空(UE4)

成都的中小厂,做UE4主机游戏,B站上有当家项目project dt的宣传片。去了公司再分项目,所有项目都是UE4主机游戏。

9/15投递,9/30笔试,10/12一面,10/17二面,10/18三面(hr),10/20四面(cto)。

前两面是技术面,各2位面试官,都是1h多,不刷题。问得挺硬核的。可以说对于UE4,你会的所有东西都会被问到。先细问实习、项目,再问一点八股,然后UE4 C++也问得很多,当时我很多东西只听过大致的概念,细节问题挺多都没答上来。

四面完当天电话谈薪,马上收到offer邮件。流程很快,也不逼签,给三个月随便考虑。

数字天空秋招体验确实挺好的,面试官比较专业,流程也快,(除了四面里有三面是临时通知推迟的,5m到1h不等,)薪资在成都也算不错了,并且不加班。

一句话来说,不管是秋招体验还是在做主机游戏,都有种清流的感觉。在今年的环境下确实让人很有好感。

不过也有几点需要考虑的,一是project dt被腾讯拆了,制作人出走。二是网上对数字天空的技术水平评价不高。但其实我都不算很在意,最后想的是如果做游戏客户端开发那就去数字天空了。但后面决定转行了,比较可惜。

字节跳动朝夕光年(游戏客户端)

更是重量级。朝夕光年深圳,只说是UE4项目。

9/10投递,9/18笔试,10/13一面,10/19二面。

一面和二面流程类似,都是1h多,问得比较全面。先讲实习,然后再问UE4各模块的东西。然后就是C++八股,UE4 C++。最后出一道编程题。比较基础的八股也会一直往深了问。

二面的那天我面到字节是第四家了,脑子不太清楚。字节问得深,主要是我也菜,加上面试官一直在说“掌握得不好啊”、“我觉得挺可惜的”这种话,全程歪着身子叹气翻白眼,总之当时确实心态不太好。最后的算法题并不难,但我一遍写完发现没写对,一下子就懒得调了,跟面试官说放弃了。算是从实习到秋招的压力累计而导致的破防时刻吧,总要有这么一次的。

10/21感谢信。

永航科技(UE4)

也是用UE4的公司,在北京,之前做了生死轮回的项目组。

9/30投递,10/13笔试,10/19一面。

一面一共20分钟吧。面试官听说我的公开课项目主要用蓝图做的,而且实习也不是做gameplay的,就不太想聊了。随便问了几个UE4的游戏场景题,答不上来。

一面后无后续。

柠檬微趣(unity)

项目以unity休闲游戏为主。

国庆节后在牛客投递,10/15笔试,10/20一面,10/21二面。

每面1h左右,都是先细问实习,然后问八股,最后口述几个算法题,再手撕做一道。

我两面自认为表现都还可以(最晚的面试,水平巅峰了)。手撕题不算顺利但都做出来了。可能技术栈不匹配,二面后无后续。

五 经验教训

5.1 准备

今年的秋招情况简单来说,就是大公司不招人或者很早就招完了,导致很多人都在海投中小公司。“师兄投5家、我投50+”确实发生在我身上了。

因此,今年的中小公司也是优中选优,竞争激烈。实习让我认识到游戏行业是倾注了很多人的热情和聪明才智的地方,如果像我一样学历、聪明程度、努力程度、对技术的热爱程度、各方面的知识都没什么亮点,要做好一次次碰壁的心理准备,或者早做打算、另谋出路。

也是因为今年我等普通人的归宿大部分都不是大厂,越小的公司越希望马上来一个即战力,需要注意:第一是这些公司跟大公司相比,面试考察的重心会稍微偏向项目、实践,像基础、八股、刷题都不会多问,因此如果有比较好的gameplay开发经历是占尽优势的;第二,非常非常多的公司会要求毕业前提前实习(至少是希望你来实习,也有公司直接发实习offer,来了再转正),如果跟我一样老师不放人的,那可以直接pass了。

而说到gameplay开发经历,首先简历上有大厂实习经历肯定是好的,如果你平时就可以随便实习,就尽量早找、早去,到了暑假就不要再实习了,除非有100%转正的把握。如果跟我一样老师只让研二暑假去实习,也一定不要全身心地投入工作,而应该把准备秋招当成主业,积极投递提前批、第一批。一方面,面试确实是有必要先练习的,我也感觉自己面到后面,不管是知识上还是特定问题的表达上都有了一些进步;另一方面,早的都是大厂、提前批,好机会更多,而中小厂8月把笔试都做完,9月也可以第一批进面。

我是在天美上海实习,6月在线上没怎么进入状态,解封后去了上海,把7、8两个月全部投入到实习工作了,当时的想法是有hc就转正,转不了正就拿这一段比较有含金量的工作经历来弥补一下刷题等秋招准备上的不足。但我工作的内容却跟gameplay开发不相关,而是去做UE4引擎本身的一个功能。虽然在面试时多少能讲一点,面试官对这段经历的评价也都不错,但实在是跟各个公司的需要不太符合,这时候我缺乏gameplay经验、秋招准备也不足的短板就都显露出来了。大家不要走我的老路。

如果简历上没有实习,做个好点的demo应该也差不多?看上去一大把的公司就是想招一个实习生直接干到毕业,那么之前有没有实习或许就显得没那么重要了。我不了解也不瞎说了,但相对的各种知识的准备一定要够硬。

5.2 心态

再有就是很多面经都在说的心态问题。人人都说要坚持,因为秋招确实坚持就是胜利。开始时的不顺利是很普遍的,我和我室友进度走到比较后面的公司反而全都是10月才开始面的。

此外,最好也不要因为投晚了、准备得不好、跟岗位要求不是很符合之类的原因就放弃一些机会。比如我当时就是抱着试一试的心态,给我最后选择去的公司和岗位投了简历,整个面试过程问得也不算难,甚至知识上的问题问得都不多,都不知道该记录点啥。

另外,由于海投,所有人的战线应该都不短,如果能在秋招期间利用好时间,应该也能把刷题练熟,或者直接准备一个好项目了。然而我是做不到的,这几个月各方面进度都是停滞的,没怎么学过新东西了。刚好最近在玩『P5R』,也知道了拥有强大的内心是不容易但非常重要的一件事情。

其实我想说的是更长远的心态。我们每个人都是怀着某种理想与热情,想要进入游戏行业,做自己感兴趣的工作的。但对我这种普通人来说,现实往往就是一边看着各种新游戏PV和知乎的技术分享觉得心潮澎湃,另一方面发现自己连入行的机会都没有,很容易因为理想与现实之间的差距而感到沮丧。再结合自己从小到大越来越努力,日子却越来越难过的事实,去怀疑人生意义也不是没有可能。

说到底,今年的情况大家都能看到,秋招找到工作也不意味着万事大吉。offer被毁、试用期被卡、应届被裁、项目被砍、行业被叫停的事情越来越多,在各种环境下保持一种积极学习的心态,会是更长期也更重要的修行。因此,如果秋招期间能建立这样的心态或许是一件好事,比多拿一个offer要更重要。@BBBourne在他的面经里说:“无论环境形式好与坏,提升自己的能力是最关键的。”

当然了,我心里还是希望我所经历的就是最难的一届秋招了。再次祝大家都能找到理想的工作,祝今后的游戏人都顺利入行!

有任何问题欢迎留言或者私信。