2023 年开年,一款名为《鹅鸭杀》(Goose Goose Duck)的社交游戏异军突起,不仅吸引了很多萌新玩家,还让各大平台的知名游戏主播们沉迷其中,与粉丝们一起夜夜开黑。
《鹅鸭杀》的玩法与太空狼人杀非常相似。在游戏中,玩家分为三个阵营:好人(鹅)、坏人(鸭)、中立(其他鸟类)。鹅与鸭的对立角色很好理解,而中立角色千奇百怪,有几十种角色,比如获得被害鹅的尸体即可获胜的 “秃鹫”、生存到最后即可获胜的 “猎鹰” 等,其中还有个 “鹈鹕” 角色,可以把其它玩家吞到肚子里,这些玩家仍然可以发言,但只有他们自己和鹈鹕能听到。所以还会出现一堆人在鹈鹕肚子里 “开演唱会” 的搞笑场景。
目前,这款游戏已吸引大量玩家。根据 SteamDB 的数据(如上图),每天的玩家峰值至少有 55 万人。而且,这款游戏已经冲进 Steam 平台热销榜单的前五名。虽然这样的热度不易复制,但它的玩法场景却可以基于声网 SDK 轻松实现,甚至做出一些差异化的创新。
其实《鹅鸭杀》的玩法与太空狼人杀相似,根据声网的经验来讲,实现起来并不困难。我们先来分析一下游戏中最常见的互动场景:
任务探索环节:玩家共有 16 人,在地图中走近时能语音交流,走远后语音音量减弱直至消失。玩家在地图中,处于不同房间的人,听不到对方的声音。
投票环节:开会投票时,所有玩家不论在地图中什么位置,都可以听到对方的声音。
被鹈鹕吞掉:游戏进行中,如果有玩家被鹈鹕吞掉,则会被拉入 RTC 概念中的 “子频道”。在 “子频道” 中的用户彼此可以听到对方的声音,子频道之外的则无法听到。在鹈鹕被 “剖腹产” 之后,玩家退出子频道,恢复与其他玩家的语音连麦。实现方法,我们稍后细讲。
以上这些语音互动的场景,都可以通过声网 RTC SDK 来实现。所有玩家在加入游戏之后,会进入同一个大频道,互相可以听到对方的声音。在游戏地图中,每个玩家都有一个位置信息,当玩家们靠近的时候,可以根据位置信息的变化来调整语音的音量,从而实现听觉上的 “距离” 感与沉浸感。
如果有玩家被鹈鹕吞掉,这些玩家与鹈鹕会进入一个子频道,子频道中的玩家可以互相听到彼此的声音。当鹈鹕被刀了,这些玩家相当于退出了子频道,就能正常与大频道中的其他玩家语音互动。
另外,在游戏过程中,还会有刀人、投票、移动角色等游戏指令操作。这些都可以通过信令消息系统实现。
这样来看,实现一个《鹅鸭杀》类的产品,并不复杂。如果我们使用声网 SDK 来实现,技术架构如下图所示:
首先所有的游戏指令操作,开发者可以基于自己的信令系统来实现,也可以通过集成声网 RTM(Real-Time Messaging)SDK 来实现。根据声网的经验,狼人杀类游戏中的信令消息对延时的要求并不高。通常情况下,声网 RTM SDK 的延时小于 100ms,完全可以满足《鹅鸭杀》的场景需求。
而游戏中的语音互动功能,则可以基于声网 RTC SDK 快速实现。我们以语音互动为例,如果基于声网 SDK 来实现,API 的调用逻辑如下:
第一步加入游戏房间时,初始化 IRtcEngine;
由于我们的游戏是需要连麦互动的,所以第二步是设置 ChannelMediaOption 的参数为 LIVE_BROADCASTING,进入连麦模式;
第三步调用 joinChannel,让所有玩家加入同一个频道,在这个大频道中,玩家可以进行连麦;
游戏结束时,调用 LeaveChannel 退出频道。
除此之外,《鹅鸭杀》游戏中还有一些特殊的场景,对语音互动提出了额外要求:
1、带物理墙的范围语音
用户之间如果有墙,声音不能直接穿墙,但是可以从门绕过(总路程小于范围)。对此,你可以通过调用 setZones 设置隔声区域和声音衰减系数。当音源(可以为用户或媒体播放器)跟听声者分属于音障区域内部和外部时,会体验到类似真实环境中声音在遇到建筑隔断时的衰减效果。
2、语音音量根据玩家在游戏中的距离变化
这个功能实现也比较简单。通过设置 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% 的狼人杀类 App 均采用了声网 SDK 来实现语音互动。我们在社交游戏领域具有丰富的实践经验,能提供稳定、可靠的技术服务。
最后,如果大家对声网场景解决方案感兴趣,希望进一步了解如何集成、实现鹅鸭杀等社交游戏场景,欢迎扫码留下联系方式,我们将会与你联系。
现注册声网 SDK,可获得每月免费 10000 分钟使用额度。如在开发过程中遇到疑问,可在声网开发者社区与官方工程师交流。