一、个人感受
秋招这段时间以来,明显能感觉到25届没有24届情况好。有的大佬手握多个大厂offer,更多的是一些1offer或者0offer的同学。虽然很多公司号称多少多少hc,但实际体验下来并不是这样。游戏开发hc少,大佬又多,会比较卷。
从总体上来说,大厂的面试更加看重基础的广度和深度,包括C++,408相关,图形学,渲染管线,甚至是某些效果的实现。也会包含一些常见的场景题,也遇到过直接拿现有游戏的某个功能来作为考题。
个人感觉如果想进中大厂做游戏客户端程序,首先要了解整个游戏有哪些常用技术也就是了解框架,这一部分可以看书或者看games104,其次需要对某一个或多个方向比较深入,比如ui,3C,核心玩法,渲染等。然后就是引擎的使用甚至是底层源码,我在面试的过程中不止一次被问到有没有看过UE的源码。最后就是写过比较好的项目(最好是中重度项目,有技术难点或亮点)、中大厂实习(日常或者暑期都行)。
二、个人秋招总结
背景:学院本985硕,科班。一段大厂实习,一段引擎实习。项目就是games101、games104和一些小游戏。
渲染不太会,有的公司就希望招懂渲染的客户端吧,有些面试官听到不会渲染之后过一会儿就结束了面试。
开启秋招的游戏公司我都投了一遍,50家左右吧。虽然准备all in 游戏客户端,但是还是为了有更多机会投递了一些C++开发岗位。虽然拿到了几家offer,但是还是不太满意,准备春招再看看,也有可能离开游戏行业了。
简历挂(包括投完没动静)
英雄游戏、完美世界、柠檬微趣、祖龙、紫龙、勇仕、椰岛、Garena、Funplus、4399、鹰角、朝夕光年、B站、搜狐畅游、星辉游戏、数字天空、友塔、莉莉丝、途游、联想、oppo。
笔试挂(包括笔完没动静)
灵犀互娱、雷火、网易互娱(网易这两家要a 2.5道以上)、西山居、诗悦、冰川、剑心、散爆、麦吉太文、吉比特、三七互娱、米哈游、游卡、畅唐网络、波克城市、小米。
一面挂
叠纸、点点互动、光子工作室、天美工作室、魔方工作室、网龙、快手、tap4fun、朝夕光年
二面挂
字节音视频
意向
沐瞳、巨人、乐牛
三、部分面经
- 介绍实习和项目
- 为什么不用unity自带的动态避障,RVO2相比于unity自带避障的有什么优缺点
- 多态、虚函数底层原理
- 举一个可以使用虚继承的例子
- 虚析构函数,虚构造函数行不行
- 智能指针、unique_ptr怎么获得控制权、unique_ptr为了解决什么问题
- 右值,举一个适合使用move的场景
- 引用折叠,完美转发,举一个适合使用完美转发的场景
- 进程、线程的区别
- 进程能访问其他进程的内存空间吗,会出现什么问题
- STL容器的原理,各种操作的时间复杂度
- C#装箱拆箱
- C#异步方式
- unity的事件函数的生命周期
- 协程在哪一步执行
- 为什么在某些场景下,面向数据编程会更快
- ECS架构,了解unity的DOTS吗
- UE的GamePlay框架看过吗
- UE逻辑线程和渲染线程的同步
- 具体说下渲染管线做了什么事情,哪些步骤是可以修改的
- 写过Shader吗,Shader的作用是什么
- Drawcall是什么,为什么减少Drawcall能提升性能,为什么有时候减少了Drawcall性能没有提升
- 了解过Drawcall的合并吗,什么情况下不能合并
- 渲染图集的性能除了和Drawcall有关还和什么有关
- 在导出图集时选中裁剪透明像素,如果某个图标有很大部分是透明像素,怎么在运行过程中恢复这些像素。
- 动态合批是什么,看过UGUI的原理吗
- unity中UI的渲染顺序是什么
- 讲下MVC架构,既然在实际应用过程中,view和controller区别没有那么清晰,有没有了解过其他架构
- TCP和UDP原理及区别
- RUDP,看过哪些RUDP的库吗
- 为什么有了TCP还需要RUDP,TCP哪些机制导致高时延
- 帧同步和状态同步
- 状态同步的大致流程
- 状态同步如何让客户端表现更好一些,比如移动,攻击等
- 游戏中的延迟补偿机制,内插值和外插值分别用于解决什么问题
- 判断子弹是否打中一个物体
- 帧同步的moba游戏中,有一名玩家的技能击中了对方,但是其他客户端计算结果显示没有击中,此时应该怎么办
- 四叉树原理,有什么作用,八叉树原理,kd树原理
- 状态机了解过吗,行为树的原理,有没有尝试实现过呢
- 在哪些场景下可以使用对象池呢
- 了解过哪些设计模式
- 单例模式怎么实现的,线程安全的单例怎么实现的
- 如果让你实现游戏中的事件系统,你会怎么做
- 你刚刚说的是单播消息,如何实现消息的多播呢
- 讲一下RVO2算法的原理,相比于RVO有什么好处
- 讲一下寻路系统,包括建模方式
- Navmesh的大致过程,watershed算法可以用来解决什么
- dijkstra算法的原理,A*算法的原理,jps算法的原理
- 检测平面内两个三角形是否碰撞
- 判断点是否在扇形攻击范围内
- 已知一条直线上的两个点,如果有交点则求两条直线的交点
- 假设现在实现一个AI投掷手雷到目标点,已知当前点A,目标点B,投掷速度v,重力加速度g,A和B之前有一个掩体,无法通过直接投掷的方式。但是掩体旁边有一个墙壁,可以通过投掷到墙壁上反弹到达目标点。如何计算初试速度的方向和墙壁上的反弹点,不考虑碰撞损失。
- 80个小球,其中1个比较轻,现在有一个没有显示的天平,最少需要多少次才能找到它
- 有1000个小球,A和B可以选择每次拿一个或两个小球,谁会拿到最后一个小球
#游戏求职进展汇总#