xiaozongpeng 发表于 2022-3-27 14:23

想从事游戏开发行业,有没有好的建议?

作者:pointed
链接:https://www.nowcoder.com/discuss/623744
来源:牛客网前言

游戏是商品而不是作品。--------------白仓一马


面试XX厂后一大堆诡异事情发生,手机碎屏,显卡被偷,今天终于正常了些,春招的求职过程有些曲折,个人感觉可能自己拿到游戏开发相关offer的希望不大,因此想总结一些经验留给后来人,也想攒点RP。



---大厂和小厂的笔试、面试个人向感知区别--------

大厂:


[*]大厂不用说,注重基础,C++、操作系统、计算机网络、数据结构算法等八股文,个人未参加一些大厂的面试,但和其他同学交流发现对基础的要求较重一些,
[*]算法难度看这个厂本身的实力,但总体来说为LEETCODE中等以上难度,由于本人算法实力较弱,因此可能有些感知上的区别,但总的来说大概如此。
[*]面试考察也多以八股文、中等算法为主,引擎开发相关的话则会考察引擎相关的使用,引擎开发相关笔面经在此不作讨论,但总的来说对游戏引擎的使用经验较为宽松,
[*]不会有太多硬性的要求,即使答不上游戏引擎相关的问题一般也并无大碍,重要是基础扎实。
小厂:


[*]个人感觉某种意义上比大厂还难,对八股文的考察减弱,加强对算法、数据结构的考察,并会有多道游戏开发实际相关、游戏引擎使用相关的题目的考察,
[*]这些题目个人印象一般大厂都是在引擎开发岗的时候才会考察,因此拿大厂的游戏研发岗位的经验去面小厂容易吃亏(比如本人)。
[*]建议在面试小厂的时候尽量寻找对应的面经看,若没有面经的话亦只能全面复习,不要拿某几个大厂的面经去套,容易被惯性思维坑。
游戏开发实际相关、游戏引擎使用相关的题目本人和朋友遇到的题目有:

Unity tilemap的使用
不知道答案,没用过,朋友遇到的
子弹速度较快时,如何做碰撞检测,伤害同步?
1.射线检测(会有一个问题:手速快的玩家近乎无敌,处理方法貌似是发射时给一个0.2秒左右的延迟)
2.伤害同步个人暂时未有研究,但之前看过相关的教程,略有印象。
造成手机游戏运行卡顿的原因有哪些?
1.网络同步问题
2.抛射物、生成物未能及时销毁(比如弓箭、火球、子弹等)
3.粒子效果的粒子运算在CPU运算而非在GPU运算(CPU粒子、GPU粒子运算相关)
4.待补充 笑
多个具有交互功能的物体或角色,可以进行编程的方式有几种?
1.组件组合(component)
2.继承
3.实现接口
4.待大佬补充。
子弹时间效果的实现
引擎提供的游戏物体运行速率相关的函数接口(Time Dilation等)(UE4实现如此,unity好像也有类似函数)
思想:1.除了自己以外的游戏物体运行速率减慢(我当时UE4的做法是,获取除自己以外的角色、物体,降低这些角色和物体的运行速率,但是当场景内的物体多的时候会不会有优化上的问题暂未尝试)。
如果不提供接口怎么做?(面试官反问)
1.待补充
2.?这是引擎开发岗吧。   
RogueLike相关(朋友遇到的)
使用游走算法生成地图的话,按照一个像素这样游走,你这个算法容易生成狭长的地图,如何解决?
不按照一个像素这样游走,而是按照一个区域一个区域这样游走,生成区域变的广阔。
怎么在生成的地图上随机均匀的分配怪物?
泛洪算法(朋友面试官说的,具体实现未了解)
渲染相关
不算问题,是本人尝试延长面试时间的套路。。不问的话就聊不下去了
请问你们厂这个游戏的卡通渲染怎么做的啊?
会不会很耗性能啊?
PBR和NPR结合有什么难点吗??
这样的话优化会很难吧?
如果面试的厂是二次元相关的厂的话,可以问一些卡通渲染相关的套一下话,延长一些时间。
呐呐呐?你们这个勾线怎么做的啊?之类的。
个人感觉比起问做什么项目,待遇之类的感觉好聊下去吧?(笑,根据面试的厂不同可以调整自己要问的问题)
可以看看知乎上关于卡通渲染的一些文章(罪恶装备GDC技术分析、崩坏3技术分析等),有点印象就可以了,不需要强记。
武器的碰撞检测,除了用collidebox外还能怎么实现?
用两个点或三个点设置在武器的最长端 中间 末端,碰撞检测即为这几个点连成的线是否与物体的
collide box相交
还有游戏引擎的一些相关知识
比如 Unity的UGUI啊,合并网格,Monobehaviour生命周期、大地图加载方案、UE4 Behavior Tree、NavMesh(一般和寻路算法相关)这些,不过都是别人面经上有写,自己未被问到过,被问到了再补充吧。
反正先写到这里吧,个人感觉如果要面小厂的话,最好就是有一定的游戏引擎使用经验,虽然招聘要求上没明确写,但其实是会考察的,
可以去ABOUTCG购买相关的教程学习。
感觉未来的游戏开发岗招聘会越来越难,大厂和小厂的差距也在拉开,小厂对应聘者的要求个人感觉反而比大厂要高。
未来可能会补充一些游戏引擎、游戏开发相关的八股文吧,以后要背的八股文又多了一种。
不过真的要写游戏引擎、开发相关的八股文的话,大概能写很多吧,毕竟都是坑,以后再写。
---------------------关于未来游戏开发招聘难度应聘的幻想---------------

