游戏开发校招面试全记录(大三篇)

上课听着职业老师在说,你们要写求职信哦呵呵。。现在工作很难找哦呵呵。。用上世纪90年代讲现在的招聘是肯定不行的,我就分享一下自己写过的两个面经吧,也算是我的春招和面经吧。写的不对的地方你们也就呵呵一下过去吧,啊哈哈。
春招我算是比较早就开始准备了,从网易雷火出来
先简单自我介绍一下,楼主北方人,长沙普通一本上学,18毕业,在一家初创公司从事unity3d开发半年有余,也会点3DMAX和ps,工作上主要做开发和以及程序和美术沟通协调的事情,至于怎么找的,因为我在他没有招我的情况下默默把老板的需求提前完成,他突然有一天问我有什么想法,我就截图给他就直接过去了
春招身为一直想做Unity开发的我忍不住摩拳擦掌
至于本身,简历四个项目
春招开始,完美简历没过,腾讯最后一轮被微笑着GG,网易游戏网易,拉勾实习僧申请未果,笔试未过,4399不明所以的了无音讯,西山居没信儿

社招简历没人看,校招unity无人要。

以现在自己大学毕业的立场来看,才知道,只从unity开始作为程序的入门是肯定不够的。

庆幸于自己的坚持,源于自己的热爱,至今还在从事游戏行业,做客户端开发。

相比于很多人而言来说,我并不是最优秀的,也没有进入到腾讯网易以及很多人第一反应出来的大厂。

但是能做到的只有就是一直努力下去。

身为一个平凡人的分享。

一直告诉自己要努力,一年半基本没有一点点休息时间,近四个月抄完数据结构默记各种理论算法淘遍内推码面经,基本是起床到睡觉的无间断学习,能怎么样,又怎么样,无果,无名。
但还是想记录一下自己的努力过程已经面经
从雷火笔试之后,自己就意识到数据结构的重要性,先用一个月用c#写完了数据结构这本书,后是把其中的概念里里外外过了两遍,一两天刷一道Leetcode,精读剑指offer和3d数学和图形学,浅读shader入门到精通,之前关于unity的书以及碰到bug被气cry一个人自学坚持的苦略去一万万万字
对了,楼主是个蠢蠢蠢蠢妹子
言归正传,因为校招根本就没有unity选择了社招,也有两个小公司过了面试,问题大致是这样的
1,DrawCall多少为好,怎么样减少?(150以下..减小就是答游戏优化的种种)
2,Animator里面的状态机(animatorstateInfo)
3,unity里面的函数调用顺序(awake。。。。。直到lateUpdate)
4,TCP和UDP区别(一个安全,用于游戏中聊天,一个便捷,常用于一些赛车游戏)
5,有用过什么插件(nature pack ,easy road ,ngui 。。。。太多了)
6,unityGI(5.0自带的光照系统,一个LIGHTING Probe+refection Probe事实全局光,注意只是支持静态物体)
7,面板里面的内容和edit下面的Projuct Setting的内容
8,9,10...非技术问题巴拉阿巴拉
另外一家公司是安静的听着我对于c#和unity的理解继而一一指出问题,比如说委托除了Func,Action,还有Pred..(忘了怎么拼,返回bool)..
还有问你怎么样理解策划为什么不做美工。
当然这些都被楼主拐弯儿抹角儿的说回到程序了
春招有一段时间是心态爆炸的,要么被拒要么没消息了。。。
比如说我4399,也算是从小玩到大了,好不容易出来个unity我就赶紧投了
收到简历的当天晚上就收到了第二天面试的通知
第二天12点半果然接到了HR的电话(那天紧张到拉肚子=-=)就问方不方便去广州面试和学习过程,代码量和成绩之类的
我原本还以为之后一周才会过去面试,结果在我实习的时候突然就来了面试电话
1,HashMap和List区别(这俩怎么能扯到一块去,不过我还是说了下HashMap和HashTable的区别以及ArrayList和List的区别)
2,Tcp怎么样防止数据流失(自己定义协议包)
3,渲染的过程(应用阶段->几何阶段->光栅化)
4,unity可以合并哪些纹理
5,喜欢做什么,爱好
6,学习成绩
7,怎么去自习,有看过什么书
8,进程和线程(协程就是unity一种多线程的机制,用yield return返回)
看到腾讯的笔试竟然过了。。我特么想想,我笔试都强制关机了(实在是做不下去啊亲),那一段感觉自己都快被全中国拒绝了,有一种天不亡我的feel
立马订了去武汉的车票,5点就起来赶啊赶火车
一面是个胖乎乎的大叔,自称是多款游戏的主程,还好,大多数情况,他是让我说,记录问题如下
1,进程线程协程的区别
2,为什么ngui在VR里不能使用
3,谈谈对于数据结构的认识(因为楼主都快把数据结构背下来了,洋洋洒洒说了半个小时)
4,b树b+树b*树的区别(b+树对于叶子结点有一个双向链表,b*树+非叶子结点)
5,动态规划(最短路径算法)
6,谈谈排序和堆排序的应用
7,AVL树和红黑树区别(一个通过旋转实现完全平衡,一个通过定义根结点的颜色)
8,NGUI Altas原理
9,用c#实现一个商城的业务逻辑(因为刚做过,还有印象)
扯了好久才出,也算是信心满满,结果当晚就得知一面过,本来已经疲惫不已的小神经再次兴奋起来,又是12点睡5点起
二面应该是个比较随性的大叔,笑呵呵接待我(我现在还是不知道怎么就被他挂了)

