本人美国计算机工程本科(UIUC),目前在读硕一(南加大)。自己对之前的专业方向不大满意,是从年初开始准备游戏方面的知识和项目的。这次申请了是腾讯2021夏的游戏客户端实习,有内推。本来意向填的是上海NeXT,但之后来跟进面试的是深圳天美J3。
目前面试已经结束,接受了offer。
第一面:
虚函数表和指针
项目中的人物Statemachine(用多态实现的FSM)
项目中的设计模式
快速排序
操作系统中的转换上下文,调度器,CUDA异构编程(简历上有)
面试官没有急着进入正题,先问了我喜欢什么游戏,我说类银河恶魔城,类魂和roguelike我都很喜欢。结果面试官似乎很有兴趣的样子,围绕着聊了很多非专业的话题。大概十多分钟后才转进,让我介绍简历上的一个进行中的游戏项目(2d横版roguelike),细问了人物的StateMachine,还有Roguelike部分的升级系统。中间穿插了一些特别基础的c++和算法知识。大概是因为我简历上有操作系统和异构编程的经历,面试官也让我介绍了,但没深入追问。
总的来说一面简单的有些不可思议,应该是比较幸运的缘故。
第二面:
C++11的智能指针,自己实现shared_ptr,线程安全
Std::thread,ring buffer
在内存受限的前提下排序数据(归并),优化I/O与缓存
虚函数表与指针
C#的协程,底层实现方式,有没有在Unity背景外用过(我回答没有)
二面难度正常了一些。最后面试官还问,有没有想过从事游戏开发中的哪个方向。我回答说可能不是渲染,也不是底层引擎,而是和玩法相关的逻辑部分。自我感觉说的太笼统了。结束前聊到了Unity和Unreal的区别,被追问了Unreal和Lua的经验(我说没有)。
第三面(复试):
C++内存池,具体实现
TCP与UDP,用UDP实现TCP的重发与拥塞控制
Fps游戏中优化射线检定(这个问到我的盲区了,只能在unity背景下说了layer mask和用简单collider替换mesh collider,不过感觉面试官还算满意)
Std::thread,ring buffer,更多的多线程数据结构(我没答上来)
Ordered_map和底层实现红黑树
第三面很紧凑,面试官基本上是一个接着一个的抛问题,很多领域我都知之甚少,说的磕磕绊绊的。不过,面试官最后详细的问了毕业时间和安排,结束后网上的状态也立刻变成HR面了。
总结下来就是实习相关的面试,基础真的非常重要。网上的面经问题一定要实打实的准备好,最好能和自己的项目细节结合起来。被问了知识盲区中的问题也不要慌,按自己懂得说,说细致一些,面试官会明白你的侧重点,然后转变考察的内容的。
最后祝各位都能从容应对面试,拿下offer~
全部评论
(2) 回帖