11.5 库洛游戏 游戏开发 一面60min
总结:90%场景题,考验的是思路和经验,全程无八股,无基础知识,两个面试官,感觉和掌趣的面试官很像,属于教授级别的,循循善诱的引导问题,并在最后给予解答。总体下来学到了很多东西。
自我介绍
- 实习的单位不是游戏公司?为什么想加入游戏行业?实际上做游戏并不需要前沿的科研理论啊?
- 平时玩游戏多吗?什么类型的游戏?
- 自己做的游戏demo有联机的功能吗?(没有
- 第三人称的游戏吗?是什么视角的?有什么类似的游戏吗?(过肩式视角
- 有没有哪个方面是比较有难度的?不是属于引擎功能的问题?有哪些是你自己解决了的?
--------------------------------华丽分割线-----------------------------------------------------------
- 你了解碰撞事件是如何产生的吗?为什么能知道你碰到了东西?(答了几何体相交,
- 两个几何体相交只是最后一步,那你怎么知道和谁去判断?你还不知道你和谁发生了碰撞(答了先做一些碰撞预设
- 碰撞预设是第一步,那假如我有100个箱子,只设置箱子与箱子碰撞,我推着箱子,那你怎么检测箱子之间的碰撞?最简单暴力方式就是和其他99个箱子两两检测,但实际上需要这么多吗?可以做一些筛选?(答了空间划分,八叉树等
- 那如果这个箱子属于你划分的这个多个划分空间中,该怎么办呢?(。。答了先从粗粒度空间去判断,往上一层去查找
- 项目的AI?有没有用到感知功能?
- 那,如果让你自己来实现一个AI的感知系统,你应该怎么做?简单只考虑视觉上的感知。(答了简单直观的实现范围射线检测,然后寻路,但是后来考虑开销太大。
- 也就是说我对屏幕范围内所有物体进行一个视线检测。加上一些额外的判定,但这样会有问题,如果场景物体很多,你还是会做很多两两检测的工作,效率低。这时候你怎么做?(答了类似光线追踪的那种思路,逆向的去考虑,让每个感知物体像我们去发射一个感知检测。)
- 那这样还是没有减少开销吧,自然的想法就是要过滤掉一些看不到的物体了,这是一种方法,目标是减少检测量。没有标准答案,就是看看你的思路。
- 你的项目是一个完整的大世界吗?是关卡形式的吗?(不是
- 那可能也没有做一些加载策略吧,那假设你这个世界是个开放世界,很大的世界,那你怎么去加载的策略呢?(答:分为不同的level,参考UE中level streaming,以及和world之间的关系)
- 那你level之间该怎么划分呢?简单来讲每个level的复杂度都是一样的(答:可以简单的通过面积来划分,
- 这样拆分的话,那我应该如何去加载呢?我应该加载的范围是多大呢?(答:可以根据人物的四周(九宫格)来加载,或者视野可达部分来预先加载,或者根据人物移动目的地轨迹)
- 对网络同步有了解吗?(答:帧同步,状态同步
- 两者的区别?那你觉得开放世界游戏能用帧同步吗?(答:。。。(这里想到了魔兽世界是状态同步,然后就答了状态同步)
- 嗯,这是其中一个原因,那一般多人游戏中,比如多人副本,在副本的攻略的过程中你加入了我的世界,这里怎么用帧同步怎么实现(答:保存你的世界中前一段时间的操作,然后在我加入你的世界后还原这些操作
- 那这样的话,你难道要还原我所有的操作吗?有可能我的副本已经战斗了2个多小时了,我有几十万次操作(答:(懵逼ing)
- 所有这就是帧同步的一个问题啊。玩过原神吗?你觉得是帧同步还是状态同步
- 对C++比较熟吧?其他的语言呢?脚本语言呢?C++什么时候需要自己实现拷贝函数呢?(答了深拷贝,以及移动构造)
- 之前做的笔试题有印象吗?成对括号数?你用了栈来做的,有没有更好的方法?
- 从n个无序的数取数
换第二个面试官
- 问项目细节,问IK的底层原理,看没看过源码,知不知道数学原理?详细说它具体用了哪些计算?如何反向结算其他骨骼的坐标的?
- IK平滑过渡效果是怎么去实现的?
- 讲讲骨骼动画?美术那边给过来的动画存了一些什么数据?
- 渲染管线
反问
(此处略
不知道是不是鸣潮项目组的。
总体感觉中等偏上吧。。也有好多问题回答的不精确,因为确实开发经验不足,但是面试官给的回答也让我学到了很多东西,受益匪浅。当然了,offer什么的,随缘吧。
最后还有一点,通过面试意识到自己的实习经历并不是游戏公司的一种短板了。对于游戏开发最快的成长方式莫过于找一家游戏公司实习了。
以上。
何以解忧,唯有变强。
#库洛游戏##游戏开发##游戏客户端开发工程师##2023秋招#