이 문서에서는 게임에서 매치 메이킹을 구현하는 단계에 대한 요약을 제공합니다. 자세한 내용은 이 문서의 끝에 있는 참고 항목 섹션의 문서를 검토해야 합니다.
Microsoft Azure PlayFab 로비 및 매치 메이킹 SDK를 사용하여 매치 메이킹 구현
PlayFab 로비 및 매치 메이킹 SDK는 이제 GDK의 일부입니다.
- PlayFab 로비 및 매치 메이킹 SDK Azure 다운로드 및 설정: 플랫폼용 C/C++ SDK를 다운로드한 다음, 제공된 헤더 및 라이브러리 파일을 빌드에 통합합니다.
- 플레이어 인증: 게임에서 이러한 서비스에 의존하는 기능을 사용하기 전에 Xbox 서비스와 Microsoft Azure PlayFab으로 플레이어를 인증해야 합니다.
- PlayFab 멀티 플레이어 SDK 초기화: PFMultiplayerInitialize를 호출하여 SDK를 초기화합니다. PFMultiplayerSetEntityToken을 호출하여 플레이어 대신 라이브러리에서 사용하는 엔터티 키와 토큰을 설정합니다.
- 매치 메이킹 큐 구성: 티켓이 서로 일치하기 위해 대기하는 위치를 나타내는 큐를 중심으로 구성 센터를 일치합니다. 각 큐에는 일치 항목에 필요한 항목에 대한 몇 가지 일반적인 구성 정보가 있습니다. 또한 큐에는 티켓이 함께 일치하는 방법에 대한 추가 제한을 제공하는 규칙 집합이 포함될 수 있습니다. 자세한 내용은 매치 메이킹 큐 구성을 참조하세요.
- 매치 메이킹 티켓 만들기: PFMultiplayerCreateMatchmakingTicket를 사용하여 매치 메이킹 티켓을 만듭니다. 매치에 참여하려는 모든 로컬 플레이어와 해당 플레이어와 연결하려는 특성을 지정합니다. 매치 메이킹 티켓을 만드는 세 가지 시나리오는 다음과 같습니다.
- 단일 로컬 플레이어로 매치 메이킹 구현: 단일 로컬 플레이어에 대한 매치 메이킹을 시작하려면 단일
PFEntityKey으로 를 호출PFMultiplayerCreateMatchmakingTicket합니다. - 원격 플레이어 그룹을 사용하여 매치 메이킹을 구현합니다.
- 리더는 를 사용하여
PFMultiplayerCreateMatchmakingTicket티켓을 만듭니다. 구성 매개 변수를 통해 그룹의 다른 플레이어를 지정합니다. - PFMatchmakingTicketGetTicketId를 호출하여 티켓 ID를 가져옵니다.
- 네트워킹 메시 또는 공유 PlayFab 로비와 같은 외부 메커니즘을 사용하여 이 ID를 서로 플레이어에게 보냅니다. 각 클라이언트가 티켓 ID를 사용하여 PFMultiplayerJoinMatchmakingTicketFromId 를 호출하여 매치 메이킹 티켓에 참여하도록 합니다.
- 티켓 상태 지정된 플레이어가 참가할 때까지 기다리는 동안 PFMatchmakingTicketStatus::WaitingForPlayers가 됩니다. 모든 플레이어가 티켓에
PFMatchmakingTicketStatus::WaitingForMatch참가한 후 상태 변경됩니다.
- 리더는 를 사용하여
- 여러 로컬 플레이어와 매치 메이킹을 구현합니다.
-
PFEntityKey목록 및 각 플레이어의 해당 특성 목록을 또는PFMultiplayerJoinMatchmakingTicketFromId함수에PFMultiplayerCreateMatchmakingTicket전달합니다. - 특성 목록의 첫 번째 항목이 PFEntityKey 목록의 첫 번째 플레이어에 해당하도록 각 목록 항목 위치가 일치하는지 확인합니다.
-
- 단일 로컬 플레이어로 매치 메이킹 구현: 단일 로컬 플레이어에 대한 매치 메이킹을 시작하려면 단일
- 매치 메이킹 티켓의 상태 확인합니다. 검사 PFMultiplayerStartProcessingMatchmakingStateChanges를 호출하여 티켓에 대한 업데이트를 확인합니다. 해당 상태 변경 처리가 완료되면 PFMultiplayerFinishProcessingMatchmakingStateChanges 를 호출합니다. SDK는 티켓의 상태 변경되고
TicketCompleted매치 메이킹이 수행되면 상태가 변경 될 때마다 상태 변경을 반환TicketStatusChanged합니다. - 일치 항목 가져오기: PFMatchmakingStateChangeType::TicketCompleted 상태 변경을 받은 후 PFMatchmakingTicketGetMatch 를 호출하여 일치 항목의 세부 정보를 가져옵니다.
- PFMatchmakingMatchDetails 구조체에서 필요한 정보를 가져옵니다. PFMultiplayerDestroyMatchmakingTicket를 사용하여 티켓을 삭제합니다.
- 매치 메이킹 티켓 취소: PFMatchmakingTicketConfiguration에 설정된 시간 제한 전에 매치 메이킹 프로세스를 취소하려면 티켓 핸들을 사용하여 PFMatchmakingTicketCancel 을 호출합니다.
- 플레이어를 함께 로비에 연결(선택 사항): 플레이어가 일치하면 로비에서 함께 참가할 수 있습니다. 매치된 티켓의 PFMatchmakingMatchDetails 에는 동일한 로비에 플레이어를 조인하는 데 사용할 수 있는 필드가 포함되어
lobbyArrangementString있습니다. 이렇게 하면 기능 간의 통합이 가능합니다. 고유한 기술이 있는 경우 사용할 수 있습니다. - 서버 기능 할당(선택 사항): 매치 메이킹에는 결과 일치에 대한 게임 서버를 자동으로 만들 수 있는 옵션이 포함되어 있습니다. 할당된 서버는 큐의 구성 파일에 구성된 빌드를 실행합니다. 시작 시 서버는 매치 멤버에 초기 플레이어 목록으로 전달됩니다. 매치 메이킹 큐는 단일 멀티 플레이어 서버 빌드 또는 빌드 별칭에 연결됩니다. 자세한 내용은 PlayFab 멀티 플레이어 서버와 통합을 참조하세요.
참고 항목
PlayFab 설명서는 최신 정보의 가장 좋은 소스입니다. 자세한 내용은 다음 문서 및 샘플을 참조하세요.
-
Microsoft Azure PlayFab 파티 및 멀티 플레이어 C++ SDK 및 API를 게임에서 사용하는 방법을 보여 주는 간단한 멀티 플레이어 게임입니다.