莉莉丝UE5客户端开发暑期实习面经

聊嗨了面了70min
C++:
问:int* 指针大小是多少
答:取决于系统位数

问:类型转换了解过吗
答:C风格转换,static_cast,const_cast,dynamic_cast,reinterpret_cast

问:虚函数是如何实现多态的
答:虚表,虚表指针执行过程

问:栈,堆规则
答:栈由系统管理,函数地址,局部变量,栈帧,RAII等,堆由用户管理,malloc,free,new[],delete[]等。

问:内存对齐原因和原理
答:避免过小变量占据多个块,编译器系统对齐数等

问:快排和插入排序了解吗
答:快排和插入排序的流程,影响快排退化的因素,解决方法等

计算机网络:
问:TCP和UDP的区别,各自运用在什么地方?
答:TCP面向连接,通过三次握手,四次挥手建立连接,并有拥塞控制,流量控制,超时重传等机制确保连接安全。一般用于对操作精确性高的游戏,如RTS等。UDP不需要连接,允许丢包等。一般用于时延较为敏感的游戏。

UE5:
问:UE5使用的是UDP还是TCP知道吗?
答:是UDP吧,UE5提供的是状态同步的网络模型。

问:UE5如果要确保一个复制必须到达,会有什么机制?
答:具体底层不清楚,可以参考TCP要求接收端接受后发送ack,没有收到ack则触发超时重传。
解答:思路是类似的,但是是更应用层的东西。

问:你也说到了UE5有一些本地预测,什么操作最好用本地预测,什么操作不用?
答:对时延较为敏感的操作使用本地预测,如翻滚,攻击等,否则会不跟手。像一些购买物品,需要权威验证且对延迟不敏感的操作则只在服务器上执行。

问:向量的叉积和点积知道吧,在游戏中有什么作用?
答:点积可以用于计算夹角,叉积可以判断左右,比如锁定目标的时候就可以组合两者实现目标切换。

问:一个点在一个面上,已知它的坐标和面的法线,如何计算另一个空间中的点在面上的投影位置?
答:扯了半天说不出来,本来是很简单的事情,但是脑子一直在短路。最后面试官一步一步带我推了推。

问:UE5的GameplayCue有接触过吗?On Active和While Active有什么区别?
答:OnActive只会触发一次,用在static类型,WhileActive可以多次使用,用在Actor类型。
解答:所有cue都有这两种函数,和类型无关,WhileActive一般用在一些持续性效果上。比如断线重连的时候,裁剪恢复的时候,whileactive就会重新触发,而onactive不会。举个例子,一个燃烧弹爆炸后灼烧,你掉线回来应该看到灼烧效果,但你不会希望再看到一次爆炸,因此爆炸是OnActive,灼烧是WhileActive。

项目:
问:说说你的项目,你的项目使用到了GAS,说说你的一个GA从头到尾的执行流程。
答:blabla大概就是一堆tag和component的通信和流程。

手撕:
前面你说的太多了,没时间手撕了,这次就算了。

反问:
问:具体项目是什么呢?
答:UE5射击。

问:请问您对我有何印象呢?
答:还可以,有实践经验是很不错的。

问:我还未进入行业,想知道行业对Vibe Coding的看法和使用情况。
答:全都在用,而且用的非常多。对于新人来说,这是必学。
随后和面试官聊AI聊了半天。

问:没手撕会不会有啥影响,前面笔试我就因为IO的问题超时了....
答:没啥事

作为为数不多给鼠鼠发面的公司,面试体验真的很好。面试官水平很高,那个投影的简单问题我能卡半天他也没什么不耐烦。说到AI的话题的时候真的分享了很多,总而言之收获很大。希望能进下一面

4.20更新:
二面已挂
问了一些计组的知识和一道场景题,思考的都很迟钝,需要被面试官带着走,不出意外地寄了
全部评论

相关推荐

03-30 20:14
东南大学 C++
一、项目 / 求职方向1.先介绍一下自己。2.你觉得这段实习经历,你的成长有哪些方面?3.你为什么考虑投后台开发这个岗?4.你能大概介绍一下你了解的后台开发相关内容吗?5.结合你之前的实习项目,你接触到的后端相关内容有哪些?6.你端上的 SQL 用的是什么数据库?7.设备特征缓存优化这一块,也是端上做的吗?8.除了这段实习,你还有哪些后端相关经验?9.你对后端开发是怎么理解的?二、高并发 / 网络编程 / epoll / 协程10.高并发你怎么理解?11.评估高并发有什么指标吗?12.你怎么判断一个系统是不是到了高并发场景?13.你怎么判断系统已经到瓶颈了?14.高并发场景下,一般什么资源会先被打满?15.如果不考虑外部 IO,只看服务器内部处理,怎么判断它已经满了?16.纯高并发网络框架场景下,一般是 CPU 先满还是内存先满?为什么?17.你写过 epoll,也了解过 Go 的协程,你觉得它们在设计思路上有什么区别?18.你觉得 epoll 和协程哪个更好?为什么?19.如果 epoll 已经很好了,为什么后来还会出现协程这种设计?三、基础算法 / 排序20.排序算法介绍一下。21.堆排序适合解决什么样的问题?22.堆里取最大值或最小值的复杂度是多少?23.快速排序的时间复杂度是多少?24.快速排序最坏情况是什么复杂度?25.什么情况下快速排序会退化到最坏情况?26.有什么优化措施可以减少快速排序退化的情况?四、操作系统27.进程和线程有什么区别?28.进程和线程切换,哪个更快?为什么?29.进程切换主要慢在哪里?30.进程的寻址空间大概有多大?31.32 位系统和 64 位系统的寻址空间一样吗?32.你怎么理解线性地址、逻辑地址和物理地址?五、数据库33.MySQL 的索引数据结构有哪些?34.为什么 MySQL 索引常用 B+ 树,而不是红黑树?35.索引为什么要考虑磁盘存储特性?六、网络 / HTTPS36.HTTP 和 HTTPS 有什么区别?37.HTTPS 是怎么解决信任源问题的?38.如果证书不是权威机构签发的,会有什么问题?39.浏览器为什么能识别哪些证书机构是可信的?七、AI / Agent / 大模型基础40.你比较擅长哪些技术方向?41.Agent 的设计模式有哪些?42.ReAct 是一种什么思想?为什么会有这种模式?43.为什么模型会出错或者产生幻觉?44.如果模型缺少信息,它直接回答“缺少信息”就可以了,为什么还要继续设计 ReAct 这类模式?45.现在这些主流大模型,用的是解码器还是编码器?46.GPT 和 BERT 的区别你知道吗?47.既然你对 AI 开发感兴趣,那你怎么理解模型的能力边界?八、编程题48.有 N 个人围成一圈,从第 S 个人开始报数,报到 M 的人出列,然后从下一个人继续,直到最后剩下一个人,输出一下出列顺序。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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