呼叫幾個介面,快速實現社交遊戲“劇本殺”

聲網Agora發表於2018-08-15

“劇本殺”是與此前火爆的“狼人殺”十分相近的社交遊戲。本文將首先分析實現“劇本殺”App所需功能,然後講解通過聲網 SDK 中的介面如何實現語音群聊、私聊、變聲等。

資料說話“劇本殺”有多火?

近期,有一類糅合了推理、角色扮演與社交的遊戲,開始迅速躥紅,那就是“劇本殺”。它的玩法與綜藝節目《明星大偵探》如出一轍,只是將整個場景從線下搬到了線上,讓任何玩家都能參與進來。就像“狼人殺”一樣,“劇本殺”也是從線下派對、桌遊店,躍至應用商店,並悄然興起的一類社交遊戲。而且根據目前的應用下載與投資熱度來看,似乎大有複製“狼人殺”增長的趨勢。

呼叫幾個介面,快速實現社交遊戲“劇本殺”

目前比較熱門的“劇本殺”App 有5個。根據 AppAnnie 8月初的資料顯示,其中一款App“我是謎”曾進入 App Store 社交類下載排名前50。根據36kr 此前的報導,“我是謎”App 端目前日活過萬,平均每天開局超過 2000 場。另一款 App“百變大偵探”上線兩週後就積累了2萬使用者。

呼叫幾個介面,快速實現社交遊戲“劇本殺”

根據我們的資料監測顯示,劇本殺大多釋出於今年3月,從7月初開始流量暴增,下圖顯示了某個接入聲網 SDK 的劇本殺應用的語音通話量趨勢。

呼叫幾個介面,快速實現社交遊戲“劇本殺”

什麼是劇本殺

劇本殺確實很火。但是,可能沒玩過的人還是一頭霧水,什麼是“劇本殺”?

“劇本殺”源自線下游戲“謀殺之謎”,這是一類 LARP (實時角色扮演)遊戲。在劇情的推動下,幾個玩家會共同經歷一段故事,每個玩家都會扮演故事中的一個角色,而每個故事背後都隱藏著一個祕密或一個凶手。玩家們通過互動交流、探討、交換線索,共同揭開這個祕密或發現凶手。

這個遊戲的“線上化”與狼人殺相似,都是實時語音技術發展驅動的創新場景。玩家可以不用再去線下桌遊店組局,隨時隨地線上上就可以開局玩起來。在遊戲過程中,玩家可以通過語音群聊,將自己得到的線索公開給所有玩家,也可以像交換情報一樣,通過私聊轉述給個別人。

業務拆解:如何實現“劇本殺”

劇本殺與狼人殺非常相似,都是社交遊戲。不同的是,狼人殺遊戲全程都處於群聊模式,而劇本殺有時會需要小範圍私聊。

在劇本殺遊戲過程中,會包括幾個環節:

  • 探索階段:閱讀劇本,獲取線索

  • 蒐證環節:群聊、私聊交換線索

  • 投票階段:你懂的

其中可能會出現多次探索、蒐證,這完全取決於劇本內容的複雜程度。由於劇本屬於內容範疇,就算再複雜,也只是玩家多用到幾次蒐證、投票、私聊功能而已。如果我們玩一個最簡單的劇本,而且會用到所有功能,那麼遊戲流程基本是這樣的:

呼叫幾個介面,快速實現社交遊戲“劇本殺”

這個產品的功能並不十分複雜,主要包括:

  • 業務系統:用於控制劇本程式、遊戲流程、投票等。

  • 訊息系統:用於傳送文字訊息。

  • 語音群聊:所有玩家可以在同一個語音聊天室中對話。

  • 語音私聊:在遊戲過程中,兩個玩家可以脫離群聊,進行一對一語音通話。

如何快速實現?

如果按照最基本的劇本殺功能來開發的話,App的架構如下圖所示:

呼叫幾個介面,快速實現社交遊戲“劇本殺”

我們在前文中已經簡要分析了劇本殺的遊戲流程與核心功能。根據核心功能來看,只需要基於聲網直播 SDK,呼叫幾個介面即可實現劇本殺。呼叫邏輯如下圖:

呼叫幾個介面,快速實現社交遊戲“劇本殺”

介面呼叫邏輯:

  1. 第一步加入遊戲房間時,呼叫JoinChannel加入頻道(語音群聊)

  2. 加入房間後設定ChannelProfile為0,進入通訊模式

  3. 加入muteLocalAudioStream與muteAllRemoteAudioStreams以實現麥克風靜音與揚聲器靜音功能

  4. 蒐證環節,通過LeaveChannel與JoinChannel以及不同的ChannelName實現玩家在群聊與私聊之間的切換

  5. 遊戲結束時,呼叫LeaveChannel退出頻道

