手游中实时音视频的开发技巧与典型架构

在游戏社会化趋势的影响下,实时音视频逐渐广泛应用于多类游戏中,并在用户留存、用户活跃、防作弊、变现等角度为游戏带来价值。例如:

1.社交小游戏

游戏行业有个说法,游戏市场,腾讯、网易占80%,剩下20%留给其它公司瓜分。在这样的竞争环境下,小游戏给了很多游戏团队新的机遇。这类游戏有个特点,游戏玩法轻松,即开即玩,比如你画我猜、你唱我猜、连连看,他们更加注重社交属性。在加入语音后,简单的游戏更添趣味,社交元素更有利于用户活跃与留存。而且,小游戏不仅仅可以放在微信中,还可以在QQ、UC浏览器等环境中运行。

2.MMO类游戏


MMO在加入实时语音、文字消息后,玩家在自动寻路、自动打怪的过程中,也可以与好友语音聊天。通过实时语音,也可以让主播陪玩大R玩家,刺激变现。

3.棋类牌类游戏

在该类型游戏中,增加实时语音或实时视频,可以打造更加真实的场景。该类游戏始终面对着一个老问题,就是玩家作弊,一个人用两台手机加入同一个房间。在开视频后,就可以杜绝这种作弊现象。同时,通过视频,用户还可以察言观色,判断对家牌的好坏。

4.桌游类游戏

以狼人杀为代表的桌游类游戏都非常注重用户之间的交流,甚至有些游戏流程主要靠语言来推进。在实时音视频加入后,桌游网游化成为了现实。

5.FPS游戏


实时语音已经成为以吃鸡为代表的FPS游戏的标配功能。现在这类游戏有诸如小队语音、全图语音等不同模式。

6.在线抓娃娃

  • 在线抓娃娃从去年年底开始爆红。通过实时视频,让用户们足不出户也能玩线下抓娃娃。
    综上来看,实时音视频能为手游带来能价值呢?我们可以简单总结一下:
  • 提升游戏体验:以狼人杀这类游戏为例,如果靠发文字消息交流,这样的游戏效率和体验会变得极其差,利用实时语音则让游戏的体验更加自然。
  • 增加粘性,提升留存:现在很多游戏增加了挂机、自动化的功能,增加游戏直播或聊天,能让玩家边玩边聊。
  • 增强变现能力:在游戏中,针对大R玩家,可以允许他与主播连麦,提升VIP的体验。
  • 反作弊:在棋类牌类游戏中,通过开启视频,可以杜绝一人多台手机等作弊现象。在吃鸡游戏中,主播会把摄像头对准自己的手和键盘,来证明自己不是在靠外挂。

实时音视频的技术难点

首先实时音视频自身的技术难点与其处理流程相关。其处理流程如下图所示:


实时音视频的技术本身有很多难点,而游戏自身又会给它提出更多的要求。我们来一步步分析。实时音视频本身的难点包括:

首先是低延时。从行业标准来讲,端到端的延时如果大于400ms,两人对话没有办法正常进行。400ms就是一个红线。但是并不等于400ms就可以使用。在一些激烈对战的场景中,比如团队副本,指挥语音延时大,呼喊着让队友加血、嘲讽,但对方反应总会慢半拍,结果就是团灭。声网在实时音视频方面可以做到端到端平均76ms的低延时传输。

另一方面,路由设备、网络信号强弱、用网高峰等因素,总会引起丢包和抖动。各位做游戏开发肯定对这种情况也很熟悉。在实时音视频通话中,需要有相应的补偿算法来抗丢包、抗抖动,保证通话的流畅度和低延时。声网可以做到在50%丢包时,仍能正常通话,且不影响用户体验。不过这样的丢包率通常不会出现,因为在在这样的网络情况下,可能普通游戏也没有办法正常进行。所以,只要网络状况能支持游戏正常进行,声网的音视频通话就可以正常进行。

第三,网络的高并发、高可用。在高峰时间段,同一个频道内的高并发,多个频道高并发这种情况都需要开发者做出预案。声网通过分布式架构,智能路由算法,保证99.9%的连通率,99.99%的可用度。

最后,在音频方面,需要有降噪和回声消除处理。回声是指说话者能听到自己的声音,噪声很多时候是设备造成的或者环境音。而在视频方面,常见问题有绿屏、花屏、黑屏,这些通常是由编码器和设备适配造成的。对于这两方面问题,我们都需要通过编码算法优化和设备适配来解决。声网有独家专利的编码算法,设备适配达到5000多款机型,而且支持的机型还在不断增多。

游戏中的实时音视频

在解决基本的实时音视频技术难题后,将其应用于游戏中,还需要我们满足一些额外的要求。首先,游戏体验是最重要的,任何新增的功能都不能影响游戏体验。所以,实时音视频在游戏中满足以下要求:

开启/关闭音视频功能的瞬间,不会导致游戏卡顿,游戏本身的音效音量忽大忽小。

不能因为增加实时音视频而大幅增加功耗,过多占用内存、CPU等资源,导致游戏卡顿、降帧。

带宽占用要小,不能导致游戏延时升高。

SDK包体积要小,否则会影响游戏的分发。声网AMG SDK可以做到1.1MB的体积。

要做到盲源分离,社交、MMO类游戏,玩家通常会开外放功能,环境音、甚至手指击打屏幕的声音,都会变成噪音,传到对端后放大,导致玩家对话的声音听不清。

灵活性,音质、画质与流畅度,在带宽有限的情况下是矛盾的,开发者需要有在音质与流畅度之间灵活调整的空间。

结合不同的游戏场景,游戏中的实时音视频还需要举办一些特殊功能,比如:

声音美化:如变声功能,声网开放了声音美化的接口,通过改变参数,开发者可以自定义变声效果。

听声辨位:玩家语音通过我们接口也可以实现方位感和距离感,一般会应用于在FPS类游戏中,我们也曾详细分析过其中的原理。我们曾分享过声网自己的接口实现

游戏实时音视频的典型技术架构

前面我们分享了很多场景,包括连麦游戏、语音电台、视频麻将、团战语音等等,但概括来讲,从技术架构上可以分为两种:群聊和直播。


我们先来看一下群聊的架构:假设有3个玩家参与群聊,每个玩家的音视频流都会实时传输到我们的SD-RTN实时通信网络,再通过它传到对端。同时,我们的信令消息系统,也支持玩家发送文本消息,进行邀请连麦、接受连麦、排麦等控制。


上图是直播架构。主播端发出音视频流,先传到SD-RTN,可以经过转码,变成rtmp流通过CDN传到普通玩家。也可以经过SD-RTN直接传到VIP玩家,VIP玩家可以和主播连麦互动。与前面一样的,信令消息系统可以支持发送文本消息,控制连麦请求等。

通过声网AMG SDK可以快速实现游戏中的实时音视频功能。AMG SDK的优势包括:低延时、自研回声消除与降噪、低功耗等。欢迎访问Agora.io官网了解更多。