游戏客户端暑期实习记录贴 上岸腾讯光子

背景概要

经历两月疯狂实习学习和面试,今天终于可以告一段落。牛客的牛友们的面经帖子给了我很大帮助,因此来这里做一个自己的游戏实习记录,希望对牛友们有帮助!先贴下个人信息~

👋个人背景:bg29,研二上才决定走游戏开发,只跟着UE书本开发了两个入门demo,相当于无实习无竞赛无项目三无选手了~

☎️意向和oc:目前两个offer,一个是字节绿洲工作室,base北京,还有腾讯光子,base深圳。都是游戏客户端开发。

👨‍💻面试:基本看到的开暑期的游戏公司都投了:快手简历挂(还是笔试过了挂的简历,无语);鹰角,天美,灵犀互娱(估计是看我技术不匹配就不要)一面挂;完美世界kpi一面;游酷盛世kpi二面;网易雷火二面后无消息,不过感觉g(手撕没发挥好);网易互娱一面后没消息

📚笔试:柠檬微趣笔试挂、吉比特待定、米哈游笔试后无消息(应该g了)

📑简历:只贴了两个ue5学习demo

再贴贴两个offer的time line吧

字节绿洲 3.28 一面 4.1 二面 4.7 三面 4.10 hr面 4.15 oc

腾讯光子 4.11 一面 4.16 二面(现场宣讲会霸面) 4.21 三面 4.28 hr面 5.6 offer

经验分享

面试八股

楼主的处女面给了腾讯天美,那次真是把自己面懵了,除了八股问深了不会,还有一些完全没听过的语言技术,以及问你会不会网络编程,会不会图形学(全不会),面完感觉自己一无是处,果然秒挂。这里我个人最大的收获就是大厂的八股问会问到非常底层,楼主准备八股的时候看到都是些比较表层的问题,一旦对这个问题进行深一步追究,基本就答不上来了。所以如果你的目标是大厂,八股这方面不能只准备网上常见的哪些问题,对于它的内部底层机制你也需要进一步了解(比如问你new和delete,追问就可以追问new的底层,和malloc的区别,能不能new和free混用,placement new等等...)

项目

楼主的项目比较简单,刚开始准备得也比较简单,就停留在这个功能如何实现的层面。这方面和八股一样,其实项目就是有具体实例范围的八股,面试官在问项目的时候,也会进行技术上的深究,问你引擎某个功能你用到了,那底层是怎么实现的?如果出现了某种场景,你会怎么解决?所以项目这边和八股准备其实本质上一样的,需要你进行深度的挖掘和扩展学习,最好自己可以假装面试官对自己的简历项目进行一个拷打,列出可能扩展出的面试题,然后有针对的进行准备。

笔试

游戏岗位的笔试题偏场景一点,题目描述比较长,数据输入比较复杂,还有一些纯需要堆码量的大型模拟题,因此自己的代码的规范度、准确度其实很重要。楼主的解题步骤是这样的,首先读完题先想想大致的思路,没有很巧妙的解法就试试暴力模拟,能拿多少是多少,但如果你觉得这个题暴力就算过了也不好拿分,而且代码需要写巨长,可以直接先跳过这题后面再看有没有机会解决,不要让一道题直接把你后面可以有机会解决的题卡住。写代码的时候最好先在脑海里构思出大致的板块和流程,要是某个板块你还没有思绪,说明你这道题就算写了也会在那里卡住,目前做不出来,这时候就先别动手,只有在脑海中走通整个流程,你知道整体的解决方案之后再动手去做一个实现,这样才是最大程度的节省时间。

手撕

手撕题目较于笔试题难度低了一个档次,一般都是lc上的热门的中等或简单题。如果你还没有刷题的习惯,建议每天给自己一个刷题目标,战线长的话每天不用太多,楼主是研一开始保持刷题习惯,每天也只刷两道题,但是每道题你在完成后建议也是参考答案的多种解法,然后和自己的进行对比,分析利弊来进行学习,充分吸收每道题可以带给你的思想上的进步。这个其实没有什么好多说的,一定要多敲多想,只敲不想那你的学习和进步效率就太低,只想不敲你到时候敲起来不是慢就是处处报错,所以把它作为一个习惯进行培养才是最好的方式。另外需要注意,有的公司面试手撕可能就算让你在一个ide里从零开始实现,和lc的核心代码模式不一样,所以一些简单的输入处理、数据结构创建都是需要自己再准备一下的,包括链表和二叉树的输入和创建等等。(楼主就是有一次面试写一道二叉树路径和的题,但是太久没有自己创建二叉树了,导致这里卡了很久,在面试官指引下才勉勉强强建好,后面写路径和处理逻辑的时候因为前面建树没表现好就很紧张,没了思绪,最后还是面试官降低了要求才写好)经典的一些算法例如快排、归并、堆排序,还有设计模式的单例、二叉树遍历等等都可以尝试自己敲一遍加深印象,这样在面试遇到的时候会很爽的。