反正越来越难吧(笑)
会问开放世界相关的题目,比如大地图读取处理方案,脚部ik,PBR、NPR、渲染管线之类的,问的问题可能会越来越广?
希望不会吧
----------------------3.26---------------------
被一个做买量流水手游的小厂挂了,第一面HR面挂。
总结:不要表达过多对游戏的热爱和尽量压抑自己对买量流水手游的厌恶。
夜观天象,恐时日无多,更新zanRP
---------------------3.27--------------------
更多名企笔试真题解析、面试经验交流、招聘信息内推,尽在牛客!
求职之前,先上牛客!快快下载拿offer!
牛客APP下载_C++Java前端经典笔试面试题库_牛客网
延长时间套路

首先面试前对你要面试的公司做一个了解,看看公司做的什么游戏,粗略的看一看,玩一玩也可以,比如你面米哈游你就看原神和崩坏3
举个例子:
米哈游面试,需要你反问
这个时候,根据你之前对米哈游游戏的认知,从以下几点反问
1.游戏设计:游戏设计的话可以从系统设计,比如过场运镜系统、打击感、脚部IK、动画状态机、AI行为树等问
2.优化相关:优化相关的话,可以从地图加载、贴图压缩、粒子效果等等去谈、
3.渲染相关: 渲染相关可以挑卡通渲染的某几个点,比如勾线怎么做,衣服上的阴影用的是顶点色控制还是阙值贴图控制等。
虽然有可能会被面试官反问翻车,但个人感觉比问待遇之类的尬聊会好一些吧。
而且有可能会让面试官对你印象加深,延长面试时间,在面试时间过短的情况下可以使用这个套路。
小厂场景题、应用题因果律预测

这里的小厂可泛指你找不到面经的厂,这个时候就务必思考准备的方向,是要用传统的八股文复习策略还是应用题、场景题预测策略。
个人面试惨败后得出的一个方案是,全面复习,不追求复习的精,但要广,你可以答不上来但要说出思路。
而小厂的场景题和应用题,个人认为应该有一定的预测方法。
在面试前,百度或者其他的科学搜索调查这个小厂最近正在开的新项目和以前做过的游戏。
这个时候,场景题和应用题的出题范围大致就在这些新项目类型和以前做过的游戏之中了。
比如XX厂,做动作游戏和新的枪战项目。
这个时候,可以出的题目可能就有以下题目:

[*]子弹时间功能实现
[*]子弹速度快时的碰撞检测与网络同步
[*]武器碰撞检测相关
[*]换弹功能
[*]敌人受击时的动画状态机设计
[*]载具功能的实现相关(比如根据地形,车辆的水平垂直角度需自适应调整)
[*]打击感的实现等
总而言之,是他们需要做的游戏或已经做好的游戏中,某些功能或系统的设计大概率是会被考到的题。
如果问了其它类型的鬼畜设计题,那也只能自求多福。
总而言之,预测出的题目也有一定优势,也可以帮助你在面试前提高信心。
当面试官问你玩什么游戏的时候,说出来的游戏的类型最好也和你复习过的场景应用题的对应游戏类型一样,这样的话,就算被面试官倒打一耙问对应的游戏设计也不会超出你所复习的范围。
游戏类型场景题、应用题八股文

RTS类型
A*寻路算法、NavMesh相关
ACT类型
动画状态机状态转换方案设计、武器碰撞检测优化、脚部IK、子弹时间功能实现
FPS、TPS类型
换弹功能实现
子弹速度快时的碰撞检测与网络同步
对象池模式的应用
射击 游戏 镜头怎么操作的?子弹怎么实现的?有没有类似于手雷的抛物线?
RPG类型
多物体、角色实现交互功能的编程方案: 接口、组件、继承
敌人的行为树设计->衍生出行为树节点功能的考察 sequencer、selector、blackboard等
MOBA类型
帧同步与状态同步?
用UDP还是TCP?
RAC类型
假如要实现竞速类 游戏 加速时屏幕的效果你会怎么实现
OTHER
五子棋怎么判断胜利的?怎么检索的?一共几个方向?
共通题
游戏排行榜设计
场景内多物体,判断是否碰撞-八叉树
如何判断敌人朝向你?
背包系统,你是怎么样实现的
怎么实现一个黑洞?
黑洞设置一个引力范围,进入这个范围HITBOX对物体施加一个指向黑洞圆心的力(实时计算力的方向),UE4引擎有现有的函数可使用
游戏引擎八股文

引用面经:

TX:

NETEASE:

BYTEDANCE:

MIHOYO:

GBIT:

4399:

