通用游戏开发问题
这些是难度较低的问题,通常在电话筛选和现场面试开始时被问到。
- 介绍一下你的个人项目
- 用1-10分评价你的C++水平
- 谈谈你在虚幻引擎方面的经验和专长
- 游戏UI框架具体是如何工作的?
- 什么是Qt?
- 什么是WPF?
特定游戏开发面试问题
虽然游戏面试中的许多问题与一般编程面试问题重叠,但也有许多是这个行业特有的。因为游戏开发公司处理很多独特的问题,他们想确保你具备解决这些问题所需的专业知识。
- 如何实现一个属性不断变化的系统,比如在角色扮演游戏中?
- 如何为游戏角色之间的病毒传播创建算法?
技术问题
- 列表/数组/集合/映射/哈希映射/向量的Big O时间复杂度是多少?
- 如何进行二分查找?
- 什么时候最适合使用列表/数组/集合/映射/哈希映射/向量?
- 哈希映射是如何详细工作的?
- 对数组进行二分查找的时间复杂度是多少?
- 什么是平衡树与非平衡树,何时使用每种?
- 如何使用栈/队列进行深度优先和广度优先搜索?
- 引用和指针有什么区别?
- 点积代表什么?其大小意味着什么?
- 点积可以如何使用?
- 叉积代表什么?其大小意味着什么?
- 叉积可以如何使用?
- 如何反转字符串?
- 什么是反射,它是如何工作的?
- 如何让向量相对于墙壁反射?
- 虚函数表是如何工作的?
- 如何确定移动物体何时最接近另一个物体?
- 什么时候需要归一化向量?
- 如何计算法向量?
- 如何计算两个向量之间的距离?
- 如何设置一个位?
- 如何清除一个位?
- 如何检查一个位?
- 如何切换一个位?
- int32的最大值是多少?
- 请用二进制表示-3
- 请用十六进制表示-4
- 在64位系统上,int*的大小是多少?
- 解释Slab分配器
- 解释Buddy分配器
- 解释Stack分配器
- 解释可重定位堆
- 解释池化分配器
游戏调试问题
- 你会如何尝试重现一个错误?
- 调试器为解决特定问题提供了哪些选项?
优化
- 如何让一个函数在数千个对象上以尽可能高的帧率运行?
- 如何分配内存以最有效地利用CPU缓存大小?
- 你有使用VTune等工具的经验吗?你会如何使用它们?
游戏开发者行为面试问题
也称为"文化契合度"问题,旨在筛选你与公司和同事的兼容性,以及纪律性和良好问题解决能力等特质。
你会被问及在其他公司的工作经历,以了解你如何处理不同的情况和挑战。
- 介绍一下你自己
- 你为什么对游戏开发充满热情?
- 你在游戏中修复过的最困难的bug是什么?你是如何修复的?
- 告诉我你与老板/同事发生过的一次冲突