2025暑期实习游戏开发/Unity开发/VR开发面经总结

面试公司: 腾讯、字节跳动、阿里淘天、阿里高德、网易雷火、快手、小腾汽车

投递岗位: 游戏客户端开发(腾讯、字节跳动、网易雷火、快手);VR/Unity开发(阿里淘天、小腾汽车);图形学算法(阿里高德)

说明: 面经按照问题类别分类,不按公司分类。有些问题可能引自我的个人项目,会标明。

C++:

  1. 虚函数/虚继承
    • C++虚函数机制?
    • 虚表指针存放在哪儿?存放在实例化对象内什么位置?为什么要存放在这个位置?
    • C++虚继承机制?虚继承用于解决什么问题?
    • 构造函数可以是虚函数吗?
    • 析构函数可以是虚函数吗?
    • 析构函数非虚会有什么问题?
  2. 智能指针:
    • 介绍C11的新智能指针
    • shared_ptr循环引用怎么解决?
    • 看过shared_ptr源码吗,shared_ptr的底层机制介绍一下?
    • shared_ptr是否是线程安全的?为什么?
    • 如何自己实现一个shared_ptr?
  3. 内存对齐:
    • C++内存对齐规则(一般会给例子计算一个struct或class的大小)
    • 为什么要内存对齐?
    • 强制不内存对齐场景?如何强制不内存对齐?
    • class增加函数是否影响class的大小?为什么?
    • Enum和Union
  4. 内存管理
    • C++内存管理机制?
    • new的对象放在内存什么分区?
    • 如何强制new的对象在栈中?
    • C++内存泄漏?如何检测内存泄漏?
    • 如何避免内存泄漏?
    • C++野指针?如何检测野指针?
    • 栈溢出?什么情况下会栈溢出?
  5. STL
    • vector和list的差距?哪些场景是否vector?哪些场景适合list?
    • push_back和emplace_back的差距?
    • map和unordered_map的差别?
    • vector是否线程安全?
    • 什么情况下STL迭代器会失效?
  6. 杂项
    • static关键字用法
    • const关键字用法
    • C++编译过程?链接主要做了哪些工作?
    • 什么是指针?什么是引用?指针和引用区别?
    • 左值和右值?左值引用和右值引用?
    • move函数?运用场景和作用是什么?
    • 浅拷贝与深拷贝?怎么实现浅拷贝?
    • C++有哪些锁?有什么应用场景?
    • C11有哪些新特性?

三维引擎:

  1. Unity各个文件夹干什么用的?
  2. Monobehavior生命周期
  3. Unity物体的数据存储在哪里?
  4. .NET垃圾回收机制?
  5. Godot和Unity有什么不同?(项目相关)
  6. Godot有什么独特之处?你为什么选择Godot做开发?(项目相关)

计算机基础:

  1. TCP&UDP相关
    • TCP和UDP是什么?两者区别?
    • 详细说说TCP三次握手?三次握手每次握手丢包会怎么样?
    • TCP保证可靠通信的方法?
    • 如何设计使得UDP实现可靠通信?
  2. HTTP协议不同版本之间的差距?
  3. Socket通信底层用TCP还是UDP?Socket通信有什么好处?
  4. 进程、线程、协程的定义、区别及应用场景。
  5. 并发和并行有什么区别?
  6. 什么是虚拟内存,有什么好处?
  7. 32位系统最大虚拟内存?64位系统最大虚拟内存?windows操作系统支持的最大虚拟内存?
  8. 介绍常见设计模式?
  9. 堆排序?
  10. 快速排序什么情况达到最差?最差时间复杂度?
  11. 稳定排序算法的定义?有哪些经典排序算法是稳定?
  12. 常见寻路算法?A* 算法?
  13. 红黑树?
  14. 哈希散列表,散列表需要注意哪些问题?

