头图

2023 年开年,一款名为《鹅鸭杀》(Goose Goose Duck)的社交游戏异军突起,不仅吸引了很多萌新玩家,还让各大平台的知名游戏主播们沉迷其中,与粉丝们一起夜夜开黑。

《鹅鸭杀》的玩法与太空狼人杀非常相似。在游戏中,玩家分为三个阵营:好人(鹅)、坏人(鸭)、中立(其他鸟类)。鹅与鸭的对立角色很好理解,而中立角色千奇百怪,有几十种角色,比如获得被害鹅的尸体即可获胜的“秃鹫”、生存到最后即可获胜的“猎鹰”等,其中还有个“鹈鹕”角色,可以把其它玩家吞到肚子里,这些玩家仍然可以发言,但只有他们自己和鹈鹕能听到。所以还会出现一堆人在鹈鹕肚子里“开演唱会”的搞笑场景。

鹅鸭杀游戏用户活跃数据

目前,这款游戏已吸引大量玩家。根据 SteamDB 的数据(如上图),每天的玩家峰值至少有 55 万人。而且,这款游戏已经冲进 Steam 平台热销榜单的前五名。虽然这样的热度不易复制,但它的玩法场景却可以基于声网 SDK 轻松实现,甚至做出一些差异化的创新。

浅析鹅鸭杀的实现原理

其实《鹅鸭杀》的玩法与太空狼人杀相似,根据声网的经验来讲,实现起来并不困难。我们先来分析一下游戏中最常见的互动场景:

①任务探索环节:玩家共有 16 人,在地图中走近时能语音交流,走远后语音音量减弱直至消失。玩家在地图中,处于不同房间的人,听不到对方的声音。
②投票环节:开会投票时,所有玩家不论在地图中什么位置,都可以听到对方的声音。
③被鹈鹕吞掉:游戏进行中,如果有玩家被鹈鹕吞掉,则会被拉入 RTC 概念中的“子频道”。在“子频道”中的用户彼此可以听到对方的声音,子频道之外的则无法听到。在鹈鹕被“剖腹产”之后,玩家退出子频道,恢复与其他玩家的语音连麦。实现方法,我们稍后细讲。

鹅鸭杀游戏场景
图源自 Steam

以上这些语音互动的场景,都可以通过声网 RTC SDK 来实现。所有玩家在加入游戏之后,会进入同一个大频道,互相可以听到对方的声音。在游戏地图中,每个玩家都有一个位置信息,当玩家们靠近的时候,可以根据位置信息的变化来调整语音的音量,从而实现听觉上的“距离”感与沉浸感。
如果有玩家被鹈鹕吞掉,这些玩家与鹈鹕会进入一个子频道,子频道中的玩家可以互相听到彼此的声音。当鹈鹕被刀了,这些玩家相当于退出了子频道,就能正常与大频道中的其他玩家语音互动。 
另外,在游戏过程中,还会有刀人、投票、移动角色等游戏指令操作。这些都可以通过信令消息系统实现。

如何快速实现

这样来看,实现一个《鹅鸭杀》类的产品,并不复杂。如果我们使用声网 SDK 来实现,技术架构如下图所示:

图片

**首先所有的游戏指令操作,开发者可以基于自己的信令系统来实现,也可以通过集成声网 RTM(Real-Time Messaging) SDK
来实现**。根据声网的经验,狼人杀类游戏中的信令消息对延时的要求并不高。通常情况下,声网 RTM SDK 的延时小于 100ms,完全可以满足《鹅鸭杀》的场景需求。 

而**游戏中的语音互动功能,则可以基于声网 RTC SDK
快速实现**。我们以语音互动为例,如果基于声网 SDK 来实现,API 的调用逻辑如下:

a.第一步加入游戏房间时,初始化 IRtcEngine

b.由于我们的游戏是需要连麦互动的,所以第二步是设置 ChannelMediaOption 的参数为 LIVE_BROADCASTING,进入连麦模式;

c.第三步调用 joinChannel,让所有玩家加入同一个频道,在这个大频道中,玩家可以进行连麦;

d.游戏结束时,调用 LeaveChannel 退出频道,语音的互动也就此结束。

除此之外,《鹅鸭杀》游戏中还有一些特殊的场景,对语音互动提出了额外要求:

1、带物理墙的范围语音 

用户之间如果有墙,声音不能直接穿墙,但是可以从门绕过(总路程小于范围)。对此,你可以通过调用 setZones 设置隔声区域和声音衰减系数。当音源(可以为用户或媒体播放器)跟听声者分属于音障区域内部和外部时,会体验到类似真实环境中声音在遇到建筑隔断时的衰减效果。 

