50个游戏开发者面试问题(常见且关键)
作者:John Sonmez
当你准备游戏开发岗位面试时,请准备好回答这些问题。研究技术问题背后的基础概念。对于行为面试部分,你可以提前写下并排练答案——这样在紧张时刻脑海中就有准备好的内容。
祝你好运!
关于游戏开发的一般问题
这些是难度较低的问题,主要在电话筛选和现场面试开始时被问到。
- 告诉我关于你的个人项目。
- 在1-10的范围内,你的C++水平如何?
- 告诉我你在虚幻引擎方面的经验/专业知识。
- 游戏UI框架具体是如何工作的?
- 什么是Qt?
- 什么是WPF?
具体的游戏开发面试问题
虽然游戏面试中的许多问题与一般编程面试问题重叠,但也有很多是这个行业特有的。因为游戏开发公司处理许多独特的问题,他们想确保你具备解决这些问题所需的专业知识。
- 你如何实现一个状态不断变化的系统,比如在角色扮演游戏中?
- 你会如何为游戏角色中病毒的传播创建算法?
技术问题
- 列表/数组/集合/映射/哈希映射/向量的大O运行时间是多少?
- 如何进行二分搜索?
- 什么时候最好使用列表/数组/集合/映射/哈希映射/向量?
- 哈希映射具体是如何工作的?
- 对数组进行二分搜索的运行时间是多少?
- 平衡树与非平衡树是什么,何时使用它们?
- 你如何使用栈/队列进行深度优先和广度优先搜索?
- 引用和指针有什么区别?
- 点积代表什么?它的幅度意味着什么?
- 点积可以如何使用?
- 叉积代表什么?它的幅度意味着什么?
- 叉积可以如何使用?
- 如何反转字符串?
- 反射是什么,它是如何工作的?
- 你如何使向量相对于墙壁反射?
- 虚函数表是如何工作的?
- 你如何确定移动对象何时最接近另一个对象?
- 什么时候需要归一化向量?
- 如何计算法向量?
- 如何计算两个向量之间的距离?
- 如何设置一个位?
- 如何清除一个位?
- 如何检查一个位?
- 如何切换一个位?
- int32的最大值是多少?
- 请用二进制写出-3。
- 请用十六进制写出-4。
- 在64位系统上,int*的大小是多少?
- 解释Slab分配器。
- 解释Buddy分配器。
- 解释Stack分配器。
- 解释可重定位堆。
- 解释池化分配器。
游戏调试问题
- 你会如何尝试复现一个错误?
- 调试器为解决特定问题提供了哪些选项?
优化
- 你如何使一个函数在数千个对象上以尽可能高的帧率运行?
- 你如何分配内存以最有效地利用CPU缓存大小?
- 你有使用VTune等工具的经验吗?你会如何使用它们?
游戏开发者的行为面试问题
也称为"文化契合"问题,旨在筛选你与公司和同事的兼容性,以及你是否自律和善于解决问题。
你会被问及在其他公司的工作经历,以了解你如何处理不同的情况和挑战。
- 介绍一下你自己。
- 你为什么对游戏开发充满热情?
- 你在游戏中必须修复的最难错误是什么——你是如何修复的?
- 告诉我你与老板/同事发生过的一次冲突。