PlayFab을 사용한 멀티 플레이어

멀티 플레이어는 많은 타이틀에 매우 유용한 추가 기능이며 PlayFab에서는 멀티 플레이어 시나리오에 초점을 맞춘 여러 서비스를 제공합니다.

서비스 설명
순위표 통계 및 순위표를 사용하여 플레이어 활동을 추적 및 대응합니다.
엔터티 그룹 영구 또는 임시 플레이어 그룹을 만들고 활동 알림
로비 그룹 간 게임 플레이를 조정하기 위한 로비를 사전 게임 또는 사후 매치메이킹으로 만듭니다.
매치 메이킹 사용자 지정 매치 메이킹 규칙을 배포하여 플레이어를 빠르게 그룹화
파티 네트워킹 및 액세스 가능한 인게임 채팅으로 플레이어 연결
서버 Azure에서 사용자 지정 멀티 플레이어 서버를 동적으로 크기 조정

타이틀은 이러한 모든 서비스를 함께 사용할 수 있지만, 독립적으로 사용할 수도 있으며 이런 경우는 매우 흔합니다. 예를 들어 타이틀에서 PlayFab 매치 메이킹을 사용하지만 대체 멀티 플레이어 서버 호스팅 솔루션의 서버를 할당할 수도 있습니다. 또는 게임에서 호스팅에 PlayFab 멀티 플레이어 서버를 사용할 수 있지만 자체 매치 메이킹 시스템을 사용하여 플레이어를 한데 모을 수 있습니다.

점점 더 많은 게임에서 서로 다른 ID 도메인(예: 사용자 지정 ID 시스템을 사용하여 Steam 플레이어와 상호 작용하는 Xbox Live 플레이어)에서 플레이어가 교류하는 네트워크 간 환경을 구축하고 있습니다. PlayFab의 서비스는 진행 간 및 네트워크 간 플레이를 지원하도록 설계되었습니다.

예제 멀티 플레이어 시나리오

PlayFab은 다양한 멀티 플레이어 모드를 지원하도록 설계되었습니다. 다음은 매우 정교한 단일 타이틀에 통합될 수 있는 모드 목록입니다. 이 섹션에서는 PlayFab 서비스를 사용하여 이러한 환경을 구현하는 방법을 간략하게 제안합니다.

게임 모드 최대 플레이어 수 순위표 매치 메이킹 백필 친구 초대 원치 않는 진행 중 참가 채팅 서버 모델
싱글 플레이 캠페인 1 아니요 아니요 아니요 아니요 아니요 아니요
협조적 캠페인 4 아니요 아니요 P2P
인게임 파티 8 아니요 아니요 아니요 P2P
일반 소규모 세션 8 P2P
일반 대규모 세션 32 클라우드 서버
경쟁 소규모 세션 8 아니요 아니요 클라우드 서버
경쟁 대규모 세션 32 아니요 아니요 클라우드 서버

순위표 및 플레이어 데이터

인게임 순위표를 사용하여 다음을 수행할 수 있습니다.

  1. 인게임 보상 및 기타 게임 플레이 동작을 트리거하는 플레이어 결과 저장
  2. 플레이어 결과를 매치 메이킹 입력으로 저장 및 순위 지정
  3. 사용자가 순위표를 찾아보고 성과를 비교할 수 있는 인게임 순위 지정 환경 만들기

순위표는 싱글 플레이 모드와 멀티 플레이어 모드를 모두 보강할 수 있습니다. 예를 들어 캠페인 순위표에서는 플레이어가 수집한 특별 아이템의 수를 추적할 수 있지만, 멀티 플레이어 순위표에서는 플레이어 간 경쟁 승리를 추적할 수 있습니다. PlayFab 순위표는 플레이어 통계를 추적하고 해당 통계를 사용하여 플레이어 순위를 지정하여 이러한 환경을 지원하도록 작성되었습니다.

플레이어 결과를 다른 플레이어와 광범위하게 공유할 필요가 없는 경우 플레이어 관련 PlayFab 엔터티 데이터를 사용하여 이 데이터를 저장하는 것이 적합할 수 있습니다. PlayFab 엔터티 시스템은 여러 계정에서 플레이어 활동 및 기타 데이터의 네트워크 간 진행을 추적할 수 있다는 이점이 있습니다. PlayFab 순위표 및 데이터를 변경하면 사용자 지정 CloudScript를 트리거할 수 있는 PlayStream 이벤트가 발생합니다. 따라서 플레이어 활동에의 실시간 응답을 고도로 사용자 지정할 수 있습니다.

해당 서비스:

인게임 파티 및 원치 않는 진행 중 참가

플레이어는 종종 적절한 게임 플레이를 벗어나길 원하며 타이틀에서는 인게임 길드 또는 파티 환경을 통해 이를 지원할 수 있습니다. PlayFab 엔터티 그룹 및 PlayFab 파티는 이러한 시나리오를 염두에 두고 설계되었습니다.

다음을 위한 PlayFab 엔터티 그룹을 만들 수 있습니다.

  1. 팔로워와 상태를 공유하는 플레이어
  2. 수명이 긴 길드를 만들려는 플레이어(수개월 또는 며칠)
  3. 수명이 짧은 파티를 만들려는 플레이어(몇 시간 미만)

PlayFab 엔터티 그룹에는 그룹 리더로부터 그룹 액세스를 요청하는 플레이어 및 액세스를 제어하기 위한 기본 제공 흐름이 있습니다. 그룹은 임의의 파일 데이터와 연결될 수 있으므로 플레이어가 메시지를 공유하거나 기타 영구 콘텐츠를 공유 공간에 게시하도록 허용할 수 있습니다.