心得体会

虽然都说找实习生主要看重的是学习能力,但楼主经历这两个月的找实习历程中实在是体会到有经验有项目的优势,因为有些问题实在是只有在大项目中或者底层技术里面才会遇到,楼主这种无实习无项目的连去思考解决这个问题的机会都没有,因为你连问题都碰不到。因此还是建议咱们做技术的有机会能多实习就多实习,能多掌握一些技能就多掌握,比如图形学、游戏引擎,哪怕你只是为了过面试去学,但是这在面试管看来也是展现了你的上进,学习态度,在众多求职者中,我们能让自己脱颖而出的方法也只有展现自己的更强技术和丰富的经历了。

结语

这两个月中也有情绪低谷、自我怀疑和后悔的阶段,但是并不能让它们影响自己的投递进度,建议大家还是多投多面,失败了也没有损失,还可以给自己加经验,另外对于自己的技能提升建议做好规划,每日目标等等,这样自己只会越来越强,众多投递的公司中有一个offer就算成功,因此不要害怕被挂,以一个平常心去学习和面试,总会有机会到来的~ 最后祝愿牛友们都有心仪的offer~~

#腾讯光子面经##游戏客户端##软件开发投递记录##我的OC时间线#
全部评论
马上hr面,好慌。hr都问了点啥啊
1 回复 分享
发布于 05-07 16:50 上海
校友接好运
1 回复 分享
发布于 05-06 21:54 广东
问一下大佬看的ue书是哪本
点赞 回复 分享
发布于 07-20 23:12 浙江
佬请问三面一般是问啥
点赞 回复 分享
发布于 05-25 12:22 四川
校友是什么研究方向呀?我现在是成电研一的,将来很想走游戏客户端的方向,但是完全属于非科班了
点赞 回复 分享
发布于 05-14 10:06 四川
佬,c++八股的资料都是在哪里找的啊
点赞 回复 分享
发布于 05-13 23:10 四川
研一,跨专业零实习零项目,准备了两个多月项目,算法八股。感觉准备不充分一直没有勇气投。现在是不是暑期实习已经没希望了
点赞 回复 分享
发布于 05-08 23:30 广东

相关推荐