计算机图形学:

  1. 渲染管线相关:
    • 基本渲染管线?
    • 视锥剔除在渲染管线的哪个阶段?
    • 光栅化具体做什么的?
    • 透明物体渲染?
    • 顶点坐标包括哪些数据?
    • 知道顶点着色器和片元着色器吗?它们的作用都是什么?
  2. 正交投影和透视投影?如何实现近大远小?
  3. 知道四元数吗,它相比旋转矩阵和欧拉角有什么优势?
  4. 如何保证物体的平滑旋转?
  5. 我有一个正方形纹理,我想要把他变成圆形的,怎么办?
  6. 什么是DrawCall,为什么要减少DrawCall?
  7. MVP矩阵及其具体含义作用?
  8. 什么是mipmap?mipmap的作用是什么?如何确定mipmap的层级?
  9. 纹理映射方法有哪些?各向异性采样的应用场景?
  10. 介绍一下骨骼动画?(项目相关)
  11. GI是什么?Godot引擎有什么实现GI的方式(项目相关)
  12. 怎么实现水面波动效果?(项目相关)
  13. 怎么实现AO效果?动态AO效果怎么实现?(项目相关)

场景题:

  1. 设计一个排行榜,排行榜可能包括不同维度(网易雷火)
  2. 有一个天平,你可以自由设计砝码的重量,如何使用尽可能少的砝码数量称出所有重量?如何证明你的设计的正确性?(网易雷火)
  3. 给一个二维数组,1表示陆地,0表示海洋,二维数组保证只有两块连续的陆地,现在想要在两块陆地之间建一座桥如何确定桥的最短值?(网易雷火)
  4. 看代码纠错,具体代码已忘记,类似传输文件流解决对齐问题(腾讯)
  5. 给海量数据,如何获得其中最大的1000个(腾讯)
  6. 有一个计时器列表,如何设计能最快找到最先会被触发的计时器(腾讯)
  7. 如何设计能够使vector的中间删除效率变高(腾讯)
  8. 有一串字符串怎么找到第一个重复的字符(腾讯)
  9. 调用new和delete时自动加计数和减计数(类似shared_ptr),如何实现?(腾讯)

手撕:

  1. 实现LRU(腾讯、字节跳动、小腾汽车 Leetcode-146)
  2. 判断一棵树是否为平衡二叉树(腾讯 Leetcode-110)
  3. 获取链表的中间结点(腾讯 Leetcode-876)
  4. 反转字符串中的单词(字节跳动 Leetcode-151)
  5. 最小路径和(快手 Leetcode-64)
  6. 设计实现一个单例模式(腾讯)
  7. 判断一个点是否在三角形内(高德地图)
  8. 你有两种攻击方式:群攻和单攻,且单攻的攻击力一定比群攻高,已知两只怪物的血量,求最优的攻击方式使得攻击次数最小,要求递归与非递归两种实现方式(网易雷火)
#面经##游戏客户端开发工程师##腾讯##字节##网易雷火#
全部评论
我就说吧,这面试题挺正常的,我面的一个小厂,c++给我问不自信了,问一个点一直深挖,检测内存泄露的原理,main函数有几个参数,还说远古时期有三个参数,我怎么知道远古时期
1 回复 分享
发布于 05-15 15:30 河南
mark一下大佬
点赞 回复 分享
发布于 05-20 15:50 天津
mark一下大佬
点赞 回复 分享
发布于 05-20 10:58 山东
mark一下大佬
点赞 回复 分享
发布于 05-14 10:19 天津
mark一下大佬
点赞 回复 分享
发布于 04-30 10:45 山西
mark一下大佬
点赞 回复 分享
发布于 04-28 18:04 山东
mark一下大佬
点赞 回复 分享
发布于 04-26 11:55 广东
mark一下大佬
点赞 回复 分享
发布于 04-25 16:03 北京
mark一下大佬
点赞 回复 分享
发布于 04-24 12:27 广东
mark一下大佬
点赞 回复 分享
发布于 04-22 15:18 江西
雷火我也被问了这道题
点赞 回复 分享
发布于 04-22 11:56 江苏
mark一下大佬
点赞 回复 分享
发布于 04-22 11:43 湖南
佬,在这之前有实习吗?
点赞 回复 分享
发布于 04-21 19:46 辽宁

相关推荐