엔터티 그룹은 알림 및 기타 ‘느린’ 데이터 공유에 사용할 수 있는 반면 PlayFab 파티는 실시간 데이터 전송 및 채팅에 가장 적합합니다. PlayFab 엔터티 그룹의 일반적인 사용 사례로는 플레이어가 PlayFab 파티 네트워크 설명자나 PlayFab 멀티 플레이어 서버 세션 세부 정보를 그룹의 데이터 스토리지에 저장하는 경우를 들 수 있습니다. 이러한 세션 정보를 공유를 통해 플레이어가 초대받지 않은 친구의 세션에 참가할 수 있습니다. 실시간 통신 또는 게임 호스팅에 PlayFab이 아닌 서비스를 사용 중인 경우 일반적으로 해당 시스템에는 유사하게 엔터티 그룹을 사용하여 플레이어 간에 알릴 수 있는 식별 정보가 있습니다.

PlayFab 엔터티 그룹은 플레이어에게 엔터티 개체 변경을 알리기 위한 푸시 알림 시스템이 없으며 업데이트된 상태를 유지하려면 서비스를 폴링해야 합니다. 플랫폼에서 알림을 시작하고 기타 유용한 환경(플레이어 프로필 카드를 통해 진행 중 참가)을 갖춘 기본 제공 초대 및 현재 상태 시스템을 제공할 수 있으므로 해당하는 경우 통합을 고려해야 합니다.

매치 메이킹 및 백필

플레이어가 모르는 새로운 사람과 플레이하고 싶어할 수 있으므로, 균형 잡힌 익명 매치 메이킹 환경이 여러 멀티 플레이어 게임에 매우 중요합니다. PlayFab 매치 메이킹은 사용자 지정하는 규칙을 사용하여 플레이어를 빠르게 모을 수 있도록 설계되었습니다.

플레이어 또는 플레이어 그룹이 함께 플레이하고 싶을 때, 한 플레이어는 자신 또는 전체 그룹의 매치 메이킹 티켓을 만듭니다. PlayFab 매치 메이킹을 사용하면 사용자를 매치 메이킹에 한 팀으로 함께 제출하여 그룹의 모든 플레이어가 함께 경기하는 데 동의하도록 하는 참가 흐름을 제공할 수 있습니다. 또한 게임 중간에 나가는 플레이어를 대체하는 데 사용할 수 있는 백필 티켓도 제공합니다. 진행 중인 참가와 백필 기능은 일반 게임 세션을 최대한 완전하게 유지하는 데 유용한 메커니즘입니다.

PlayFab 매치 메이킹이 PlayFab 멀티 플레이어 서버와 통합되어 있어서 완료된 티켓의 서버 할당이 간소화되고 매치 보안이 개선됩니다. 또한 PlayFab 매치 메이킹 티켓은 CloudScript를 트리거할 수 있는 PlayStream 이벤트를 발생시키므로 매치 메이킹을 자체 멀티 플레이어 시스템과 통합하는 데 도움이 될 수 있습니다.

채팅

PlayFab 파티는 최대 32명의 플레이어를 위한 소셜 또는 게임 플레이 환경에 실시간 음성 및 문자 채팅을 추가하는 데 사용됩니다. PlayFab 파티를 사용하면 각 네트워크에 사용자 지정된 음소거 규칙을 사용하여 플레이어가 여러 네트워크 동시에 있을 수 있습니다. 이렇게 하면 채널 및 복잡한 채팅 관계를 유연하게 구현할 수 있습니다.

파티는 Azure Cognitive Services를 사용하여 플레이어 음성 채팅을 텍스트로 바꾸고 텍스트를 음성으로 합성합니다. 이 기능은 여러 가지 용도로 사용되지만 주로 접근성 지원용으로 설계되었습니다. 파티는 플레이어 채팅을 전사할 뿐만 아니라 실시간으로 채팅을 번역합니다. 익명의 매치 메이킹 및 국제 경쟁 게임에서 이러한 전사 및 번역 기능을 이용하면, 더 몰입도 높은 멀티 플레이 경험을 할 수 있습니다.

게임 호스팅

실시간 멀티 플레이어 게임에서는 일반적으로 특정 플레이어 디바이스를 선택하여 게임 상태를 호스트하거나(즉, “피어 투 피어”) 전용 멀티 플레이어 서버를 사용합니다. 플레이어 디바이스에서 게임을 호스트하는 경우 PlayFab 파티는 세션 참가자 간에 이 게임 상태를 동기화하기 위한 대기 시간이 짧은 이상적인 디바이스 간 네트워킹 시스템입니다.

피어 투 피어 게임은 디바이스 수가 늘어나는 경우 스케일링하기가 어렵습니다. PlayFab 파티는 네트워크 암호화를 제공하고 릴레이를 사용하여 플레이어 IP 주소를 보호하지만 디바이스가 호스트로 작동하므로 부정 행위가 일어날 가능성이 여전히 있습니다.

PlayFab 멀티 플레이어 서버를 사용하면 Azure의 글로벌 클라우드에서 멀티 플레이어를 쉽고 효율적으로 스케일링할 수 있습니다. 예를 들어 소형 서버를 사용하여 F2v2 Linux 가상 머신에서 각각 10명의 플레이어로 구성된 세션 10개를 로드하면 멀티 플레이어 디자인을 효율적이고 획기적으로 간소화하고 P2P 구현에 비해 안정성을 향상할 수 있습니다. 200명 플레이어 환경에 8개 이상의 코어를 사용하는 등 세션에 더 많은 Azure 리소스를 할당하도록 서버의 빌드 구성을 설정하여 정교한 멀티 플레이어 컴퓨팅을 얻을 수 있습니다.