gnfc——游戏增强现实语音通话系统

前情提要

在一些以多人在线生存为主要玩法的游戏中,玩家们通常彼此之间不认识,比如说Minecraft服务器,如果为了增强玩家们的互动体验,把所有玩家都拉到一个语音频道(如YY),难免会有些隔阂。而且语音频道中太多人了也会影响通话体验。

在这里插入图片描述

于是,我前段时间希望在我的世界生存服务器内添加一款语音通话插件,该插件有以下功能:

  • 语音通话
  • 近场语音通话(只有相隔较近的玩家才能听到彼此的声音)
  • 数据安全(客户端不会知道远处玩家的坐标)
  • 听声辨位(客户端模拟玩家之间的方位来处理音频效果)
  • 环境效果(模拟游戏中所处的环境对音频进行处理,比如说山洞中有回音)

是不是有点意思?所有的玩家都在一个频道中,当玩家们聚集在游戏中的一个区域(比如说开始广场),他们能听到嘈杂的交流声…当玩家组队生存时,他们在大部分时间里只能听到队友的声音。

实现原理

实现的原理比较简单,游戏通过插件向中继服务器实时上报所有玩家的位置信息,中继服务器对所有玩家进行方位计算和环境计算,将计算结果推送给进入了频道的玩家客户端,再由客户端配合语音SDK实现加入频道、语音通讯、听声辨位等功能。

Created with Raphaël 2.3.0 游戏服务端及插件 中继服务器 计算相对方位及环境 计算结果下发到玩家的语音客户端 语音客户端根据数据对通讯音频进行处理

总体流程无法表达细节,特别是有挺多地方需要鉴权,就不一一写出了,有兴趣可以私聊我了解。

使用的技术

技术用途
spigot游戏服务端及插件宿主
mysql用户绑定网站用户与游戏角色(一个网站用户有可能有多个游戏角色)
websockethttp长链接减低延时
php网站及服务后台
java游戏插件
frp游戏服务器部署在内网高性能电脑上,需要穿透出去
electronjs前端框架
react前端渲染框架
http前端采用http网页登录方式,便于各位服主接入自家系统

增强您的游戏体验

大声公实时获取您的角色在游戏中与其他玩家的相对位置,将语音通话的音频进行方位和音效等后期处理,可以让你随时掌握队友或其他人的大致方位。

#:特殊的音频处理取决于游戏的服主是否开启此功能。
在这里插入图片描述

数据安全

大声公采用云端计算的方式计算玩家之间的相对位置,在模拟通讯距离的情况下下发至客户端,不会泄露玩家坐标。

#:模拟通讯距离由服主进行设置。
在这里插入图片描述

稳定高效

大声公采用业内成熟的语言通话方案,通话引擎自带人声增强、低码高清等功能,在低质量网络、嘈杂环境下也能保证清晰的通话效果,自研的数据中继服务也能保证低延时的游戏反馈体验。

#:从玩家操作人物转动到声音空间改变所需的时间在100~500ms之间。

在这里插入图片描述

支持自定义登录方式

大声公采用网页登录方案,登录页面由游戏服务方提供,支持多种登录渠道,灵活高效。
在这里插入图片描述

下载体验地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值