年后的几个小面试_服务端|客户端
都是在boss上面投递的中小公司,全部挂掉了,来记录一下败犬经历。
五十一区工作室_服务端
一面
1.算法:给一个数,找到大于等于它的最小2的幂次
2.讲一下protobuf中string是怎么组织的
3.讲了一下自己网游的项目流程。
4.描述一下购买商品的流程处理的流程:
注意前端过滤
5.数据库:有两题忘记题目了,我的数据库是比较拉跨的,得好好练练。
二面
1.c++虚继承及其作用?
2.什么时候会把递归改成迭代?迭代中常用到的数据结构是?
3.讲一下什么是动态规划?能解决什么问题?
4.算法,最小圆覆盖?
5.讲一下自己的优缺点?
6.讲一下大学期间你最有成就感的事情?
总结
二面挂,非技术问题我直接老老实实的说了,这次面试之后我就好好归纳这些非技术问题。
不鸣科技_服务端
一面
1.lua中深拷贝
2.应用题1:玩家在地图中移动,地图中有很多城镇,玩家需要实时获取离他最近的城镇?
均匀网格,空间换时间,将地图按照一定的间隔进行分割,然后我们就可以用坐标来定位当前的格子
3.应用题2:
假设一把游戏中有32个玩家,每个玩家有100个小兵,那么所有玩家控制自己所有的小兵向地图中心投掷手雷,手雷爆炸会有伤害跳字,假设他们是同时投掷的,那么这段跳字的时间就会很卡,怎么优化?
对象池、分帧处理
4.算法:在有10000名玩家的排名榜中根据自己的积分找到自己的排名,现在排名榜是乱序的
5.应用题:假设现在玩家身上有光环效果,它的持续时间是10秒,现在每隔1秒会在玩家周围半径10米给小白上buff,假设buff会叠加,我们应该怎么减少数据包的数量(目前直接不优化直接发包的话一共会发10个数据包)?
只需要在特定的时间给客户端发包,告诉客户端进行表现上的处理,同时自己根据时间去预测效果的持续时间和叠加层数。如果预测失败,服务端自然会发包去修正。
也可以发增量包,去减少每一个包的数据量,减少带宽压力。
6.状态同步与帧同步的概念、区别及使用场景?
这里概念有点忘记了。。。
状态同步:服务器是权威,大部分游戏逻辑都在服务端去计算(比如角色移动,技能判断),并将计算结果(位置、血量、技能状态)同步给全部的客户端。客户端只负责表现这一块。
状态同步适用于:延迟容忍高、安全性高、需要处理大量玩家交互和复杂逻辑的游戏
帧同步:客户端仅仅向服务器发送操作的指令(如移动、攻击),服务端收到指令后转发其他客户端,各个客户端根据相同的指令序列独立计算游戏逻辑,确保结果一致。
帧同步适用于:要求低延迟和高操作响应(moba、fps),需要同步大量游戏单位的游戏(rts)
总结
一面的时候我问了一下hr我这次面试存在的问题,主要是简历上的一些关键词无法很好地表达。
面试官挺好的,就是我太菜了。
乐易_客户端
一面
1.推理题1:
李先生邀请其他三对夫妻开part,
1.夫妻之间不能握手
2.李先生问了其他7个人,握手次数都不一样
请问李先生握手多少次?
2.推理题2:
大马 :3
中马: 2小马:0.5要求全部马一共100头, 运完粮食100斤
3.推理题3:
100个人,每个人都戴帽子,场上至少有一顶黑帽子
每个人只能看见其他人的帽子
主持人问谁是黑帽子,问了四次才有人举手
4.算法题:k条链表合并
5.lua 元表,_Index, _newIndex 有啥用?
6.c++ vector 和 list区别?
甚至没有反问....
总结
推理题实在没有训练过,简直惨不忍睹,并且思考时间有点长了,下回遇到这种题目5分钟想不出来了直接让面试官切下一种题型了。