# Channel Identifiers For Large Scale Games

> Use channel identifiers for large-scale game servers with Vivox.

다음 조건 중 하나에 해당하는 경우 채널 식별자를 구성할 때 주의를 기울여야 합니다.

* 애플리케이션이 100,000 PCU를 초과할 것으로 예상
* 멀티 채널 기능을 사용하려는 경우

대규모 게임을 Vivox Operations의 재량에 따라 여러 물리적 오디오 서버(샤드(shard))로 분할할 수 있습니다. 다음 포맷을 사용하여 채널 식별자를 구성하십시오.

*shard*-*group*

예를 들어, 지리적 영역(예: 북아메리카의 경우 NA)에 따라 사용자를 할당하는 애플리케이션인 ‘QotD(Queen of the Death)’를 사용할 수 있습니다. QotD가 매치에 참여한 모든 참가자를 3D 채널에 참여시킨 다음 스쿼드 팀원을 2D 채널에도 참여시킨다고 가정해 보겠습니다. 이 경우 QotD의 베스트 프랙티스는 다음 기준을 적용하는 것입니다.

* 해시를 사용하여 매치 식별
* 채널 식별자의 ‘샤드’ 부분에 지역 및 매치 식별자 포함
* 채널 식별자의 ‘샤드’ 부분 뒤에 3D 및 스쿼드 식별자 포함

이 매치에 할당된 매치 ID는 `d0634bad1ca5a9cd`이고, 3D 공간의 이름은 `tundra`라고 가정해 보겠습니다. 또한 스쿼드에는 1로 시작하는 정수 ID가 할당되며 [Channel3DProperties](./positional-channel-properties.md)의 변수가 `NewChannelProps`로 이미 설정되어 있다고 가정하겠습니다.

* 포지셔널 채널

  ```plaintext
  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의 그룹 채널

  ```plaintext
  string shard = "NA";
  string matchId = "d0634bad1ca5a9cd";
  int squadId = 1;
  await VivoxService.Instance.JoinGroupChannelAsync($"{shard}.{matchId}-{squadId}", ChatCapability.AudioOnly);
  ```

* 스쿼드 2의 그룹 채널

  ```plaintext
  string shard = "NA";
  string matchId = "d0634bad1ca5a9cd";
  int squadId = 2;
  await VivoxService.Instance.JoinGroupChannelAsync($"{shard}.{matchId}-{squadId}", ChatCapability.AudioOnly);
  ```
