gnfc——游戏增强现实语音通话系统
前情提要
在一些以多人在線生存為主要玩法的游戲中,玩家們通常彼此之間不認識,比如說Minecraft服務器,如果為了增強玩家們的互動體驗,把所有玩家都拉到一個語音頻道(如YY),難免會有些隔閡。而且語音頻道中太多人了也會影響通話體驗。
于是,我前段時間希望在我的世界生存服務器內添加一款語音通話插件,該插件有以下功能:
- 語音通話
- 近場語音通話(只有相隔較近的玩家才能聽到彼此的聲音)
- 數據安全(客戶端不會知道遠處玩家的坐標)
- 聽聲辨位(客戶端模擬玩家之間的方位來處理音頻效果)
- 環境效果(模擬游戲中所處的環境對音頻進行處理,比如說山洞中有回音)
是不是有點意思?所有的玩家都在一個頻道中,當玩家們聚集在游戲中的一個區域(比如說開始廣場),他們能聽到嘈雜的交流聲…當玩家組隊生存時,他們在大部分時間里只能聽到隊友的聲音。
實現原理
實現的原理比較簡單,游戲通過插件向中繼服務器實時上報所有玩家的位置信息,中繼服務器對所有玩家進行方位計算和環境計算,將計算結果推送給進入了頻道的玩家客戶端,再由客戶端配合語音SDK實現加入頻道、語音通訊、聽聲辨位等功能。
Created with Rapha?l 2.3.0游戲服務端及插件中繼服務器計算相對方位及環境計算結果下發到玩家的語音客戶端語音客戶端根據數據對通訊音頻進行處理總體流程無法表達細節,特別是有挺多地方需要鑒權,就不一一寫出了,有興趣可以私聊我了解。
使用的技術
| spigot | 游戲服務端及插件宿主 |
| mysql | 用戶綁定網站用戶與游戲角色(一個網站用戶有可能有多個游戲角色) |
| websocket | http長鏈接減低延時 |
| php | 網站及服務后臺 |
| java | 游戲插件 |
| frp | 游戲服務器部署在內網高性能電腦上,需要穿透出去 |
| electronjs | 前端框架 |
| react | 前端渲染框架 |
| http | 前端采用http網頁登錄方式,便于各位服主接入自家系統 |
增強您的游戲體驗
大聲公實時獲取您的角色在游戲中與其他玩家的相對位置,將語音通話的音頻進行方位和音效等后期處理,可以讓你隨時掌握隊友或其他人的大致方位。
#:特殊的音頻處理取決于游戲的服主是否開啟此功能。
數據安全
大聲公采用云端計算的方式計算玩家之間的相對位置,在模擬通訊距離的情況下下發至客戶端,不會泄露玩家坐標。
#:模擬通訊距離由服主進行設置。
穩定高效
大聲公采用業內成熟的語言通話方案,通話引擎自帶人聲增強、低碼高清等功能,在低質量網絡、嘈雜環境下也能保證清晰的通話效果,自研的數據中繼服務也能保證低延時的游戲反饋體驗。
#:從玩家操作人物轉動到聲音空間改變所需的時間在100~500ms之間。
支持自定義登錄方式
大聲公采用網頁登錄方案,登錄頁面由游戲服務方提供,支持多種登錄渠道,靈活高效。
下載體驗地址
- 游戲服務器:MC新世界
- gnfc客戶端:gnfc
- gnfc服務端:gnfc服務端
總結
以上是生活随笔為你收集整理的gnfc——游戏增强现实语音通话系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《这是全网最硬核redis总结,谁赞成,
- 下一篇: html页面加载json数据,在html