1,有玩过什么类型的游戏,劳资特么觉得自己就挂在这上了,玩过游戏港真真不多(我时间都去学编程去了...委屈脸)
2,渲染次序,为什么要有CPU和GPU(GPU并行运算)
3,学习的历程
4,复合型人才和专业型人才你怎么看(因为本身我会美工也会程序,但是我说要先成为一个出色的专业人才,再做复合型人才)
他全程都在强调说你也不是本专业的....巴拉巴拉,我就一直在强调,我在通过我的努力把专业补上来..巴拉巴拉
中午1点半出来,武汉还是蛮热的,当时心里想着还能过,想着回去乐哈的等着HR面,可是2点半刷新微信就看到,我已经挂了,睁着眼睛,眼泪就掉下来了,那时意识到,春招结束了,哭着把简历又交给HR,不过也没有音讯,就那样哭了一天
无奈踏上了昨晚回长沙的火车。。。
暑假可能依旧会去一家小公司做做unity开发积累下自己,春招对于我自己而言,已经是尽力了
有人说,面试看运气和缘分,运气不那么好,缘分还没有到..把
用一句话告慰一下自己吧,一个人可以被毁灭,但不能被打败

至于自己一个人从武汉哭着回去

那都后话

和大家交流的多了,游戏开发,你绕不去 C++ 这个大坑啊。。。

就算 unity 是基于 c# 的二次开发,背完 c# 的数据结构和算法。笔面试只会问你

STL 知道么?

反转链表知道么?

谁让大厂基本都是用自己的引擎呢?谁让 unity 的底层是 c++ 呢?

因为之前在公司里面做的是 PC 端的产品,专业又和编程没多大的关系

数据库 -> 白痴

c++-> 零入门

学校实验室 -> 建模

辗转反侧,多少次想放弃吧,但是想想,放弃了,那么多功夫不是白费了。

既然游戏开发 c++ 这个大坑是必须要入。

春招的话应该来不太急, unity3D 是 c# ,那我为什么不试试 .net 。(那时候是真得找不到觉得从事不了游戏行业)

在闺蜜的“不宜妄自菲薄”的建议下,我社招走 Unity3D 吧,同时,也在加强 c# 的基础,校招准备 .net

这里是我过得一些公司,以及面经,答案依据自己的理解简单去写。

一 . 南京某游戏开发公司— unity3d 游戏开发—(拉勾)

1. animator -parameter

2.drawcall – 以及如何去优化

drawcall 是渲染的时候, cpu 向 gpu 发送消息所产生的,最好不大于 150

优化就是游戏优化的技术,代码方面,模型方面,渲染方面都是可以的。

3. 游戏中的寻路算法

有 a* 算法,我说的是用到的一个插件, RAIN

最短路径算法还可通过迪特斯科拉算法和贪心算法去实现的,比如说在一个大片的区域,有障碍物,迪特斯特拉和贪心算法实现的路径就不是一样的。

4. 触发器, OnTriggerEnter

5. 碰撞体 OnCollsionEnter 如何做碰撞检测?

vioid OnCllsionEnter ( Collsion  coll )

{

if ( coll.gameobject.name==”xx” )

{

debug.log(“offer”);

// 实在不知道怎么描述代码贴上

}

}

 

6. 函数执行顺序:

Awake——>OnEnable–>Start——>Update——>FixedUpdate——>LateUpdate——>OnGUI——>OnDisable——>OnDisabled——>OnDestroy

7. 技术无关的问题:巴拉巴拉

遇到问题怎么解决的思路很重要

碰到什么问题,怎么遇到,怎么解决。通过什么方式去解决。能从背后看到什么问题。

二 .某一家公司 ( .net 开发)

1. 值类型,引用类型

值类型属于栈,引用类型属于堆

值类型存储速度快,引用类型存储速度慢

值类型内存是自动调配的,引用类型是通过 GC 去回收的

2. 堆和栈的区别

和上边差不多

