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