2023年開年,一款名為《鵝鴨殺》(Goose Goose Duck)的社交游戲異軍突起,不僅吸引了很多萌新玩家,還讓各大平臺的知名游戲主播們沉迷其中,與粉絲們一起夜夜開黑。
圖源自Steam
《鵝鴨殺》的玩法與太空狼人殺非常相似。在游戲中,玩家分為三個陣營:好人(鵝)、壞人(鴨)、中立(其他鳥類)。鵝與鴨的對立角色很好理解,而中立角色千奇百怪,有幾十種角色,比如獲得被害鵝的尸體即可獲勝的“禿鷲”、生存到最后即可獲勝的“獵鷹”等,其中還有個“鵜鶘”角色,可以把其它玩家吞到肚子里,這些玩家仍然可以發(fā)言,但只有他們自己和鵜鶘能聽到。所以還會出現(xiàn)一堆人在鵜鶘肚子里“開演唱會”的搞笑場景。
目前,這款游戲已吸引大量玩家。根據(jù)SteamDB的數(shù)據(jù)(如上圖),每天的玩家峰值至少有55萬人。而且,這款游戲已經(jīng)沖進(jìn)Steam平臺熱銷榜單的前五名。雖然這樣的熱度不易復(fù)制,但它的玩法場景卻可以基于聲網(wǎng)SDK輕松實(shí)現(xiàn),甚至做出一些差異化的創(chuàng)新。
淺析鵝鴨殺的實(shí)現(xiàn)原理
其實(shí)《鵝鴨殺》的玩法與太空狼人殺相似,根據(jù)聲網(wǎng)的經(jīng)驗(yàn)來講,實(shí)現(xiàn)起來并不困難。我們先來分析一下游戲中最常見的互動場景:
任務(wù)探索環(huán)節(jié):玩家共有16人,在地圖中走近時能語音交流,走遠(yuǎn)后語音音量減弱直至消失。玩家在地圖中,處于不同房間的人,聽不到對方的聲音。
投票環(huán)節(jié):開會投票時,所有玩家不論在地圖中什么位置,都可以聽到對方的聲音。
被鵜鶘吞掉:游戲進(jìn)行中,如果有玩家被鵜鶘吞掉,則會被拉入RTC概念中的“子頻道”。在“子頻道”中的用戶彼此可以聽到對方的聲音,子頻道之外的則無法聽到。在鵜鶘被“剖腹產(chǎn)”之后,玩家退出子頻道,恢復(fù)與其他玩家的語音連麥。實(shí)現(xiàn)方法,我們稍后細(xì)講。
圖源自Steam
以上這些語音互動的場景,都可以通過聲網(wǎng)RTC SDK來實(shí)現(xiàn)。所有玩家在加入游戲之后,會進(jìn)入同一個大頻道,互相可以聽到對方的聲音。在游戲地圖中,每個玩家都有一個位置信息,當(dāng)玩家們靠近的時候,可以根據(jù)位置信息的變化來調(diào)整語音的音量,從而實(shí)現(xiàn)聽覺上的“距離”感與沉浸感。
如果有玩家被鵜鶘吞掉,這些玩家與鵜鶘會進(jìn)入一個子頻道,子頻道中的玩家可以互相聽到彼此的聲音。當(dāng)鵜鶘被刀了,這些玩家相當(dāng)于退出了子頻道,就能正常與大頻道中的其他玩家語音互動。
另外,在游戲過程中,還會有刀人、投票、移動角色等游戲指令操作。這些都可以通過信令消息系統(tǒng)實(shí)現(xiàn)。
如何快速實(shí)現(xiàn)
這樣來看,實(shí)現(xiàn)一個《鵝鴨殺》類的產(chǎn)品,并不復(fù)雜。如果我們使用聲網(wǎng)SDK來實(shí)現(xiàn),技術(shù)架構(gòu)如下圖所示:
首先所有的游戲指令操作,開發(fā)者可以基于自己的信令系統(tǒng)來實(shí)現(xiàn),也可以通過集成聲網(wǎng)RTM(Real-Time Messaging)SDK來實(shí)現(xiàn)。根據(jù)聲網(wǎng)的經(jīng)驗(yàn),狼人殺類游戲中的信令消息對延時的要求并不高。通常情況下,聲網(wǎng)RTM SDK的延時小于100ms,完全可以滿足《鵝鴨殺》的場景需求。
而游戲中的語音互動功能,則可以基于聲網(wǎng)RTC SDK快速實(shí)現(xiàn)。我們以語音互動為例,如果基于聲網(wǎng)SDK來實(shí)現(xiàn),API的調(diào)用邏輯如下:
第一步加入游戲房間時,初始化IRtcEngine;
由于我們的游戲是需要連麥互動的,所以第二步是設(shè)置ChannelMediaOption的參數(shù)為LIVE_BROADCASTING,進(jìn)入連麥模式;
第三步調(diào)用joinChannel,讓所有玩家加入同一個頻道,在這個大頻道中,玩家可以進(jìn)行連麥;
游戲結(jié)束時,調(diào)用LeaveChannel退出頻道。
除此之外,《鵝鴨殺》游戲中還有一些特殊的場景,對語音互動提出了額外要求:
1、帶物理墻的范圍語音
用戶之間如果有墻,聲音不能直接穿墻,但是可以從門繞過(總路程小于范圍)。對此,你可以通過調(diào)用setZones設(shè)置隔聲區(qū)域和聲音衰減系數(shù)。當(dāng)音源(可以為用戶或媒體播放器)跟聽聲者分屬于音障區(qū)域內(nèi)部和外部時,會體驗(yàn)到類似真實(shí)環(huán)境中聲音在遇到建筑隔斷時的衰減效果。
2、語音音量根據(jù)玩家在游戲中的距離變化
這個功能實(shí)現(xiàn)也比較簡單。通過設(shè)置SpatialAudioParams中的enable_doppler參數(shù)開啟多普勒音效,在聲源和接收方發(fā)生相對位移的情況下,接收方會體驗(yàn)到明顯的音調(diào)變化。
3、回聲與降噪
《鵝鴨殺》在設(shè)置中是支持回聲消除與降噪功能的。而如果我們要開發(fā)支持移動端的《鵝鴨殺》這兩個功能必不可少。因?yàn)楹芏嘁苿佣说挠脩艨赡軙诙喾N環(huán)境中進(jìn)行游戲。
聲網(wǎng)SDK內(nèi)置AI回聲消除,智能適應(yīng)各類環(huán)境,實(shí)現(xiàn)精準(zhǔn)音源分離,從混合的近端信號中消除不必要的遠(yuǎn)端信號,保留近端人聲發(fā)送到遠(yuǎn)端,全面消除回聲,實(shí)現(xiàn)高保真音頻體驗(yàn)。內(nèi)置的AI降噪,可有效消除相關(guān)咳嗽聲,更好地保障線上互動場景中主播與用戶的互動交流體驗(yàn)。
4、支持在本地端調(diào)節(jié)遠(yuǎn)端玩家的語音音量
這是由于鵜鶘這個特殊角色設(shè)置的。每次鵜鶘吃掉玩家后,玩家為了讓鵜鶘聽不到其他人的聲音,都會在肚子里放音樂或大聲說話。增加這個設(shè)置,可以讓鵜鶘玩家調(diào)節(jié)其他人的音量。這個功能,我們可以通過調(diào)用adjustPlaybackSignalVolume來實(shí)現(xiàn)。
聲網(wǎng)鵝鴨殺解決方案優(yōu)勢
音質(zhì)優(yōu)先,提供沉浸游戲體驗(yàn)
聲網(wǎng)支持48kHz全頻帶采樣,還原聲音高保真度,為玩家提供高清音質(zhì)體驗(yàn)。通過聲網(wǎng)自建的軟件定義實(shí)時網(wǎng),能夠?qū)崿F(xiàn)全球端到端延時中位數(shù)76ms,國內(nèi)200ms延時達(dá)標(biāo)率99%,適合MOBA、MMORPG、FPS等競技類游戲。
兼容主流游戲引擎
對于游戲開發(fā)者來說,在開發(fā)游戲的過程中經(jīng)常需要接入一些行業(yè)主流的游戲引擎,聲網(wǎng)的游戲語音解決方案深度兼容Unity、Cocos、Unreal、Spritekit等主流游戲引擎,幫助游戲開發(fā)者在接入游戲引擎的同時快速接入聲網(wǎng)的音視頻服務(wù)。
輕量、低功耗,適配大部分終端
聲網(wǎng)為游戲語音提供的SDK擁有小包體、低功耗的特點(diǎn),CPU占用低于行業(yè)平均20%,且已經(jīng)適配30000多款終端設(shè)備,適用于東南亞、中東北非等海外用戶移動設(shè)備種類繁多且性能較差的地區(qū)。
服務(wù)覆蓋全球
SD-RTN?是聲網(wǎng)專為實(shí)時互動而創(chuàng)建的軟件定義實(shí)時網(wǎng),綜合考量了不同地域特點(diǎn)、跨國跨洲鏈路質(zhì)量、不同網(wǎng)絡(luò)類型、不同終端類型、不同業(yè)務(wù)場景的特征,分別適配不同的傳輸控制策略,打造一張真正高可用、高可靠、高質(zhì)量、超低延時的全球?qū)崟r網(wǎng)絡(luò),即使在面對超大規(guī)模實(shí)時互動場景時,也能保證甚至優(yōu)化音視頻質(zhì)量和延時。
豐富的美聲、變聲音效
在高音質(zhì)的基礎(chǔ)上,聲網(wǎng)還能提供豐富的美聲音效,進(jìn)一步提升聲音的表現(xiàn),達(dá)到聲音美化或改變音色的效果。聲網(wǎng)擁有多種變聲音效,例如小蘿莉、小男孩、大叔、豬八戒、綠巨人等音效,讓你在游戲中的語音更具趣味性,也為游戲語音場景提供更多新穎玩法。同時,最新版本SDK還支持開發(fā)者自定義變聲效果,可以給玩家?guī)砀S富的游戲體驗(yàn)。
市占率80%帶來的豐富實(shí)踐經(jīng)驗(yàn)
狼人殺類游戲在近幾年始終熱度不減,并衍生出了許多變種玩法,比如太空狼人殺與鵝鴨殺。聲網(wǎng)在狼人殺誕生之初就開始為各廠商提供音視頻互動服務(wù),市場上約80%的狼人殺類App均采用了聲網(wǎng)SDK來實(shí)現(xiàn)語音互動。我們在社交游戲領(lǐng)域具有豐富的實(shí)踐經(jīng)驗(yàn),能提供穩(wěn)定、可靠的技術(shù)服務(wù)。