3. 设计模式看过么?

六大原则:迪米特,接口隔离,依赖倒转,里氏替换,开闭,单一职责

4. 设计模式用过什么?

单例模式

public static Class intance=null;

private Class(){}

public static Class CreateInstance()

{

if(intance==null)

{

return instance;

}

}

依据自己印象写的

适配器模式

观察者模式

命令模式

5. 反射:反映程序集信息

6. 排序

这个答得好 Happy ,问我冒泡排序,面试官就玩手机去了,我看我写完了他还想继续玩的意思,那我就写吧。

简单排序:冒泡插入选择

复杂排序:希尔归并堆排快排

时间复杂度:简单排序都是 O ( n 方),复杂排序堆归并,快速都是 OnLogN

希尔是 OnlogN-O ( n 方)

但是印象的话吧

快排是不稳定的排序,涉及到边界越出的问题。

7. 可能是他玩手机有些久了,抬头一看,说,妈呀你写了这么多,别考了,填个单子吧。

填单子的时候,一个主程来了。

问问题像低声炮一样,再加上当时我在写表,就答得乱七八糟的,问我数据库,加锁,多线程,项目里面的知识。

多亏了我考前背面经大法,还算从容不迫的一本正经胡说八道。

后来他忽的提高声音说,嘿嘿,我是故意的,看看你的潜意识有没有这些知识,有些不会的就不要说了,因为我数据库就知道有关系型数据库和非关系型数据库,具体的区别嘛,我就说不太清楚了,加锁也只知道是 Lock 实现,多线程是用 Thread 去加。

(人间总有真情在,终归逃不过套路,我心里一句我去你 ***** 。。。)

三 . 北京***—( VR 开发)

呼,终于是松了一口气,这是我的老本行啊,我去。

1.VRTK,Stream VR 是什么?

vr 用到的插件, Stream VR 是必须的, vrtk 可以便捷实现多个行为操作(拾起,瞬移 .. )

2. 项目中,优化方法有什么?

LOD , LightingMap , LightingProbe…… 因为 VR 主要的限制还是场景,灯光,渲染,围绕着去说就好了。

3. 做过什么项目,怎么解决的,添加了什么类。

在公司里面身为一个策划, UI ,效果图,模型,开发什么都做的我,这个肯定能哔哔啊

一个小时过去了 …

可以了,之后让 HR 联系你吧 …

四 . 北京***- (游戏开发)

这个还好,主要是问了我一堆

小姑娘,游戏开发很辛苦的,怕不怕啊

小姑娘,你为什么不做美术去啊

小姑娘,你怎么理解程序的呀

小姑娘,项目下半年会很多的,能应付的来么

小姑娘,你平时怎么学的啊

小姑娘,你有什么作品么

我二话不说就是一本 Unity3D 入门到精通(超级厚的一本书)

哎,要是真有那个胆子就好了,我把我 demo 的录屏给他看

俩小时后吧

他说广州

暑假你来吧,剩下我在风中凌乱 ..

五六 . 广州一个游戏开发公司,和广州芦苇科技

1. 队列的实现方式,可以用 ArrayList 去实现

2.ArrayList 和 List 的区别。

3. 网络游戏做过么? .. 没

4.Socket 编程有了解过么?

差不多吧

步骤是 bind->listen->accept->receive->send

5. 那了解 Tcp 么 ?

Tcp 需要三次握手,必须要有服务器,稳定效率低。

UDP 一次就可以了,但是不稳定

6. 那 UDP 怎么写可以稳定一些?哈利路亚,现在我还是不知道

7. 泛型和泛型的应用?抑制代码爆炸

8.B/S , C/S 一个是。浏览器服务端,一个是客户端服务端

9. 教育我等小妹子们 … 我承认那时候朋友叫我去吃饭,我一心只想挂电话 =-=

七 . 上海*** - ( .net 开发)

1. 委托。



2. 怎么去调用委托

BeginInvoke 和 EndInvoke

3. 同步和异步

同步是进程执行完,下一步

异步是不等下一个,就进行下一步

4. 如何实现 MVC ?

我说了一下 MVC 在 Unity 中的应用,不过正经的 MVC 是和数据库挂钩的。

5.NET 生命周期,步骤太多,我就说了不知道。

6. 数据库优化方法:

杀 dba ,遵循第三范式,建立适当索引

说一下数据库特性也好:原子性,一致性,隔离性,持久性。

7.C# 面向对象

封装,继承,多态,多态分为,抽象类,接口,虚方法

8. 虚方法和抽象类有什么区别?

一个是 Abstruct ,一个是 Virual 。抽象方法必须要被重写。

9. 重写和重载。

一个是 override 。 重载:函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间。

你可能感兴趣的:(Unity3D)