서버에서 호스트되는 게임에서는 때때로 추가 플레이어를 검색해야 합니다. 이 상황은 대부분 게임 진행 중에 하나 이상의 플레이어가 연결을 끊었을 때 발생합니다. 서버 백필 티켓을 사용하면 게임 서버가 현재 진행 중인 게임에 맞는 추가 플레이어를 검색할 수 있습니다.
서버 백필 티켓은 다음과 같은 여러 방식에서 일반 매치메이킹 티켓과 다릅니다.
- 매칭
- 백필 티켓끼리는 서로 매칭될 수 없습니다.
- 검색 중에 백필 티켓에 우선순위가 부여되어 플레이어 기반의 분산화가 감소합니다.
- 계약
- 백필 티켓은
ServerDetails 필드로 만들 수 있습니다. 이를 통해 서버는 매칭된 플레이어가 서버에 연결하는 방식을 나타낼 수 있습니다.
- 백필 티켓은 팀 할당으로 만들 수 있습니다. 이를 통해 팀이 있는 게임에서 팀 정보를 유지 관리할 수 있습니다.
- 큐 속성
- 소유권
- 백필 티켓은 사용자가 아니라 게임 서버가 소유합니다. 사용자는 어떤 방식으로든 백필 티켓을 보거나 상호 작용할 수 없습니다.
필수 구성 요소
- PlayFab Multiplayer SDK에 대한 기본 지식. 자세한 내용은 Matchmaking SDK 빠른 시작을 참조하세요.
- 매치메이킹 헤더를 포함하기 전에
PFMULTIPLAYER_INCLUDE_SERVER_APIS를 정의합니다. 예를 들면 다음과 같습니다.
서버 백필 티켓 구성
필요한 세부 정보로 PFMatchmakingServerBackfillTicketConfiguration 구조체를 만들고 채웁니다.
PFMultiplayerServerDetails::ipv4Address 필드는 유효성이 검증되지 않으며 클라이언트에 임의의 연결 문자열 정보를 제공하는 데 사용될 수 있습니다.
서버 백필 티켓 만들기
서버 백필 티켓을 만들기 위해 PFMultiplayerCreateServerBackfillTicket을 사용할 때는 이전 단계에서 만든 백필 구성과 함께 게임 서버의 엔터티(PFEntityKey 형태)를 전달해야 합니다.
매치메이킹 티켓 상태 확인
PFMultiplayerStartProcessingMatchmakingStateChanges를 호출하여 상태 변경 사항을 수신한 다음, 해당 상태 변경 사항 처리가 완료되면 PFMultiplayerFinishProcessingMatchmakingStateChanges를 호출하여 티켓 업데이트를 확인해야 합니다.
SDK는 티켓의 상태가 변경될 때마다 TicketStatusChanged 상태 변경을 반환하고, 매치메이킹이 완료되면 TicketCompleted 상태 변경을 반환합니다.
매치 가져오기
PFMatchmakingStateChangeType::TicketCompleted 상태 변경을 수신한 후 PFMatchmakingTicketGetMatch를 호출하여 매치의 세부 정보를 가져옵니다. 이 세부 정보에는 매치 ID, 서로 매칭된 사용자, 매치에 대한 기본 지역 및 매치와 연결된 로비에 대한 정렬 문자열이 포함되어 있습니다.
PFMatchmakingMatchDetails 구조체에서 필요한 정보를 검색한 후에는 PFMultiplayerDestroyMatchmakingTicket으로 티켓을 소멸시켜야 합니다.
티켓 취소
PFMatchmakingServerBackfillTicketConfiguration에 설정된 시간 초과 전에 매치메이킹 프로세스를 취소하려면 티켓 핸들을 사용하여 PFMatchmakingTicketCancel을 호출합니다.
이 API 호출로 티켓이 취소된다고 보장되지는 않습니다. 취소가 처리되기 전에 티켓이 완료될 수도 있고, 네트워킹 또는 서비스 오류로 인해 취소 요청이 실패할 수도 있습니다. 계속 진행하기 전에 티켓 취소가 완료되었는지 확인하려면 매치메이킹 상태 변경을 처리하여 티켓 결과를 가져올 수 있습니다. 그렇지 않으면 PFMultiplayerDestroyMatchmakingTicket을 즉시 호출할 수 있습니다.