Multiplayer SDK는 폴링 필요성을 줄이는 실시간 메시지 지원을 포함하고 있어 매치메이킹 환경을 개선하고 지연 시간을 줄여줍니다. Multiplayer SDK 사용을 강력히 권장합니다. 서버 백필 티켓 사용 - Multiplayer SDK
- 매칭
- 백필 티켓끼리는 서로 매칭될 수 없습니다.
- 검색 중에 백필 티켓에 우선순위가 부여됩니다. 이렇게 하면 플레이어 기반의 분산화가 감소합니다.
- 계약
- 백필 티켓은
ServerDetails필드로 만들 수 있습니다. 이를 통해 서버는 매칭된 플레이어가 서버에 연결하는 방식을 나타낼 수 있습니다. - 백필 티켓은 팀 할당으로 만들 수 있습니다. 이를 통해 팀이 있는 게임에서 팀 정보를 유지 관리할 수 있습니다.
- 백필 티켓은
- 큐 속성
- 백필 티켓은 Multiplayer Server 할당을 트리거하지 않습니다.
- 백필 티켓의 플레이어는 이미 게임을 플레이하고 있어 대기 시간을 부정확하게 왜곡하므로 큐 통계에 반영되지 않습니다.
- 소유권
- 백필 티켓은 사용자가 아니라 게임 서버가 소유합니다. 사용자는 어떤 방식으로든 백필 티켓을 보거나 상호 작용할 수 없습니다.
서버 백필 티켓 만들기
백필 프로세스는 일반 매치메이킹 티켓 만들기와 비슷하게 시작되지만, CreateServerMatchmakingTicket 호출이 아니라 CreateServerBackfillTicket 호출을 사용합니다. 게임 서버는 현재 호스트하고 있는 게임의 모든 멤버 정보를 제공해야 합니다. 이 작업은 이전 매치 결과에서 반환된 특성을 저장하여 가장 효율적으로 수행됩니다. 이러한 특성은ReturnMemberAttributes 플래그를 사용하여 GetMatch를 호출하여 검색할 수 있습니다. 또는 게임 서버는 사용자에게 특성 정보를 쿼리할 수 있습니다.
멤버 외에도 게임 서버는 두 가지 추가 정보를 지정할 수 있습니다.
ServerDetails
이 구조체는 GetMatch 호출에서 반환된 구조체와 동일하며, 서버가 연결에 필요한 모든 정보를 지정할 수 있게 합니다. 백필 티켓이 매칭되면 결과 매치에서 GetMatch를 호출하는 모든 플레이어에게 해당 ServerDetails 구조체가 반환됩니다. 이 구조체의 모든 필드는 선택 사항입니다. 타이틀은 클라이언트가 게임 서버에 연결하는 데 필요한 정보를 제공하는 데 이 중 일부만 필요할 수도 있습니다.IPV4Address 필드는 유효성이 검증되지 않으며 클라이언트에 임의의 연결 문자열 정보를 제공하는 데 사용될 수 있습니다.팀 할당
백필 티켓이 팀이 있는 큐로 제출되는 경우 각 멤버는 현재 소속된 팀을 나타내는 TeamId도 지정할 수 있습니다. 이 멤버십은 매치가 반환될 때 보존됩니다. 사용자에 대해 TeamId가 지정되지 않은 경우 어떤 팀에도 배치될 수 있습니다.백필 티켓과 상호 작용
만들어진 후 백필 티켓은 규칙 조건을 충족하는 일반 매치메이킹 티켓 검색을 시작합니다. 백필 티켓의 흐름은 유사한 API를 사용한다는 점을 제외하면 일반 매치메이킹 티켓 작동 방식과 동일합니다. 게임 서버는 GetServerBackfillTicket을 호출하여 티켓 상태를 확인할 수 있습니다. 또한 CancelServerBackfillTicket을 호출하여 티켓을 취소할 수도 있습니다.클라이언트는 자신이 포함된 백필 티켓을 취소할 수 없습니다. 클라이언트가 4대4 매치에 참여하던 중 상대 팀 플레이어가 나갔다고 가정해 봅시다. 이 클라이언트는 자신이 포함된 모든 백필 티켓을 지속적으로 취소하여 유리한 상황을 유지할 수 있습니다. 이를 방지하기 위해 백필 티켓은 게임 서버만 취소할 수 있습니다.
멤버십 한도 및 손실된 백필 티켓에서 복구
일반 매치메이킹 티켓과 유사하게 사용자는 언제든지 큐당 하나의 백필 티켓에만 포함될 수 있습니다. 이 한도는 클라이언트가 제어하는 일반 티켓과 별도로 추적됩니다. 게임 서버가 백필 티켓을 만든 후 크래시되는 경우, 손실된 백필 티켓에 있는 사용자는 멤버십 한도로 인해 다른 백필 티켓에 제출될 수 없습니다. 게임 서버는MatchmakingTicketMembershipLimitExceeded 오류와 함께 어떤 사용자가 처리되지 않은 백필 티켓을 가지고 있는지를 나타내는 사용자 목록을 errorDetails 본문에서 수신하여 이를 발견합니다.