為了幫大家快速實現以上這些基本功能,我們已經在聲網開發者中心提供了更詳細的開發文件及示例程式碼,點選「閱讀原文」即可獲得。

如何實現觀戰?

劇本殺目前對於一些使用者來講還是新生事物。根據媒體報導,為了讓更多使用者在上手之前進一步瞭解玩法,有些產品已經或計劃引入觀戰模式。即在幾個玩家遊戲過程中,其它使用者可以進入房間觀戰,能看到同樣的劇情,聽到所有人的交流,但無法發聲,無法參與而已。

其實房間中的觀戰使用者與玩家的區別就是“只能聽,不能說”。所以實現起來很簡單。只需要在觀戰使用者加入頻道後,呼叫muteLocalAudioStream進行本地靜音即可。

怎麼變聲?

劇本殺獨特之處在於角色扮演,而且如果不將自己代入角色,體驗也會變差。不管你是小鮮肉還是女神,到了劇本殺裡都有可能去扮演富豪馬老闆、閒人馬大姐或快遞劉小哥。如果加入變聲器,更容易角色帶入,語音交流會更有趣。

要實現變聲,需要調整語音的音調、混響,還要保證音質。我們通過三個介面可以自由調整變聲效果:

  • 設定本地語音音調:setLocalVoicePitch

  • 設定語音音效均衡:setLocalVoiceEqualization

  • 設定本地音效混響:setLocalVoiceReverb

大家可以自己調節引數,達到想要的效果。當然,我們也可以提供一些推薦的引數設定。

好了,以上都是實現思路,有人或許想問“是否有程式碼”?當然有。我們已在 Github 上傳了一套示例程式碼,供大家參考複用。這套示例 Demo實現了劇本殺的語音聊天部分的功能,大家在加入選劇本、閱讀劇本、玩家列表、線索收集或其它能體現出產品差異化的功能後,即可形成完整的App。

還有哪些問題需要考慮?

至此,我們已經完成從無到有的過程,但是從1 - 100,中間還有很多的問題需要解決。從表面來看,劇本殺既不是常見的社交產品,也不算常規的遊戲。就像“我是謎”這款產品給自己的定義一樣,它是“內容的遊戲化社交”。而從功能來看,劇本殺與狼人殺、語音聊天室很相似。所以不難發現,劇本殺的開發需要面對這些問題:

應對業務保障帶來的壓力:狼人殺、直播答題在風口崛起時,都面臨過業務暴增導致服務不可用。劇本殺的一些app目前同樣面臨這些問題,產品一夜爆紅,如果不能快速擴容,會導致使用者流失,面臨巨大的損失。

可用度:一場劇本殺遊戲一般需要1.5小時到4個小時,所以使用者高峰會集中出現在晚上、週末,通話併發數會出現瞬間攀升的情況,如果服務架構沒有承載海量併發的能力,那就會出現無法通話、通話卡頓的現象,甚至服務掛機。聲網Agora 在全球部署的實時虛擬通訊網SD-RTN,通過分散式架構,彈性擴容,可以應對客戶業務量暴增。智慧路由演算法,保證選擇暢通的傳輸線路,即使骨幹網路故障,也能保證業務正常進行。

時延:根據ITU-TG.114標準,單向通話延時大於150ms就可受到通話連續性影響,一般情況下最大可容忍時延為400ms。大於這個時延,基本不可用。

音質:回聲、噪聲、音質,都會影響使用者的體驗,導致聽不清。提高音質,需要針對多種機型和系統做編解碼的調優,開發工作量巨大。聲網Agora的專利編碼,能夠有效的抑制回聲和噪聲,並且能提供44.1kHz的超寬頻音質,讓玩家擁有沉浸式體驗。

卡頓:這會丟失關鍵資訊,這通常是由丟包引起的。這不僅涉及到編解碼調優,還要對端到端的傳輸做優化。聲網Agora的專利編碼器,是面向網際網路高丟包率狀況下,進行實時傳輸而設計的,在丟包率50%時,仍然能夠通話。


在9月7日 - 8日,由聲網、極客邦科技、AllThingsRTC、CSDN 主辦的 RTC 2018 實時網際網路大會上,社交遊戲技術專場將邀請Cocos 技術負責人、PlayGame 24x7 等遊戲行業一線公司分享海內外社交遊戲技術、行業經驗。點選報名

相關文章