游戏开发从0offer到offers..双非妹纸的逆袭
腾讯\4399面经,已纪念我失败的春招
许多人想做游戏开发源于对于游戏本质的热爱,但是殊不知,游戏开发一旦成为了自己从事的行业后,加班,压力都会接踵而来,并且,坑少喜欢游戏的人又多,这时候找工作,是否有自己拿得出手的东西和与此相关的经验成为自己能不能拿到游戏开发offer的重点。
世界上最无能为力的事情就是我想。
我想做游戏开发,我有认真努力的态度,我真得想进入到游戏这一行业。
然而面对着空空如也的简历一切都显得单薄。
在游戏开发的积累上,首先,正如开头所说,游戏开发,是源于开发而高于开发。
大概需要掌握如下方面:
1.至少一门语言。(c++或者如果你是想从事u3d那么c#也可以)
2.数据结构,具备算法思想(比如比较多会考到堆栈,数组,键值对,链表,二叉树,算法主要是递归分治,动态规划,查找排序..)总体来说,会做OJ就行。
3.如果是unity的话,熟悉ugui和一些必须的插件,比如(shader forge ,ngui…)明白协程的用法,能说出来里面方法对应的调用顺序。
4.有自己做过的项目,能说出来里面体现的设计模式。
5.熟悉游戏优化,明白FPS和DrawCall什么意思,最好能知道如何处理UI和模型。
6.基本图形学,和渲染的流程。
7.对于网络编程的话,主要知道TCP和UDP的区别就可以。
8.最主要的是,要能看得出来对于游戏的热爱。
因为已经在帝都有了比较心仪的offer,从年后开学主要还是回到了自己学校这边,一则主要看看有没有比原先公司更不错的offer,二则实习已经一年多了养养浑身的酸痛,三则看看能不能找工作找到异地恋的男票那里(其实他还是很强的,但是偶尔就是差了那么一点运气,比如他阿里终面挂,CVTE终面挂,滴滴终面挂,还偏要去研究院一类的公司)四则,就算没有工作机会也可以捡起来C++,俗话说底层基础决定上层建筑嘛。
总之用同事一句话:
要做自己喜欢并且擅长的事情。
校招:
不得不再次感慨游戏公司还真得是少哦(相比互联网什么的,划圈圈划圈圈.....)
不过我立志做一个出色的游戏开发妹砸。
从下学期基本属于呆在家里的状态,一则是之前在公司里加班太猛了导致身体弱不禁风(脑补林黛玉画面),二则实习太久了,但是实习工资真得是低哦(虽然咱不是俗人,但是同样的同样的工作量,实习生只拿4分之1的钱就是莫名特喵的不爽),三则也是看春招能不能找到更好的公司(捂脸跑)。
参加的第一个宣讲会
广州百田(500-2000人,上市公司):
笔试题(OJ):
1. 给定一个数字数组和k,将[0->K-1]和[k+1->n-1]的值进行交换。
2. 给定一个字符串,求里面出现的字符出现前五的是什么。
3. 手机键盘输入问题,输入一串数字,输出所有字符串组合可能。
面试题(一面):
怀着悲痛的心情回忆白天的面试。
真得是难受..全程while(true)式蒙圈儿
1. 拿着笔试题问做的思路以及实现过程,有没有可能优化?
2. 如果一个3d的游戏项目内有一个室内的家装展示,有一个45度的相机会把家具显示出来,假如每一个家具的位置可以用坐标上的一个点表示,怎样的算法控制渲染顺序才能实现使得所有家具没有不合理的遮挡关系?如果相机变成30度的呢?
3. 如果是一个抽卡游戏,一共有7个备选,我要保证抽7次卡,每次抽到的卡都不同,该如何去实现?我要保证抽14次卡,前一次和后一次抽到的卡都不同并且7张卡都要抽到,该如何去实现?
4. 有没有学过离散数学,概率分析和对线性代数(变换)的理解?
5. 图形学:渲染顺序。有没有自己写过Shader,有没有用过ShaderForge?
6. NGUI为什么必须要使用图集(NGUI的底层实现原理),为什么UGUI里面则弱化了图集的概念?
7. 说一下自己在做游戏过程中遇到逻辑最复杂的问题。
晚上正当我垂头丧气耷拉在电脑前面的时候,竟然收到了第二天上午二面的通知,这是什么?
我微博上转发的锦鲤显灵了?
秽土转生捞简历?
突然想到了面试官临别时那一抹神秘的微笑...兄弟你莫不是要搞我..
幸福来得太过突然,既然一面都这德行了,不禁让我回想起tx的二面过程,同样幽暗的过道,同样让人难受的过程..那还是临时抱一抱佛脚丫子。
我认真看了一夜图形学,UI,动画...一大早就赶去面试
结果....关于技术,一点都没问..
面试题:(二面)
1. 请问你是什么专业...自说自话..哦..地信是吧,有什么专业课和计算机相关?
2. 你有自学游戏开发多久?过程有什么问题?怎么解决的?
3. 你为什么想做程序而不是想做美术(因为简历上写会PS&&3DMAX)?
4. 工作中你遇到不懂得问题怎么办?怎么去和策划沟通的?
5. 广州这个地方觉得还可以么?
6. 对于加班这个事情怎么看?如果你呆的项目组,项目被毙掉了,怎么办?
7. 有什么喜欢玩的游戏,喜欢做什么类型的游戏?(因为本身以前在游戏公司大家就是谈这个的,所以谈得比较愉快)
8. 让我问问题:1>.您真得不问我技术方面的问题么?他竟然说..做游戏,只要有乐趣就可以了...2>您比较看重游戏从业者哪些品质?...他果然回答我..对做游戏的兴趣。
口头offer
江西贪玩(500-2000人,融资情况未知):
没错,就是渣渣辉代言的那家公司
一面:
1.聊一下你做过的项目,解决过的问题。
2.你说你解决程序和美工之间沟通协调的问题,是怎么解决的?
3.怎么可以用程序解决max或者ps上的问题?
4.用过unity上什么插件?有没有基于插件做过相关的二次开发?
5.对自己的定位如何?对于薪资的期待?对于公司环境的期待?有没有未来的一个目标和规划?
6.问公司问题:1>.未来将开启什么类型的项目?2>.制作周期大概是?
二面(HR):
简要的谈了一下薪资待遇,和要做的项目。
offer
****(500-2000人,融资情况未知,因为笔试题要求保密所以不写出来)
笔试:
1.链表反转
2.树的最大深度
3.一组字符串’(‘和’)’是否对应?
4.游戏内的抽奖问题,一天有三次抽奖的机会,抽到第一次有20%的情况播放广告,抽到第二次有50%的情况播放广告,抽到第三次有80%的可能播放广告,一天有三次可以抽奖的机会,每播放一次广告会增加一次抽奖的机会,请问玩家一天理论上有多少次可以抽奖的机会?
因为公司本身不缺人,4道A3道仍然没有面试~
社招:
易帆互动(150-500人,融资情况未知)
直接面试的那种
一面:(当时说的乱七八糟的,还是整理一下答案吧,部分引自度娘)
1. 值类型和引用类型的区别
(不是我说...度娘比我好用多了)
2. C#面向对象:接口和抽象类的区别
第一点. 接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。
第二点. 接口可以多继承,抽象类不行
第三点. 接口定义方法,不能实现,而抽象类可以实现部分方法。
第四点. 接口中基本数据类型为static 而抽类象不是的。
3. Lua里面如何实现类的继承(之前做客户端开发语言是lua)
http://shitou521.iteye.com/blog/832115
这上面博客有详细的记载,我竟然扯了一个冒号继承.....
4. 对于排序算法的认识
简单:选择排序,冒泡排序,插入排序。
复杂:希尔排序,堆排序,归并排序,冒泡排序。
其实每一个问题都会忘深入去问,他有问到我主要会用到什么样的排序,我说了选择和冒泡。
5. Unity里面动画的转化(怎么从一个动作转换成另外一个动作)
这个问到我的时候其实我是大写的,懵逼,但是表面还要维持着尴尬而不失优雅的微笑。
我原先说得是可以分为两点,一是状态机,二是animator本身下面的方法。
好吧,我百度去...
(30分钟后)..我特么编的还真对
6. 是不是有责任心
个人装逼时间...
7. 要我问问题:1>公司氛围怎么样?2>.公司主要在做的项目是什么类型?3>我在面试里表现有什么不足的地方?
二面
1. 上来就问快排(幸好老娘只记得原理,让我现场写代码就凉了)
相当于是数组长为n设置一个基准值k位,比如我从小往大排序,同时遍历从1~k和k+1~n,如果前面的值比k大放到k的后面,后面的值比k小放在k的前面。递归的去运行快排的方法,直到数组排好序。
时间复杂度可以低到Onlogn,但是最高的时间复杂度可以高到O(n二次方)。
2. TCP和UDP各自的特点?如何同时能实现TCP和UDP的优点(后面这个我直接说的不会,实在是特么的憋也憋不出来...)
TCP:数据传输稳定,经历三次握手,结束时第四次挥手。
UDP:数据传输不稳定,但是可以时时传递,比如赛车类的游戏和即时策略的游戏。
3. 要我问问题:1>.对我现在学习一些建议。2>.贵公司怎么看待如今大火的二次元市场(我特么还真是牛逼哦,临时扯了这么大一话题)
141. Linked List Cycle:
https://leetcode.com/problems/linked-list-cycle/discuss/120759/C++-O(n)-by-next-and-next-next-with-comments..easy-to-understand
27. Remove Element
26. Remove Duplicates from Sorted Array
https://leetcode.com/problems/remove-duplicates-from-sorted-array/discuss/119987/learn-c++
21. Merge Two Sorted Lists
https://leetcode.com/problems/merge-two-sorted-lists/discuss/119763/c++
20. Valid Parentheses
https://leetcode.com/problems/valid-parentheses/discuss/119747/Learnt-about-Stack-Used-C++
14. Longest Common Prefix
9. Palindrome Number
https://leetcode.com/problems/palindrome-number/discuss/119206/c++-in-8-lines-easy-to-understand
198. House Robber
https://leetcode.com/problems/house-robber/discuss/120936/O(n)C++-with-comments
136. Single Number
https://leetcode.com/problems/single-number/discuss/121051/leetcodeLeetCodeC++
344. Reverse String
412. Fizz Buzz