本人某985硕士,参加2020腾讯光子游戏客户端公开课,一面被刷,后被天美捞起,进行暑期游戏客户端开发实习面试,做一下总结。
一面25min 2021.01.13
1.聊项目
其他项目
游戏公开课项目
做了什么事
对除了UE4的游戏引擎的了解
网络同步的实现(局域网房间模式)
数据同步是同步关键数据还是
2.基础
C++:
vector和list的区别(原理上和应用上)
vector扩容方式
map,搜索效率
虚函数的实现(查找虚函数地址的过程)
图形学:
渲染管线
有没有学习过shader (没有)
3.聊天
何时毕业
参加公开课是机会还是兴趣 (兴趣+机会)
玩什么游戏 (王者荣耀)
如果参加王者荣耀项目组,想进行哪些工作
实习时间
评价:游戏开发接触不多,起步比较晚
4.反问:
(1)基础(C++,图形学等),项目经历哪些更重要 (面试官意见:基础)
(2)面试官提问:除了C++有没有其他的熟悉的语言,推荐学习一些其他的游戏开发的脚本语言
(3)会不会把对游戏引擎的熟悉程度作为考察标准(面试官意见:个人观点不会)
-----------------------------------------------------------------------------------
二面35min 2021.01.15
1.闲聊
2.基础
C++如何实现多态
实现虚函数时编译器的原理
虚表是什么数据结构(数组还是链表)
堆和栈的区别
什么代码可能会导致栈溢出(递归)
自己实现string类相对于自己实现point类需要特别注意的地方(拷贝构造需要清理旧内存)
数组和链表的区别
遍历数组比遍历链表来得快一些,为什么(数组内存空间连续,链表不连续,内存空间连续可以一次读取多个数据放到缓冲区之类的地方,不用多次访问)
如何把链表改造成数组一样的内存空间连续(采用内存池的方式)
哈希表解决冲突的方式
两个单位矢量叉乘和点乘的几何意义
渲染管线
点乘和叉乘在渲染管线的应用(叉乘:判断点是否在三角形内)
深度测试可能在哪个阶段
3.项目
象棋项目:
为什么做象棋
象棋中的AI算法(最大值最小值算法)
游戏公开课项目:
项目中印象比较深刻的东西
UE4入门的过程中再哪里花费了较多的时间
怎么解决的当时遇到的问题
打靶设计如何实现
图形学中表示旋转有哪些形式(数学形式)
3.反问
这是二面么
图形学是不是需要关注的重点(面试官评价:基础和功能还算不错,图形学基础需要夯实)
结果需要多久(还有两轮面试)
------------------------------------------------------------------------------------
三面25min 2021.01.21
1.自我介绍
2.项目
游戏公开课做了什么东西
UE4网络同步技术(对Actor的同步和对变量的同步)
什么时候会发生同步
介绍RPC
3.基础
在公开课之前有没有接触过游戏
为什么参加公开课
介绍光栅化
光栅化过程中常用的算法
比较常见的全局光照
实时阴影
C++申请内存可以在哪些地方(内存五大区)
共享内存(shared memory)如何申请和释放
除了C++用过其他语言么
C++模板的展开过程,编译时用到模板的过程
模板特性特化和偏特化
平时会玩哪些游戏
喜欢的游戏类型(moba类)
做moba游戏的难点(网络同步)
王者荣耀和LOL在同步方面的区别(王者帧同步,LOL状态同步)
状态同步和帧同步的区别
吃鸡和moba在技术上的区别(吃鸡在同步上的要求没有那么高)
4.聊天提问
现在几年级
学习规划
在哪里学图形学
做游戏开发需要掌握的技术(1.语言基础 2.数据结构和算法 3.图形学 4.计算机网络 5.游戏引擎)
如果顺利希望是么时候开始实习
5.反问
哪个工作室(天美j6)
主打游戏(海外游戏)
对学习规划的建议(游戏面拓宽一些,技术方面多参加比赛)
需要改进的地方(更多的实践一些)
------------------------------------------------------------------------------------
HR面 2021.02.05
随便聊聊
已OC
-----------------------------------------------------------------------------------
总结:
1.基础很重要,要融会贯通,比较常问的是C++基础和图形学
2.项目不求多,但要真正掌握手中的项目
3.要自信,本人接触游戏时间不长,但面试尤其是实习更多的考察你学过的东西,把学过的掌握好
全部评论
(14) 回帖