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. 你有两种攻击方式:群攻和单攻,且单攻的攻击力一定比群攻高,已知两只怪物的血量,求最优的攻击方式使得攻击次数最小,要求递归与非递归两种实现方式(网易雷火)
#面经##游戏客户端开发工程师##腾讯##字节##网易雷火#
全部评论
mark一下大佬
点赞 回复 分享
发布于 04-22 15:18 江西
雷火我也被问了这道题
点赞 回复 分享
发布于 04-22 11:56 江苏
mark一下大佬
点赞 回复 分享
发布于 04-22 11:43 湖南
佬,在这之前有实习吗?
点赞 回复 分享
发布于 04-21 19:46 辽宁

相关推荐

评论
12
46
分享

创作者周榜

更多
牛客网
牛客企业服务