整理下面经和之前自己的疑惑第一次写面经bg 211本 两段中小厂Cocos实习timeline(学校有绿通所以没有笔试)3.27线下绿通一面4.8线上二面4.16线上三面4.26测评4.27hr面每面都会提一嘴游戏经历和为什么选择游戏行业————————————————————一面 1.5h内容与简历强相关,凭着记忆应有以下内容1.设计模式 楼主讲了单例模式(事件中心),mvvm以及mvc2.资源加载以及GC相关,基本是照着引擎文档答的3.开源框架 楼主讲的oops-framework4.ECS架构 原理和优势5.性能优化 包括内存优化和渲染优化,自己实习中实际做过哪些以及一些调试工具的使用,这个部分是楼主的实习内容之一所以讲了很久6.渲染管线 两个着色器作用7.帧同步状态同步8.Cocos和Unity区别 但是当时楼主因为毕设刚开始接触Unity,所以讲的是微信小游戏和原生端的开发区别,涉及到SDK,包体大小和分包啥的,Unity部分面试官知道我不会也就没深入问。9.C# zenzen哇嘎乃直接过10.C++常规八股 着重内存对齐和移动语义11. 反问 校招生培养——minigame二面40min主要是对一面的补充,除此之外:1.寻路算法 navmesh2.怎么写一个技能类(也是楼主的实习相关,讲了很久)3.手撕单例模式 C++和TS各写了一遍,到这里才发现自己C++已经写起来很陌生了,想定义个类都忘了有没有分号4.手撕leetcode简单题(楼主leetcode一共写过不超过20道题所以写的磕磕绊绊的都以为寄了)5.反问 面的不好没心思反问了,开玩笑的还是问了一下哪个项目组——雷火的校招过程中不区分项目组,offer阶段才会有某个项目组来捞人三面40min主要是对一面二面的补充,除此之外:1.介绍自己UI仔阶段中一个可热更线上活动的具体实现,主要包括一个抽卡界面,排行榜,商店,IAP购买等业务细节,因为涉及到前后端协作所以穿插了一个protobuf2.实习中写的一个UI组件,以及Unity中实现这个组件的区别,因为楼主用到了射线检测所以顺便问了一些图形学内容,但楼主简历没写图形学所以问的也不深。2.手撕string类3.反问 怎么看待Unity近期的作死行为hr面所有hr面中最技术相关的一集,十分关心楼主的技术成长经历,倒是没什么性格和职业发展规划相关的提问。总结就是八股较少,基本都是围绕着简历在提问(二面和hr面会感觉有点压力)。虽然感觉自己在池子里的顺位应该会比较低但是还是有点想知道会被哪个项目组捞。
查看18道真题和解析
点赞 评论 收藏
分享
05-12 22:45
已编辑
2222 安卓
55min问了40多个问题,底裤都被扒完了...问题:1,为什么使用flutter2,flutter的优点是什么3,mvvm架构的特点4,flutter和原生混合开发时,页面路由如何管理5,hashmap数据结构如何实现6,红黑树特点,插入和查找的时间复杂度7,hashmap为什么在链表长度为8时转化为红黑树8,内存泄漏的根本原因是什么?9,内存泄漏检测工具的原理了解吗?内存泄漏是如何被检测出来的?10,引用类型有哪些?11,Java中加锁有几种方式?12,审查代码时,如何发现潜在的死锁问题?13,死锁如何产生14,如何避免死锁15,tcp,udp是哪一层的协议,他们的区别是什么?16,tcp如何保证可靠性17,请求头中有哪些信息18,cookie的概念19,序列化和反序列化20,json和protobuf的区别21,数据加密有了解过吗?22,https相比较与http增加了哪些内容?23,https中的证书的概念24,效率比较高的排序算法,哪种算法时间最稳定?25,在实际项目中更轻倾向于自己实现排序算法,还是使用系统提供的方法26,java或c++中排序算法的源码有了解过吗,动态调节排序算法的策略?27,字符串查找算法,kmp时间复杂度,kmp思想是什么?28,计算机两数相乘溢出,如何解决?29,两个链表相交,如何求焦点30,安卓跨进程通信31,传统的操作系统,除了共享内存外,还有哪些跨进程通信的方法,使用场景相比于共享内存有哪些不同?32,view的绘制流程33,安卓绘制中的硬件加速的概念34,flutter是如何实现跨平台的35,flutter如何进行渲染,落实到平台上36,安卓消息机制37,flutter跟原生之间的消息通信38,服务器主动推送消息到客户端有了解吗?39,安卓本地存储,sqlite和sp的特点40,sp可以跨进程吗?如何操作?41,sp存储信息的两种方式,有什么区别?42,高德sdk,手机在室内时无法做卫星定位,如何发挥作用,误差是多少?43,网络请求框架现在普遍使用的是什么?dio是一种什么样的网络请求框架?
点赞 评论 收藏
分享
评论
44
210
分享

创作者周榜

更多
牛客网
牛客企业服务