感谢各位神仙大佬的面经,方便后人借鉴

Unity:

1.什么是AssetBundle?谈一谈你对AssetBundle内存分配情况的理解。
2.谈一谈你对3D渲染管线的理解。
3.简述StringBuilder和String的区别?
4.什么协同程序?
5.Unity生命周期函数
6.谈一谈你所知道的Unity内存优化方法,不少于5条。
7.Unity中动态加载资源的方式
8.谈一谈你对Animation与Animator的理解
9.C#的委托是什么?事件是不是一种委托?
10.unity有哪些组件?
11.C#有哪些特性?
12.资源打包,AB包
13.unity项目中的有哪些优化?
14.unity自带哪些shader?
15.如何处理UI和粒子特效的层级关系?
16.C#的GC机制
17.Drawcall以及性能优化问题
什么是协程 协程与线程的区别
UGUI的渲染顺序是什么?
层级上,A在B的下面,同一个canvas,order和layer相同,可不可能A显示在B上面?
做过动画吗?骨骼动画为什么制作一个可以应用在所有对象上?
线程协程什么关系?还是说两者一致?
开启一个协程后他的第一次执行在update之前还是之后?
WWW用过吗?
Unity只有一个主线程吗?
粒子系统遵不遵循unity的生命周期?
如果把timescale设为0那粒子系统还播不播?动画系统呢?
一个3d粒子系统有一个父物体,放到了2d中,改他父物体的缩放,粒子会不会收到缩放的影响?
UE4:

讲一讲UE4中怎么使用蒙太奇(Montage)
蒙太奇和动画序列有什么区别
动画蓝图用过什么节点
上身做攻击动画,下身做移动动画怎么实现
动画通知自己写过么
UE4反射机制和垃圾回收机制
什么叫Mipmap
Mipmap分为哪几种
你刚才说了行为树,介绍一下行为树都有哪些节点(UE4)
共通题
渲染管线
深度测试
什么叫骨骼蒙皮 法线贴图
判断两个物体的相对位置(可由多个问题派生出此问题,或由此问题派生出应用问题)
两个向量点乘
有什么用?
用于判断敌人角色和自身操控角色的角度,从而调整自身角色角度使角色一直面朝敌人(锁视角功能实现,AI朝向自身操控角色等)
常见的一些类

Pawn和character的区别是什么
Ue4蓝图和c++如何相互调用(宏)
网格体动画的原理(骨骼,蒙皮,权重什么的)
动画蒙太奇介绍一下
运行时生成物体的函数是什么
Pawn和actor的区别;
我创建了一个uobject对象,在没有其他引用的情况下请问我该如何保证它不会被gc?(根据提示原来使用UPROERTY宏进行标记就可以防止被回收,然后又问还有什么方法,我真不知道啊,他就问我umg怎么进行使用,说到add to viewpoint他说就是用这个可以把这个引用放到根结点,就不会被回收了)
我自己做了个类,不是继承自uobject的,请问怎么使用ue4自带的垃圾回收机制(这个我真不知道)
Actorcomponent和scenecomponent的区别
用什么方式可以维护actor之内的层级关系:(SetupAttachment进行组件间的子类父类的关系维护,其底层是调用了SetAttachParent(InParent);actor之间是attachActorToActor)
说一下动画蒙太奇(balabalabala)
说一下动画的混合吧(blend pose之类的,两套动作,哪个作为basepose比较好,balabala)
请说一下uobject和Aactor创建和销毁方式(生成actor:spawnActor,生成object:NewObject();销毁actor:destoryActor,销毁object:conditionalBeginDestroy)
UE4底层你了解过多少?(我说了ue4自己实现了内存回收和反射功能)
那内存回收过程讲一下吧?那中型的游戏,内存回收需要多少耗时,你猜一下。(我猜一帧以上吧,他说那不得卡死?)
过场镜头调整:希区柯克变焦
图形学八股文

怎么实现描边?
深度检测
沿法线方向向外挤出轮廓
unity中渲染一个半透明物体的过程
渲染半透明物体要关闭深度写入,防止前面的半透明物体把后面的不透明物体覆盖掉,然后开启混合,设置混合模式,然后逐像素的混合半透明物体的颜色和缓冲区中的颜色,这里跟半透明物体的透明度也有关系。
你说你看过《unity shader 入门精要》这本书,里面有一个部分透明的魔方渲染示例,为什么要分渲染两次渲染?还记得吗?
因为透明部分是要关闭ZWrite的,但是关了ZWrite就无法显示出魔方内部的深度关系,分两次是分别渲染不透明部分和透明部分,不透明部分的渲染要开启ZWrite,透明部分则关闭ZWtite,开启混合。   
渲染管线过程 哪些部分可以编写
顶点坐标包括哪些数据(位置,像素颜色,索引)
图形学 图片混合如何实现

Shadowmap 是什么?
了解过剔除吗,他是在哪一步执行,知道剔除有什么 算法 实现吗?
shadow mapping 如何实现

<hr/>

本回答节选部分内容,完整内容请见:
页: [1]
查看完整版本: 想从事游戏开发行业,有没有好的建议?