游戏与引擎专题 · 导览
这一块是给游戏开发 / 引擎岗加分的部分。面试权重约 10
15%:问的是概念,不是让你写引擎。 目标:每个考点能讲 1 分钟、说出 12 个亮点即可。
- 先读 12 游戏开发专项概念(游戏循环、数学、ECS、碰撞与空间分区)——必考。
- 再读 13 游戏引擎专项概念(渲染管线、DrawCall、UE 反射/GC、Unity IL2CPP)——必考。
- 然后看下面待补充专题,按你的目标公司挑着补(UE 岗补反射/GC,引擎岗补渲染与内存)。
12游戏开发专项概念
游戏循环与固定步长、向量/矩阵/四元数、ECS 三要素与优缺点、碰撞检测 broad/narrow phase、四叉树与 BVH、物理引擎概念。
必考游戏循环ECS空间分区
13游戏引擎专项概念
引擎分层、渲染管线四阶段、DrawCall 与合批/Instancing、UE 的 UObject/反射/GC、Unity 的 Mono vs IL2CPP。
必考DrawCall渲染管线UE/Unity
11性能优化(引擎岗重点)
先测量再优化、虚函数开销、缓存友好与缓存行、内存池/自定义分配器、分支预测、SoA vs AoS。
缓存友好内存池分支预测
10设计模式在游戏里的应用
单例(magic static)、工厂、观察者(事件系统)、状态(状态机)、命令(输入与撤销)、对象池。
对象池状态机事件系统
待补充专题(预留位)
Section titled “待补充专题(预留位)”下面这些是还没写的专题,已经预留好位置和提纲。你告诉我先写哪个,我就按提纲补上;也可以直接问我,我当场给你讲一遍。
面试官会怎么问(游戏岗常见追问)
Section titled “面试官会怎么问(游戏岗常见追问)”| 追问 | 一句话答法 | 详见 |
|---|---|---|
| 游戏主循环怎么写的?为什么要固定步长? | 固定步长保证物理/动画确定性,可变步长做插值渲染,避免不同帧率下行为不一致 | 12 章 |
| ECS 比 OOP 好在哪? | 数据连续存放 → 缓存命中率高、可 SIMD、易并行;实体只是 ID,组件是纯数据 | 12 章 |
| 为什么 DrawCall 越少越好?怎么减少? | CPU 每次提交都有固定开销;用合批、Instancing、图集、LOD 减少提交次数 | 13 章 |
| 虚函数对性能影响大吗? | 一次间接跳转本身不贵,贵在打断内联和无法优化;热路径用 final/去虚拟化或改成数据驱动 | 11 章 |
| UE 的反射怎么实现的?GC 怎么工作? | UHT 扫描头文件生成反射代码,UObject 记录引用关系,标记-清除式 GC | 13 章 |
| 对象池为什么省? | 避免频繁 new/delete 的分配器开销与内存碎片,对象复用、缓存更友好 | 10 章 |