写在前面
同一天下午连续面试两场,问题有可能与乐易一面记混
时间顺序上,本次面试为当前招聘季第四家公司,共第6次面试。
面试平台在网易自己的会议中,通过面试链接在浏览器进行,界面类似腾讯会议,代码环节是内置的代码编辑器,只有根据语言高亮,没有编译运行。
背景说明:
简历项目为格斗游戏个人Demo,项目B站演示视频链接
本来投递的是网易梦幻事业部的游戏客户端外包,不过需要换Egret引擎,对应语言是 Javascript / Typescript 。没什么太大兴趣,刚好Offer给别人拿走了,HR问我能否接受测试开发岗位,也就来试试。
一面
这位面试官还没看过演示视频,现场边看边问,项目问的不多不深:
项目当前实现了哪些功能?
有没有AI功能——只有简单的训练场人偶,格挡控制和姿态控制
街霸6中除了生命以外还有其他资源条——斗气与超必杀充能,如何消耗
项目规划,接下来可能会做什么核心功能——完善核心玩法和机制,然后再考虑创新玩法
分析街霸6可能的性能瓶颈——外观:特效、模型、动画;逻辑:招式判定处理、输入判定处理、网络架构、回滚代码中的预测与修正、连接管理
Unity和C#相关通用八股
Unity的组件模式和常用组件——Transform、Collider、Rigidbody、Mesh、Animator、编写的脚本
预制体的概念和作用——将GameObject保存为资产文件,方便复用和在运行时生成
Unity 的生命周期概念——提了常见的生命周期方法和顺序(Awake, OnEnable, Start, Update, LateUpdate, FixedUpdate, OnDisable, Destory)
Joy-con(不知道是不是这个)——没听过
C# 的 Interface 和 Abstract Class——语法差异(字段声明、多继承等), 用法差异(接口协议与收纳公共数据逻辑方法)
C# 的字符串缺点——一个字符串会在堆内开辟一块空间,相同内容的字符串变量指向同一个地址。修改字符串会导致新开辟空间。空间与性能开销
高频修改字符串情景如何解决——StringBuilder,本质是字符数组
算法:
最短路径问题,N×M网格中,0为空旷,1为障碍物。每次可以向上下左右其中一个方向走一步,求从起点 (0, 0) 到终点 (N - 1, M - 1) 的最短路径。如果没有路径就返回 -1。
只有大致思路DFS,有些细节其实没扣明白。面试官看我卡了一会,跟我确定思路后放了我一马。
游戏经历:(最近有在玩的)街霸6、守望先锋2、剑星、明日方舟
街霸6的段位:双角色大师,经典/现代模式均有接触
反问
项目和岗位情况:主要使用Python做自动化测试工具
游戏测试和传统软件测试的区别:游戏运行情况更加复杂,需要更加了解游戏逻辑;传统软件测试相对简单
(感觉这几次面试下来反问环节不是很会问,基本就了解了一下对方项目组的一点点工作情况,甚至也没问很清楚)
总结
当天下午反馈通过一面。
不知道是不是因为我的准备方向是客户端开发,这边岗位是测试开发,面试官本轮面试实际上没有问过具体的测试开发技术八股,就根据我的使用引擎和编程语言C#出了一点题目。另外在项目提问里没有太深入追究实现,考察了一点测试思想,也很浅。
这位面试官感觉像是了解格斗游戏(街霸6)的,能感觉到提问时有点兴趣在。结合其他几次面试,如果不了解或没兴趣,内容基本不会和格斗游戏要素沾边。
从目前的几家面试经验来看,大小厂之间的氛围还是不太一样:大厂游戏氛围相对浓厚,提问宽泛一点,更多考察思路和热情等方面,没怎么下狠手(不排除是外包的原因);小厂更像软件公司只是产品是游戏,会更追究深度,特别考察基础,更具象一点。还是想在大厂做事。可惜目前没学历没能力,基础也不大扎实 : (