浅析鹅鸭杀中服务端的技术实现和要点

在朋友的介绍下,我下载了这款游戏。由于之前玩过《Among Us》,我本以为这款游戏不会达到正宗的太空狼人杀的水平(毕竟是免费的)。但实际游玩后,我被它更加丰富的设定和玩法所吸引。接下来,我将简要分析一些该游戏功能的实现方式。

前置:游戏介绍

1、基础规则:平民为鹅,杀手为鸭子,在地图自由活动期间鸭子可以直接使用刀(武器)攻击人,刀人有冷却CD,鹅被刀之后会留下尸体。

2、鹅(好人阵营)发现尸体可以按R报警,之后所有人直接开会讨论,组织轮流发言讨论谁是鸭子(坏人阵营),发言完毕之后可以投票,让一名玩家出局。

3、在活动地图上面会有很多任务点,好人可以通过做任务来完成任务进度以取胜。鸭子可以做破坏任务来造成场面混乱,或者是做好人的任务混淆视听。

4、每个地图上都有一个公共报jing点(地图上小喇叭位置),玩家可以通过到此处摇铃组织开会,开麦环节会进行讨论,点击herbert将凶手投出去。

5、胜利方式:所有坏人/鸭子出局,或所有任务完成,游戏结束鹅阵营获胜所有好人/鹅出局,游戏结束鸭子获胜。

6、除了鹅和鸭之外还可以有一些中立角色来平衡双方势力,中立角色的获胜方式具体由所选择角色来决定。(如呆呆鸟需要被公投出局来取胜) 为自己打工!

1. 登录、房间

       鹅鸭杀拥有一个有趣的设定:当玩家登录后设置语言时,同时也会设置地区。此时,匹配查询到的房间也会是同地区的。这意味着鹅鸭杀的登录架构是全球同服的,根据不同地区的网络路由到尽量近的登录服务,并且数据存放在一起。
       在按照类型搜索房间时,玩过鹅鸭杀的玩家可能会注意到一个明显的感觉:在同一个房间内,如果玩家不准备,那么他们更容易被推荐和进入。此外,等级低的玩家创建的房间往往比高等级玩家创建的房间进入速度慢。
       对于每个玩家搜索到的房间,都是按照人数从多到少进行排序的。以上这些都是排序规则的实现方式。

2. 语音范围

鹅鸭杀中,玩家发言只能让周围的玩家听到,如果被鹈鹕吃掉或者隔墙,又有不同的规则。这个实现原理比较简单,假如设置音频接收距离的最大范围为 R,若发声者离收听者的距离为 r,则:

  • 当 r < R 时,表示发声者在正常范围内,收听者可以听到声音;

  • 当 r ≥ R 时,表示发声者超出了最大范围,收听者无法听到声音。

    image.png

3. 动作判定和避免外挂

      这类游戏通常采用长连接技术,即用户每个动作都实时发送到服务器,由服务器广播给每个玩家其他玩家的操作和系统通知。这一过程中,游戏采用类似LOL的反外挂机制,即由服务器计算动作并计算结果后再广播给每个玩家。不同视野和角色会接收到不同的消息。举个例子,当网红角色死亡时,网红玩家会收到死亡消息并展示相应的动画,其他鹅玩家会接收到死亡提示,但鸭子和中立玩家则不会接收到任何消息。这种机制确保了无论外挂如何介入,都无法窃取和改变消息。

4. 限流

156611672837595_.pic_hd.jpg
    最近,晚上 8 点以后,鹅鸭杀客户端的网络情况会变得有些卡顿。虽然一开始可能会认为这是加速器出现问题,但重启游戏后会发现系统提示“Rate exceeded”。这是由于玩家数量过多,超过了服务器承压上限,无法满足所有请求,最终拒绝服务。 鹅鸭杀为此做了大量准备,对服务的网络和性能进行了相对完善的压力测试。当玩家数量和请求压力超过阈值时,采用动态拒绝请求的策略,以确保已开局的玩家的游戏质量。

5. DDOS 攻击

2023.1.10 日上午,鹅鸭杀官方于Steam论坛上发布了公告,公开其服务器自2022年12月14日以来被断断续续的 DDoS 攻击,DDoS攻击在今年一月份开始变得更加强大,从最开始影响服务器语音和流畅度直到导致了本次服务器的瘫痪。
image.png

什么是 DDoS 攻击?

拒绝服务 (DoS) 攻击是一种恶意尝试,旨在影响合法最终用户对目标系统(如网站或应用程序)的可用性。通常,攻击者会生成大量数据包或请求,最终使目标系统不堪重负。而DDos,则是分布式的拒绝服务。

DDOS的攻击成本是很高的,一般很小的企业和没有影响力的应用,很难被盯上。但像鹅鸭杀这样突然火爆的游戏,是一定有“友商”、“同行”来找麻烦的。因为成本高的背后,是需要更高成本地进行防护。

DDOS的防护原理是这样的:使用前置服务器(超大规模)来吸收和缓解攻击,通过算法过滤僵尸请求,将正确的用户请求转发给后台服务器。核心就是区分正常和异常流量,这需要非常高的网络安全技术水平。像阿里云的高防,都是与运营商进行深度合作的,能够在第一时间封禁IP和网络请求。

在经历了长时间的维护更新后,《鹅鸭杀》官方今天早上(1月12日)宣布服务器已重新启动。

猜你喜欢

转载自blog.csdn.net/w_monster/article/details/128593269
今日推荐