这是在Boss上投递的,投完第二天HR就打电话进行聊一聊能否提前来实习和薪资,并且约了一面。一面主要问一些技术基础,主要是unity和数据结构与算法,这些我都有准备,牛客上也有对应的面经,所以很顺利通过一面,第二天早上十点就约了下午六点的二面。二面压力贼大,短短二十分钟压力比一面四十多分钟压力还大。主要是我准备不充分,经验不够。主要问场景题 项目细节以及为什么要这样做,有没有更好的方案。一开始会问喜欢的游戏,再去问游戏中场景的实现细节。他就问我塞尔达拼装东西去完成一个任务的这个功能大概要去怎么做?这里我直接懵逼了,一点思路都没有,而且没有去好好分析问题,讲的有点语无伦次,这里应该考察的是问题分析能力。还有就是不要把面试当聊天,想好说的话后面面试官可能会追问的细节。接着把我的三个项目都问了一遍,第一个问题(项目1):tilemap拼接的原理是什么?怎么如果想实现拼接任意水域大小应该怎么做?我还是听不懂,面试官补充说怎么通过有限的小格子拼接出各种不同的并且不会看起来不会重复的感觉,这里属于我没有好好复习项目了,tilemap用法基本忘了,我就说了通过切割图片成若干的小格子,阿巴阿巴的,我也不知道要说啥。这种不会重复的效果应该是美术人员绘制图片的事情吧,我也不懂。第二个问题(项目1):A*寻路算法的逻辑是什么?这里我提前复习过,差不多讲出来。讲完面试官沉默了一段时间,接着问下一个项目,为什么做渲染器?我就是对游戏渲染的原理比较好奇,所以学了OpenGL,既然学了OpenGL,就再去做了渲染器,在实践中去学到新的知识。接着面试官按我的这个项目简介读了一遍,就问我基于池实现的内存管理器作用是什么?这里我就开始解释,我随便说了差不多预先创建1k大小的内存,他又问我为什么是1k,这里我具体设计过程忘了,我就说随便设计的。其实一开始设计的是动态调节预分配空间的大小,每次循环都要进行数据处理,比较耗时间,所以我就自己采用固定大小的内存块。这里的回答也是扣分项之一,属于我没有去好好回顾技术细节和设计过程。接着让我讲讲blinphong基础光照包括哪些部分,这里我也看过,后面还讲了和phong氏光照的区别,感觉讲的还行。接着问了第三个项目,为什么要做这个项目,时间这么短,感觉你这个有点简单,我就说那时候准备秋招了,而且感觉项目要学的东西也学到了,所以就停止开发了。我又介绍了我最近在做什么,他就让我讲解一下我这个项目的框架。阿巴阿巴讲完,就结束了,总共才花了17分钟问我有什么问题,我想了一下,应该是要挂了,所以我就说没什么问题了。第二天下午三点多我去问了hr我挂了没,结果不出所料。hr小姐姐人很好,还安慰我。这次面试学到了很多,之后要好好复习项目细节,复习设计思路,想好哪里没做好,优化方案是什么