搞不动了,没心思刷算法题了。分享一下今天的面经。重点是数据结构和算法,和一点点UI和c#Q:C#中哪些数据结构是连续的,哪些是不连续的?A:数组,List,dictionary,ArrayList,队列,栈,优先级队列,hashset是连续的,LinkedList是不连续的。Q:Dictionary的这个哈希表是不连续,你知道它的这个哈希算法是什么吗?A:不知道,就回答类似取余的操作。Q:什么是哈希冲突?可以用拉链法来解决哈希冲突,还有什么其他的解决方法吗?A:不知道Q:那如果拉链法来解决哈希冲突,那么去实现这个key的查找的过程是怎么实现的。A:这里答半天没答到点子上。后来面试官提醒说直接key就能找到在拉链上的元素。Q:用一个数组来实现一个可扩容的栈。首先需要对外提供什么借口呢?A:入栈,出栈,返回栈顶元素。Q:在这个各个的方法里面具体需要做哪些元素。A:定一个一个数组大小后,就直接用一个索引指针这个栈顶元素,然后入栈就不断的将这个指针往后面移动。如果大小超过的话就触发一个扩容的接口。Q:二叉树里面有一些特殊的二叉树。知道它的特性吗?A:这个靠印象回答好像是只能缺一个最右下角的节点。活着全部都是不缺的。Q:定义一个二叉树的根节点的高度为0,现在一个高度为h的满二叉树。总共的节点数是多少?A:说就类似一个等比数列求和。忘了求和咋算。面试官告诉我2^(h + 1) - 1;Q:完全二叉树了解吗?A:说左右子树的高度差不可以大于1。Q:但是这样的数不一定是完全二叉树A:不知道。Q:二叉树,怎么实现一个层序遍历?A:回答说通过一个队列记录每一层的元素,依次入队出队。Q:是用递归实现的吗?那这个递归实现的结束条件是什么?A:不太确定,说这个深度等于这个树的高度。好像不是递归实现的,不太记得。Q:如果实现深度优先遍历?A:不断递归,终止条件是这个节点是空就returnQ:如果用非递归的方式怎么实现深度优先遍历?A:不知道。Q:抽象类和接口的区别。A:抽象类不可实例化,接口也不能够实例化。抽象类是单继承,接口可以继承多个接口。抽象类中的抽象方法必须用abstract来修饰,但是接口里面的方法本身就是抽象的,必须被实现。不需要修饰。Q:C#垃圾回收机制了解吗?A:说分代回收,说了三代回收的一个机制。Q:这个回收的具体过程呢,怎么去判断哪些对象可以会回收掉?A:有印象,回答说就是不断去标记一些对象。Q:GC是分代了,但是最关键的是得先回收掉才能分代,最关键的是它怎么清除这一步,后面才是整理。A:没理解要问的是清除的过程还是分代的过程,但我这一块都还不清楚。Q:UI上都用哪些组件?A:这个会。Q:Canvas下有一个属性叫渲染模式 Render Mode,有几种A:屏幕空间覆盖,屏幕空间摄像机,世界空间Q:在Canvas里面有一个分辨率组件,这个是干什么的?A:UIScalerMode,可以控制UI元素在不同分辨率下的缩放逻辑。Q:ScrollView这个组件的使用,用什么组件可以实现列表里物品的排序,A:好像是一个Layout的组件,这个好久没做了,现在没想起来叫什么。很多地方都在想,吱吱唔唔没答出来,后面反问面试官对我的建议,说数据结构是基础,不管找啥工作都需要学好,可以加强一下。后续:应该是无了。
查看21道真题和解析
点赞 评论 收藏
分享
07-14 17:04
已编辑
门头沟学院 C++
先说结论:目前不建议入行。除非你真的参与过工业界游戏开发管线,并且仍觉得自己非常合适,否则不建议任何人凭着对游戏的热爱和满腔热血杀进这个行业,起码现在不建议。给大家讲讲目前业界的状况:去年我自己和几位朋友加一起经历了6个项目,目前的情况是:一个上线但苟活,一个上线但缩编,一个正常在研,一个重做,两个砍掉。情况没有两三年前那么严峻(那时候5个项目砍4个),但也远远谈不上什么前途。十年前游戏行业最大的困境在于人才缺乏,五年前最大的困境在于版号稀缺,现在最大的困境在于缺少方向。以前是没有资源做,现在是不知道做什么。援引某高管的观点:过去十年,手游发展的动力,来自于将主机pc平台的佳作搬上手机,而现在这种动能已经十分微弱。(下面开始是个人观点)由于缺乏确定的方向和可预见的回报,现在业界的打法仍然十分保守,以防御为主,扩张和立项都十分谨慎,hc极其有限。另一方面,近年来得益于games系列等优秀课程的出现,以及ue5的发布,游戏界确确实实多了很多人才。尽管靠谱的ue程序依然难招,但也不至于跟以前一样会点cpp就要。以上因素综合导致了新人入行竞争加剧的现象。至于单机市场,尽管近年来国内涌现出一批以黑猴为代表的优秀作品,但国单市场盘子很小,roi很低。虽然玩家群体目前充满乐对国单市场的期望,但资方大多仍保持克制谨慎的现象,大厂项目很少,且人员要求比较高。手游尚且可以容忍粗制滥造,愿给新人一些成长的机会,单机基本立项之初就是冲着高品质去的,再加上项目组面对资方预期回报数据的巨大压力,更倾向于把有限的hc用在高熟练高产出的业内老兵身上。除开大厂,独立游戏工作室倒是愿意给新人机会,不过大多数独游工作室都不太稳定(虽说大厂也没好到哪去,但你可以活水不是),而且技术栈比较浅,人员质量参差不齐,出了问题都不知道问谁(我组有句俗语:我要去引擎组搬救兵了),从成长的角度来说不建议职业初期就去做独游。OK,以上是大环境部分,下面我们讲一讲个人部分。先声明:本人是做客户端的,如果你想了解服务器的知识,可以直接翻到最下面先说引擎吧,unity从数量上看仍然是绝对主力,但ue的反攻势不可挡,现在有点实力的厂都在纷纷开设ue项目,so如果你是大一大二的同学,建议学好cpp,以ue为主力引擎。如果你无法学会cpp,建议离开游戏行业,因为语言关只是第一关,游戏的技术栈深度太恐怖了,cpp无法学明白的话,就算换unity估计也只能在ui仔的岗位上空蹉跎几年。再说说学历,鄙人近年来没亲眼见过公司里新进过非985 211的正编,但听说过有这样的人,不过主要集中在非技术岗,so我不是很了解。实际上211都很少,985本硕是主力,海外名校有很多。不过你能掌握好cpp的话,学历估计也能到这个标准吧,so个人并不觉得学历会卡人再说说方向。客户端的方向主要分渲染,物理,动画,ai,gameplay五大方向。渲染是负责绘制游戏画面的,主要分图程和ta,图程偏向于挖掘更多性能,ta偏向于做出更好的视觉效果,技术上前者更深,后者要懂美术。不过图形学最大的问题其实在于严重的人才过剩。顶刊顶会的top2佬也捞不到渲染的工作做,只能天天写lua搓ui,一个项目组往往有一两个人图程就够了。至于其他人,猛学了两年图形学,到头来也只能证明你很聪明,仅此而已。物理主要是修bug和搞性能。学物理的没有学渲染的那么多,但用物理的项目就更少了。绝大多数游戏只要用引擎提供的基本功能就好了,不会需要用到什么复杂的软体,绳索模拟等。就算真要,一般也只会寻求视觉欺诈的解决方案,找不到就砍需求,而不是找个物理程序去给你改底层物理引擎。实际上物理程序一般不是做物理需求,而是处理因为组内同事搞不来物理引擎导致的物理bug。另一方面,游戏物理会教你怎么做高性能计算,因此物理出身的程序往往在做性能优化,场景管理,加载管理等看起来跟物理没关系的事。动画顾名思义,研究角色动画的。底层要改的很少,工作中更多的是用动画编辑器,配合美术干纯体力活。ue那动画蓝图你就连去吧,一连一个不吱声。动画的技术比较古老且少,绝大部分游戏用的还是传统状态机,少部分会用状态树,motion match(手游用不上,因为太吃性能了)等技术。算是这5个方向里水最浅的一个。ai现在分两种,一种是做传统游戏ai,一种是通过ai辅助游戏生产。前者目前比较新的实用技术是通过机器学习给ai下行动指令,多见于对抗性较强的竞技游戏(我做过,我的评价是版本管理学的灾难,pm的噩梦)。后者业内还在研究,目前处于一个各家都说自己做的ai好使,但大家看了还是更愿意发挥工匠精神,手工研制游戏的阶段gameplay是搞玩法的。以上4个方向都可以说是纯技术,但决定游戏做成啥样的还得是做gameplay的(其实是策划,gameplay只是负责伺候策划的)。这很杂,水很深。市面上主要是3c和战斗系统比较缺人。吃经验,吃在某一游戏类型上的钻研程度。网络同步也是gameplay在做当然还有做工具的,做打包构建的,做ui的等,不一一列举,但你确定你入行就是为了做这个吗关于方向的选择,我的答案是新人没有选择,全都要学,不求学得多深,只求学个皮毛,看看这个领域主要在干嘛,以及自己适不适合。全入门之后再决定自己要研究什么也不迟不过目前市场上比较缺乏的,主要是做网络的,做战斗的,做动画的,做3c的,做性能的(刚入行搞不了这个),可见都集中在gameplay方向。这是因为其他方向引擎已经把工具做的很好了,项目组只要做gameplay的把这些工具拿来拼一拼就能拼出个游戏了再说说语言,目前手游界主要是cpp/cs+lua的组合。lua总归是要学的,这语言挺简单的,语法学完再看看虚拟机原理,关键源码(lua虚拟机是用c写的,而且开源)读一读,基本都能熟练掌握。网上学习资料也有很多关于项目,其实只要不是ui点点点,走路模拟器,跑跑跳跳吃金币这种,都行。关键要有技术闪光点。打个比方,都是跑跑跳跳吃金币,有的人只会给金币加个碰撞体,做个输入绑定,播个动画就完事,这种属于培训班2天速成的。有的人能做循环地图,随机路径金币生成,角色动画没有滑步跳变,位移方式和角色姿态多样,这种就是有技术闪光点的关于面试,面试看的所谓技术,是你对引擎工具的了解程度,毕竟刚入行的做游戏就是拿工具拼好游嘛。但是能拼好游的多了去了,培训班速成的一大堆,so只能看你知不知道工具上各个螺丝钉是干啥的,或者看你能不能把工具抡得虎虎生风举个栗子:面试官问你怎么做枪械开火的命中检测。你说我不知道,下个公司见。你说射线检测,或者给子弹加个碰撞体,下等马。你说考虑到对远距离目标的弹道下坠问题,需要分段射线检测,中等马。你说对低速子弹,比如手雷,箭矢,给子弹加碰撞体,同时考虑到隧穿问题,风速问题等,上里马。你说我还知道射线/碰撞检测的原理,我还知道如何处理网络延迟,千里马。最后聊聊服务器,ue项目的服务器主要是在做非战斗的,系统侧的业务。比如什么改改勋章啊,发发成就啊,送送奖励啊这种。战斗的部分是由客户端做的(因为ds和客户端代码是一体的)。有项目(这种一般是陈年老项目,或是有大佬为了晋级想重复造轮子)不用ds的,会让服务器参与到战斗里去,这种比较少。unity项目的服务器在干什么我不懂。原本是想写点毕业一年的总结,结果临时起意突发奇想地想给没入行的朋友们写点感受。行文不成体系,多有碎碎念。错字先发后改。看到这里的同学,如果能帮到你就最好啦
程序员小白条:[赞干货,就是文章可以搞些排版和格式[赞]
点赞 评论 收藏
分享
07-02 07:23
上海大学 C++
截止目前一共笔试面试10几家了,后面一直心态上有点摆烂,也在games101,games104补充知识,做个OpenGL的shader不是很顺利。掌趣科技,比较早的笔试,发现做的也不是很好,选择题有数据库等等,简答题有场景设计,编程题也挺难的,两道只a了一道。没报太大希望后面直到半个月了才发面试炎魂网络。有选择有场景题,甚至让你简答写职业规划的,编程题1.93/3,两道原题正好逮住了西山居seed面试,没想到都多久了现在才有,自我介绍,问的c++常见八股,实习,项目,最难忘的事情,技术栈,答得自我感觉还行,但是后面问网络编程,linux c++,多线程多并发编程,这我完全不会只能实话实说,三天后感谢信万游网络,笔试竟然是发邮件,限时回复,不是太难。面试讲那两道题,改进,幸好我忙半天还是手撕出来了,然后问基础知识并不涉及虚幻引擎。粒界上海。直接面试主要是做自研引擎的,面试官听完我介绍后详细问了项目和实习,然后问c加加,渲染管线,感觉他还蛮懂的。二面两个面试官,基础数据结构和c加加,场景题。面试体验很好。腾娱互动,成都。也是直接面试,面试官很好,问的相当深。还现场给我讲了讲。包括虚幻引擎,ue与c加加,图形学。应该是体验最好的一次面试了吧。可惜实力理解还是差一点可能没戏。面试官在反问环节告诉我说要坚持ue,因为ue的求职者远少于unity疯狂游戏,也是期望比较大的一家,笔试我记得应该是全a吧,最后是理解题主观题。然后面试有点失望,上来拷打基础的几何知识,向量等。然后拷打项目和实习。也有图形学。反问就是对于求职者怎么做到入门。好未来。笔试,挺简单的。等流程。现在就觉得要么一条路走到黑得了,就不换方向。注重项目理解,一定要搞懂项目的每一个知识不能只实现,ue的路还很长。要不再做个短平快的项目吧,最好把uec加加都用上才行。然后关于八股的话一定要背,包括ue的八股,图形学等,还有a🌟算法,ik等大致讲讲。图形学几乎只问了你了解过吗,然后如果了解过就问渲染管线,除此之外有摩尔纹是怎么产生和解决的,和讲讲顶点着色器和片段着色器。此外项目一定要熟悉,而且从使用到的东西的原理上理解。不过每一次面试都是一次训练的机会,一定会越变越强的。其他还有心动和游卡一直在简历初筛,永航科技好像考虑我不在北京
游戏求职进展汇总
点赞 评论 收藏
分享
评论
30
54
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务