游戏服务端相关岗位一面面经
完整信息
本篇目录
自从三月份准备暑期实习以来,我一直很感谢在牛客上无偿分享面经的同学和学长学姐。为了回馈在这里收获的开源经验,也为了维护牛客良好的求职氛围,我把自己已经结束流程的面经整理分享出来。
笔试:9月19日,一道AI coding题目,200/225 约面。
\--------------------------------
一轮a面:10月9日
15 min 拷打实习 + 项目。
什么是DDoS攻击?DDoS攻击的方式有哪几种?如何预防DDoS攻击?
在游戏服务端中,如果某个恶意用户持续向服务器发送海量流量,该怎么避免服务端链路被占满?
你了解什么是unlikely关键字吗?
追问:它能够实现布局优化的底层原理是什么?
什么是 lock_free 和 wait_free?它们的区别是什么?
你了解的C++中都有哪些锁? 它们的名称是什么?
你在实习过程中有没有遇到过死锁的问题,是怎么解决的?
lock_guard 和 unique_lock 它们之间的区别是什么?分别有哪些应用场景?
如何保证游戏服务器不会被恶意流量拖垮? 有哪些措施?
在游戏房间中,我想踢除某个用户,该怎么实现?
追问:怎么保证一定踢掉这个用户?如何优雅地来实现?
在C++中,我想访问一个二维数组,按行遍历和按列遍历哪个速度更快?请说一下底层原理。
追问:如果按行遍历和按列遍历速率相同,你认为可能是什么原因导致的?
追问:假设采用的是32位系统,在二维数组中存储的全部是int类型的数据,要实现你说的这种情况,大概的数量级是多少?
场景题:当前有一万名玩家,每一个玩家释放技能,会对周围一米的所有敌人都扣一滴血。正常的思路是对每个玩家进行遍历,然后查找作用域范围内的敌人,但是这样的时间复杂度会达到平方级别。你有什么优化的方法吗?
追问:如果某些技能只持续一帧,而有些技能会持续十帧,那么这种情况该如何考虑?
追问:如果并不是每秒都要去统计玩家的技能释放情况,那你说的方案会有哪些问题?该怎么优化?(这里有点没听懂)
无手撕,45 min 结束。
\--------------------------------
感觉面试官提问的问题都很有深度,需要对C++语法和计算机网络有深刻的认知和理解。
后续面经正在整理中,休息一下,马上回来。
本篇目录
当前问题0115
- 01
什么是DDoS攻击?DDoS攻击的方式有哪几种?如何预防DDoS攻击?
- 02
在游戏服务端中,如果某个恶意用户持续向服务器发送海量流量,该怎么避免服务端链路被占满?
- 03
你了解什么是unlikely关键字吗?
- 04
追问:它能够实现布局优化的底层原理是什么?
- 05
什么是 lock_free 和 wait_free?它们的区别是什么?
- 06
你了解的C++中都有哪些锁? 它们的名称是什么?
- 07
你在实习过程中有没有遇到过死锁的问题,是怎么解决的?
- 08
lock_guard 和 unique_lock 它们之间的区别是什么?分别有哪些应用场景?
- 09
如何保证游戏服务器不会被恶意流量拖垮? 有哪些措施?
- 10
在游戏房间中,我想踢除某个用户,该怎么实现?
- 11
追问:怎么保证一定踢掉这个用户?如何优雅地来实现?
- 12
在C++中,我想访问一个二维数组,按行遍历和按列遍历哪个速度更快?请说一下底层原理。
- 13
追问:如果按行遍历和按列遍历速率相同,你认为可能是什么原因导致的?
- 14
场景题:当前有一万名玩家,每一个玩家释放技能,会对周围一米的所有敌人都扣一滴血。正常的思路是对每个玩家进行遍历,然后查找作用域范围内的敌人,但是这样的时间复杂度会达到平方级别。你有什么优化的方法吗?
- 15
追问:如果某些技能只持续一帧,而有些技能会持续十帧,那么这种情况该如何考虑?