花椒直播《百万赢家》新增了 "组队开黑" 功能.四人组成团队一起来挑战答题,答题规则是这样的:
用户发起组队邀请,好友可通过队伍编号加入,并每人额外获得一张复活卡
用户组队成功后,开始进入节目答题
只要队伍中有一人通过 12 题考验,队伍平分该队员获得的奖金
接下来,本文会分析一下,组队答题的实现机制及难点.
现在每道题 3 个选项,假设一个人随机选择答案,在百万赢家的机制下,他有 3 次复活机会,最后一题不能复活.那么他的通关概率是:万分之 0.5.
在组队机制下,小队内成员每人 4 次复活机会,分别答题,根据答题结果来判断,只要有人答对,整队进入下一轮.整队的通关概率:万分之 6,通关概率提升了 12 倍.简单的数学问题,小队内人数增加到 6561 人,通关概率就是百分之百.
从技术上来说,只需要在已有的答题机制上增加以下三点,就可以实现组队开黑:
组队
同步小队内答题结果
根据队内答题结果判断,小队是否进入下一轮.
本质上,这只是一个增加概率的数学问题,与传统游戏语音组队开黑,依靠团队力量取胜是有区别的.从运营上来看,是新一轮的拉新活动.并不能算得上是组队开黑.
组队开黑应该具备什么特征呢?
小队要能沟通.答题时间仅仅 10s,靠文字是不可能沟通的.目前玩家自己的智慧是,通过电话连线开黑.
要有团队提交答案的机制.由于群体的智慧,小队的答案,正确率应该是高于个人的.有以下几种方案可选:
语音沟通完,队长提交答案
组员各自勾选答案,同时语音沟通,队长根据组员提交的答案,做最终决定
组员都能答题,先选择的答案被锁定,可修改,按最终选择的答案提交.
组员语音沟通,商量答案,各自答题.
组队语音开黑的难点及解决方案
1. 组内成员之间的画面和答题同步
若主持人画面通过 CDN,直接分别发送到队内成员,由于 CDN 延时不可控,成员的画面会不同步.因为画面和答题计时必须同步,这会导致队内的答题不同步.
声网的解决方案稍有不同.主持人的画面通过 CDN 发送到声网的实时虚拟通信网 SD-RTN,再分别发送到队内成员,由于 SD-RTN 延时可控,且延时为几百毫秒,因此成员之间的画面,答题是同步的,即使彼此之间略有差异,但几乎无感知.
2. 主持人说话作为 BGM 与组内语音沟通,不能互相影响.
开启,关闭实时语音的瞬间,或者在通话的过程中,不能影响 BGM 也不能让 BGM 影响通话.更不能导致 App 卡掉或闪退,影响答题.而且音量要平滑过渡,不能声音忽大忽小.
声网提供独立的 API,判断频道内是否有人说话.当有人说话时,可将 BGM 音量自动调小;停止说话时,BGM 音量自动升高.整个过程过渡平滑,自然.
3. 语音通话要低延时.
现在的规则,答题时间只有 10s,如果语音通话是高延时,不但不能正常沟通,还会影响答题.
4. 高并发
直播答题的高并发有其独有的特点,时间一到,近百万观众涌入一个频道,对任何服务都是一个巨大的考验.
声网从最初架构设计上就是面向海量高并发的,通过全球部署分配服务器,边缘服务器来就近接入用户,骨干网络拥塞,甚至故障时,通过智能路由自动避开,以此保证服务的高可用和海量并发承载能力.
来源: https://juejin.im/post/5a61c512518825733c1421ba