适用于大型游戏的频道标识符
如果满足以下任何陈述,则构造频道标识符时需谨慎:
- 期望应用程序超过 100,000 PCU
- 期望使用多频道功能
可以根据 Vivox Operations 的判断将大型游戏拆分为跨多台物理音频服务器(“分片”)。构造通道标识符以使用以下格式:
shard-group
例如,有一个应用程序,名称是“Queen of the Death”(QotD),它根据地理区域分配用户,例如“NA”表示“北美”。假设 QotD 为比赛中的所有参与者加入一个 3D 通道,然后也为队伍的成员加入一个 2D 通道。在此情况下,QotD 的最佳实践是应用以下条件:
- 使用哈希值标识比赛
- 在频道标识符的“shard”部分中包含区域和比赛标识符
- 在通道标识符的“shard”部分后包含 3D 和队伍标识符
为此比赛分配的比赛标识符是 d0634bad1ca5a9cd
,3D 空间为 tundra
。进一步假定向队伍分配了从 1 开始的整数 ID,并且 Channel3DProperties 已经设置为变量 NewChannelProps
。
位置频道
string shard = "NA"; string matchId = "d0634bad1ca5a9cd"; string positionalSpaceId = "tundra"; Channel3DProperties NewChannelProps = new Channel3DProperties(/* Add your own custom positional channel proprties here */); await VivoxService.Instance.JoinPositionalChannelAsync($"{shard}.{matchId}-{positionalSpaceId}", ChatCapability.AudioOnly, NewChannelProps);
队伍 1 的群组频道
string shard = "NA"; string matchId = "d0634bad1ca5a9cd"; int squadId = 1; await VivoxService.Instance.JoinGroupChannelAsync($"{shard}.{matchId}-{squadId}", ChatCapability.AudioOnly);
队伍 2 的群组频道
string shard = "NA"; string matchId = "d0634bad1ca5a9cd"; int squadId = 2; await VivoxService.Instance.JoinGroupChannelAsync($"{shard}.{matchId}-{squadId}", ChatCapability.AudioOnly);