IEG Timi Game Client Development Daily Internship First Round Failure
天美工作室群-游戏客户端开发日常实习一面凉经
问题
Q:先自我介绍一下吧
A:面试官您好,我是来自深圳大学电子信息工程学院的大二学生xxx,我目前是在一家小厂的后端开发岗位实习,另外还参加了清华人机交互实验室的水木心育项目的游戏开发实习,是远程的,同时我自己还有一个独立游戏项目正在开发
这里面试官说他也是深大的,我说学长好,然后就进入算法题阶段
Q:那我们先来做几道算法题吧,我给你出题,一共三题大概半个小时两道是比较正常的,你慢慢想不着急
然后我就开始写题了,三题中一道简单两道中等,链表-简单,数组-中等,二叉树-中等
T1. 合并两个排序的链表
leetcode 类似题目:合并两个有序链表
牛客原题:BM4 合并两个排序的链表
T2. 三数之和
leetcode 原题:三数之和
T3. 二叉树的层序遍历
leetcode 原题:二叉树的层序遍历
这三题我其实都没啥思路,虽然好像都见过但实在是太久没刷算法题了,面试官说完大概半小时之后就关摄像头了,然后可能是看我十分钟过去连简单题都没写出来就又打开摄像头跟我说没关系
Q:没关系的,看到你也才大二嘛,一般都是大三大四才会去刷算法题,没事我们这个只是走个过场并不是很重要,我们实际开发中也有遗忘很多这种基础的算法题的
A:嗯嗯实在抱歉,我好久没刷算法题了好多东西都忘了
Q:没事,那我们来看看项目吧,你是说有自己的项目也有清华那边的项目是吗?
A:是的,我有一个独立游戏项目正在早期开发阶段,清华那边我主要是做游戏开发,他们那边主要是跟心理学有些关系的游戏项目
Q:心理学?能详细说说吗,以及你具体开发的内容有哪些?
A:他们主要是比较强调对社会的贡献,他们不是说独立开发出来一个游戏然后发steam这种的,他们是比较强调通过游戏来真正对社会做出些什么贡献,目前主要是覆盖k11(这里口误了,应该是k12,指的小学+初中+高中)和幼儿园甚至学前这种的,主要还是把心理学方面的一些量表放到游戏中,通过游戏来采集数据然后形成报告给家长,从而实现心理干预
Q:也就是说是玩游戏来测心理是吗?具体呈现形式是什么样的?
A:是的,他们是跟共青团和地方这种有合作,他们现在想的是把游戏集成到可能他们自己的一个app中,然后因为可能一些心理有问题的小孩会不愿意参加一些心理测量,所以也是用这种玩游戏的方式来看他们的心理状态
Q:那你在里面具体开发了哪些呢?
A:我目前主要是开发一个比较简单的面向学前小朋友的游戏,是用虚幻五开发的,其实就是让小孩通过玩一个很简易的小游戏来测试基本的智力发育水平是否正常
Q:你为什么想学虚幻五而不是unity?unity不是会更好学更简单一些吗?
A:其实最主要的原因还是我比较喜欢玩游戏,我最喜欢的游戏是赛博朋克2077(面试官露出恍然大悟的神情),他们会比较强调大型开放世界嘛,所以就比较想学虚幻五,虽然我现在自己开发的游戏只是一个卡牌游戏,但其实也并不局限于这一个游戏,我以后也可能会开发相关的游戏,所以刚好也想借着目前的这个卡牌游戏来上手虚幻五,这样如果以后要开发别的也会快一些,而且虚幻五本身也很强大嘛
Q:你了解unity吗?有unity的使用经验吗?
A:不了解,完全没有使用过unity
Q:如果让你转unity,你愿意转吗?因为你面的这个项目其实我们就是用unity做的,虽然目前大厂的趋势其实都是用UE
A:如果有机会的话肯定愿意
Q:你对于虚幻五的使用脚本开发方面有了解吗,比如lua、ts这些?
A:完全没有了解过
Q:你目前开发中,蓝图和C++哪个用的更多一些,还是说都有在用?
A:都有在用,蓝图我主要是用来实现一些比较简单的逻辑,稍微复杂一些的逻辑就用C++
Q:我们来聊聊你的这个月华项目吧,肉鸽卡牌项目
A:嗯嗯,我目前是把它分成联机版和单机版,单机版主要是用虚幻五开发,联机版主要是用全栈的一些东西开发
Q:联机版是你自己在独立开发是吗?
A;是的,因为我目前是在后端实习,所以之前是想着自己学一些全栈的东西就做了这个项目
Q:那你是如何实现状态同步的?
A:嗯因为我后端是用go的gin框架开发的嘛,所以用的其实就是基于go的websocket,怎么说呢,嗯,其实现在就是有点像是状态同步吧,因为帧同步性能方面好像有些问题
Q:你提到了帧同步和状态同步,可以详细说说你为什么不用帧同步吗?
A:(这里我答得很混乱,记不太清了,好像扯到了性能又扯到了什么不想让服务器压力太大,但反正是把帧同步和状态同步搞反了应该,啊啊啊啊啊)
Q:你在实际开发中有遇到过什么性能问题吗?
A:嗯目前还没有
后面面试官感觉就没什么兴致继续了,我也有点记不清是否还有其他问题,应该就这些,下面是反问环节的
Q:嗯我的问题大概就问到这里,这边没有什么问题了,你有什么问题吗?
A:想问一下项目组目前的业务?(我大概问的是这个意思)
Q:我们项目组目前是有两个方向,噢不三个方向,一个是目前现有moba游戏的维护,一个是一个新项目的开发,这个项目(我有点忘了,只记得好像是说跟金铲铲有点像),另一个就是跟ai辅助开发有关的,噢这里可以再问一下你就是你平时用ai用的多吗?
A:噢噢我平时用ai辅助开发还挺多的其实,嗯像我日常开发其实都会有用到
Q:嗯是的,所以就是看你如果能进来的话到时候可以看看要选哪个方向
A:项目组的项目目前是移动端还是pc端的呢?
Q:都是移动端的,就是手机游戏
A:为什么一开始会选择unity而不是UE呢?
Q:因为当时的认知就是UE是用来做fps和开放世界的,unity用来做一些即时要求没有那么高的游戏,因为我们做的是moba所以就用unity了(我不太记得他具体的回答了,只是感觉好像不太印象深刻)
A:那像用unity的话,项目组是只是用引擎比较多,还是说也会用其他的一些工具呢,比如说像虚幻五有自己的网络联机库,如果游戏发steam的话要用steam的SDK,或者是其他的一些插件等等(感觉可能我一说插件面试官就以为只有插件了,虽然我问的时候也有点神志不清)
Q:有的,我们有很多内部工具巴拉巴拉(具体我不太记得了),像王者荣耀你玩过吗(回答说以前玩过),像王者荣耀里面有一些是ai然后你可能玩的时候看不出来是人机什么的(我不太记得他的其他回答了,他这里应该是想说王者的那个绝悟人机)
反思总结
嗯感觉整体来说还是自己准备不太充分,这是我第一次面大厂,也是第一次面腾讯,面试大概也就持续了半个多小时,很不幸自己发挥得虽然不好,但也让我清醒地认识到了自己的真实水平,不再抱有幻想,准备还是以切实提升自己的技术水平为主
第一次面大厂,很紧张,不过收获不小
我是4.8上午十点多在工位收到的面试邀请,当时原本因为早起困困的瞬间就不困了,下午还请了假然后一直在复习,4.9上午十一点就面了,面完十一点半多然后我下宿舍楼买了个饭回来就发现挂了😭😭😭
主要发现的几个问题有:
-
算法知识严重遗忘,太久没刷导致连简单都没做出来,最近一直是在注重理论学习
-
计算机图形学相关知识并不扎实,本来面试就没问多少八股,好不容易问了帧同步状态同步我还把这两个答反了
-
面试的时候有些紧张了导致很多东西都忘记了,比如要多将知识点结合到自己的实际开发或者项目中去回答,或者多举例子什么的,连反问环节我都有点忘了原本我是想问哪些
其实我原本都是想把重心放回到后端开发上面了,因为我之前就觉得 all in 游戏开发的话风险有点太大了,但腾讯这个面试确实有点打乱我的计划
这次极限准备面试让我意识到自己说实话还是个半吊子,只是简历写得还行,说明已经成功能过简历这一关初筛了,那接下来其实要做的就是不断充实自己,真正提升自己的技术水平才行
我是3.27投的,当时是那周刚好听完腾讯的宣讲会,然后回来就顺便改了下简历就投了,一开始我甚至还在策划和客户端开发之间纠结过(其实现在也有点纠结),但毕竟还是想做技术岗,所以还是以后再说吧
本来面试前在光子实习的一个学长跟我说如果天美不要我的话光子可以捞我再去面一次,但他刚刚又跟我说目前技术那边要先把这批选的人面完,看够不够再看要不要捞我
也挺好,反正我是想先学一下,再去海投和面试
继续加油,后面会继续发面经(下次要想办法录音才行)