2、语音音量根据玩家在游戏中的距离变化

这个功能实现也比较简单,因为声网 SDK 支持空间音频功能。通过设置 SpatialAudioParams 中的 enable_doppler 参数开启多普勒音效,在声源和接收方发生相对位移的情况下,接收方会体验到明显的音调变化。
 
3、回声与降噪

《鹅鸭杀》在设置中是支持回声消除与降噪功能的。而如果我们要开发支持移动端的《鹅鸭杀》这两个功能必不可少。因为很多移动端的用户可能会在多种环境中进行游戏。 

声网 SDK 内置AI 回声消除,智能适应各类环境,实现精准音源分离,从混合的近端信号中消除不必要的远端信号,保留近端人声发送到远端,全面消除回声,实现高保真音频体验。内置的 AI 降噪,可有效消除相关咳嗽声,更好地保障线上互动场景中主播与用户的互动交流体验。 

4、支持在本地端调节远端玩家的语音音量

这是由于鹈鹕这个特殊角色设置的。每次鹈鹕吃掉玩家后,玩家为了让鹈鹕听不到其他人的声音,都会在肚子里放音乐或大声说话。增加这个设置,可以让鹈鹕玩家调节其他人的音量。这个功能,我们可以通过调用 adjustPlaybackSignalVolume 来实现。

声网鹅鸭杀解决方案优势

  • 音质优先,提供沉浸游戏体验

声网支持 48kHz 全频带采样,还原声音高保真度,为玩家提供高清音质体验。通过声网自建的软件定义实时网,能够实现全球端到端延时中位数 76ms,国内 200ms 延时达标率 99%,适合 MOBA、MMORPG、FPS 等竞技类游戏。

  • 兼容主流游戏引擎

对于游戏开发者来说,在开发游戏的过程中经常需要接入一些行业主流的游戏引擎,声网的游戏语音解决方案深度兼容 Unity、Cocos、Unreal、Spritekit 等主流游戏引擎,帮助游戏开发者在接入游戏引擎的同时快速接入声网的音视频服务。

  • 轻量、低功耗,适配大部分终端

声网为游戏语音提供的 SDK 拥有小包体、低功耗的特点,CPU 占用低于行业平均 20%,且已经适配 30000 多款终端设备,适用于东南亚、中东北非等海外用户移动设备种类繁多且性能较差的地区。

  • 服务覆盖全球

SD-RTN™是声网专为实时互动而创建的软件定义实时网,综合考量了不同地域特点、跨国跨洲链路质量、不同网络类型、不同终端类型、不同业务场景的特征,分别适配不同的传输控制策略,打造一张真正高可用、高可靠、高质量、超低延时的全球实时网络,即使在面对超大规模实时互动场景时,也能保证甚至优化音视频质量和延时。

  • 丰富的美声、变声音效

在高音质的基础上,声网还能提供丰富的美声音效,进一步提升声音的表现,达到声音美化或改变音色的效果。声网拥有多种变声音效,例如小萝莉、小男孩、大叔、猪八戒、绿巨人等音效,让你在游戏中的语音更具趣味性,也为游戏语音场景提供更多新颖玩法。同时,最新版本 SDK 还支持开发者自定义变声效果,可以给玩家带来更丰富的游戏体验。

  • 市占率 80%带来的丰富实践经验

狼人杀类游戏在近几年始终热度不减,并衍生出了许多变种玩法,比如太空狼人杀与鹅鸭杀。声网在狼人杀诞生之初就开始为各厂商提供音视频互动服务,市场上约 80% 的狼人杀类 App 均采用了声网 SDK 来实现语音互动。我们在社交游戏领域具有丰富的实践经验,能提供稳定、可靠的技术服务。

最后,如果大家对声网场景解决方案感兴趣,希望进一步了解如何集成、实现鹅鸭杀等社交游戏场景,欢迎扫码留下联系方式,我们将会与你联系。

图片

现注册声网 SDK,可获得每月免费 10000 分钟使用额度。如在开发过程中遇到疑问,可在声网开发者社区与官方工程师交流。

RTE开发者社区
647 声望966 粉丝

RTE 开发者社区是聚焦实时互动领域的中立开发者社区。不止于纯粹的技术交流,我们相信开发者具备更加丰盈的个体价值。行业发展变革、开发者职涯发展、技术创业创新资源,我们将陪跑开发者,共享、共建、共成长。