花椒直播《百萬贏家》新增了「組隊開黑」功能。四人組成團隊一塊兒來挑戰答題,答題規則是這樣的:服務器
用戶發起組隊邀請,好友可經過隊伍編號加入,並每人額外得到一張復活卡網絡
用戶組隊成功後,開始進入節目答題架構
只要隊伍中有一人經過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問答版塊與聲網工程師交流。