跳转至

提前学提前练

网易二面 高级开发

看着更像是服务端了

问题

网易游戏二面   高级开发(30k-45k) 提到的场景题如下 1.100+玩家同屏释放技能,客户端上报位置/动作频率20Hz,如何设计后端同步机制保证流畅性?

2.玩家A在50ms延迟下释放指向性技能,目标玩家B已移动出范围,但A客户端显示命中。如何设计仲裁逻辑确保所有客户端结果一致?

3.开放世界游戏地图需支持万人在线,如何设计动态分区(如主城拥挤时自动切分地图实例)?

4.晚间高峰时战斗服CPU飙升至90%,如何10秒内自动扩容并保证进行中的战斗不掉线?

5.玩家在副本中突然断线,需5分钟内重连恢复战斗状态。如何设计轻量级持久化方案(避免频繁写库)?

6.玩家A向B发起跨服交易,A扣款成功后B所在服宕机。如何保证款项不丢失?设计补偿流程

7.客户端上报的技能冷却时间异常缩短(如从10s变为8s),后端如何在不依赖客户端时间的情况下实时识别并拦截?

8.黑客通过篡改同步帧包实现“瞬移”或“无后座力”,列举3种后端检测算法

9.每秒千名玩家积分变动,需实时更新全服Top100榜单。如何设计存储结构与更新策略(要求延迟<1s)?

10.向全服10万在线玩家推送奖励通知,如何避免广播风暴?

11.玩家通过工作室小号刷金币,导致经济系统崩溃。设计从行为检测到调控的全链路方案。

12.原有单进程游戏服务器(逻辑+DB耦合)需改造为微服务架构,如何拆分服务?

13.不停服更新战斗公式逻辑,如何保证更新时进行中的战斗不受影响?

答案(个人回答,不保证全对)

1 回答 状态同步加快照插值 aoi分层同步 数据压缩 lod远近。数据重要性按不同频率发送数据 属性数据同步太多可以放网络层进行同步,减少主线程压力 帧同步+状态同步技能 一个技能 中间操作部分同步指令 结果用状态同步同步属性值避免作弊

2回答 基于服务器回硕验证。服务器存玩家移动轨迹或者其他 当 a释放技能时候服务器根据技能时间回溯到对应位置进行判断然后同步给前端进行强一致性同步

3回答 分层分片 多线程处理 无缝大世界方案处理

4 回答 容器化加状态分离

5回答 进行状态快照 进行一定时间内的缓存 当玩家上线的时候如果在过期时间内重新把对象绑定到session

6回答 两段提交加异步补偿

7回答 服务器权威记时 异常检测

8回答 速度 运动轨迹。甚至物理引擎验证

9回答 redis short set

10回答 网关层 分片 根据玩家id 用不同网关进行广播 消息合并也是一种方法 让客服端5分钟一次进行拉取也行

11回答 行为检测 动态调控 有疑问的账户延迟到账 人工审核 加追踪日志进行资产追踪

12回答 参考skynet