멀티 플레이어는 많은 타이틀에 매우 유용한 추가 기능이며 PlayFab에서는 멀티 플레이어 시나리오에 초점을 맞춘 여러 서비스를 제공합니다.
서비스 | 설명 |
---|---|
로비 | 게임 전 또는 매치 메이킹 후 그룹 간에 게임 플레이를 조정하기 위한 로비 만들기 |
매치 메이킹 | 사용자 지정 매치 메이킹 규칙을 배포하여 플레이어를 빠르게 그룹화 |
파티 | 네트워킹 및 액세스 가능한 인게임 채팅으로 플레이어 연결 |
서버 | Azure에서 사용자 지정 멀티 플레이어 서버를 동적으로 크기 조정 |
타이틀은 이러한 모든 서비스를 함께 사용할 수 있지만, 독립적으로 사용할 수도 있으며 이런 경우는 매우 흔합니다. 예를 들어 타이틀에서 PlayFab 매치 메이킹을 사용하지만 대체 멀티 플레이어 서버 호스팅 솔루션의 서버를 할당할 수도 있습니다. 또는 게임에서 호스팅에 PlayFab 멀티 플레이어 서버를 사용할 수 있지만 자체 매치 메이킹 시스템을 사용하여 플레이어를 한데 모을 수 있습니다.
점점 더 많은 게임에서 서로 다른 ID 도메인(예: 사용자 지정 ID 시스템을 사용하여 Steam 플레이어와 상호 작용하는 Xbox Live 플레이어)에서 플레이어가 교류하는 네트워크 간 환경을 구축하고 있습니다. PlayFab의 서비스는 진행 간 및 네트워크 간 플레이를 지원하도록 설계되었습니다.
예제 멀티 플레이어 시나리오
PlayFab은 다양한 멀티 플레이어 모드를 지원하도록 설계되었습니다. 다음은 매우 정교한 단일 타이틀에 통합될 수 있는 모드 목록입니다. 이 섹션에서는 PlayFab 서비스를 사용하여 이러한 환경을 구현하는 방법을 간략하게 제안합니다.
게임 모드 | 최대 플레이어 수 | 매치 메이킹 | 백필 | 친구 초대 | 원치 않는 진행 중 참가 | 채팅 | 서버 모델 |
---|---|---|---|---|---|---|---|
싱글 플레이 캠페인 | 1 | 아니요 | 아니요 | 아니요 | 아니요 | 아니요 | 아니요 |
협조적 캠페인 | 4 | 아니요 | 아니요 | 예 | 예 | 예 | P2P |
인게임 파티 | 8 | 아니요 | 아니요 | 예 | 예 | 예 | P2P |
일반 소규모 세션 | 8 | 예 | 예 | 예 | 예 | 예 | P2P |
일반 대규모 세션 | 32 | 예 | 예 | 예 | 예 | 예 | 클라우드 서버 |
경쟁 소규모 세션 | 8 | 예 | 아니요 | 예 | 아니요 | 예 | 클라우드 서버 |
경쟁 대규모 세션 | 32 | 예 | 아니요 | 예 | 아니요 | 예 | 클라우드 서버 |
인게임 파티 및 원치 않는 진행 중 참가
플레이어는 종종 친구 또는 같은 생각을 가진 플레이어를 우선적으로 선택하여 플레이 하는 사람을 제어하려고 합니다. PlayFab 로비는 플레이어의 런타임 그룹화가 용이하도록 설계되었으며 검색 가능성 및 조인성을 위한 기본 제공 액세스 제어를 제공합니다. 플레이어는 친구와 함께 하든 특정 게임 모드를 플레이하든 관계없이 요구 사항을 충족하는 열린 로비를 검색하고 참가할 수 있습니다.
플레이어는 동시에 여러 로비의 구성원이 될 수 있습니다. 이렇게 하면 세 명의 친구가 여러 경기에서 다른 친구와 매치메이크할 때 그룹화 상태를 유지할 수 있도록 하는 등 유연한 플레이어 그룹화가 가능합니다.
기본 제공 실시간 알림을 통해 로비의 구성원은 구성원 가입 또는 탈퇴와 같은 변경 내용이 발생하거나 로비에 데이터가 기록될 때 실시간 메시지를 받을 수 있습니다. 플랫폼 간 초대에 동일한 실시간 알림 메커니즘을 사용하면 플레이어가 로비의 구성원인지 여부에 관계없이 초대를 들을 수 있습니다. 플랫폼에서 알림을 시작하고 기타 유용한 환경(플레이어 프로필 카드를 통해 진행 중 참가)을 갖춘 기본 제공 초대 및 현재 상태 시스템을 제공할 수 있으므로 해당하는 경우 통합을 고려해야 합니다.
신호 및 기타 제한된 데이터 공유에 로비를 사용할 수 있지만 PlayFab 파티는 실시간 데이터 전송 및 채팅에 가장 적합합니다. PlayFab 로비를 사용하여 PlayFab 파티 네트워크 설명자 또는 PlayFab 멀티 플레이어 서버 세션 세부 정보를 그룹의 데이터 스토리지에 공유할 수 있습니다. 이러한 세션 정보를 공유를 통해 플레이어가 초대받지 않은 친구의 세션에 참가할 수 있습니다. 실시간 네트워킹 또는 게임 호스팅에 비 PlayFab 서비스를 사용하는 경우 이러한 시스템에는 일반적으로 로비를 사용하여 플레이어 간에 유사하게 신호를 보낼 수 있는 식별 정보가 있습니다.
매치 메이킹 및 백필
플레이어가 모르는 새로운 사람과 플레이하고 싶어할 수 있으므로, 균형 잡힌 익명 매치 메이킹 환경이 여러 멀티 플레이어 게임에 매우 중요합니다. PlayFab 매치 메이킹은 사용자 지정하는 규칙을 사용하여 플레이어를 빠르게 모을 수 있도록 설계되었습니다.
플레이어 또는 플레이어 그룹이 함께 플레이하고 싶을 때, 한 플레이어는 자신 또는 전체 그룹의 매치 메이킹 티켓을 만듭니다. PlayFab 매치 메이킹을 사용하면 사용자를 매치 메이킹에 한 팀으로 함께 제출하여 그룹의 모든 플레이어가 함께 경기하는 데 동의하도록 하는 참가 흐름을 제공할 수 있습니다. 또한 게임 중간에 나가는 플레이어를 대체하는 데 사용할 수 있는 백필 티켓도 제공합니다. 진행 중인 참가와 백필 기능은 일반 게임 세션을 최대한 완전하게 유지하는 데 유용한 메커니즘입니다.
일치하는 플레이어 간의 런타임 그룹화 및 신호를 위해 로비 및 매치 메이킹을 함께 사용합니다. PlayFab 매치 메이킹이 PlayFab 멀티 플레이어 서버와 통합되어 있어서 완료된 티켓의 서버 할당이 간소화되고 매치 보안이 개선됩니다. 또한 PlayFab 매치 메이킹 티켓은 CloudScript를 트리거할 수 있는 PlayStream 이벤트를 발생시키므로 매치 메이킹을 자체 멀티 플레이어 시스템과 통합하는 데 도움이 될 수 있습니다.
채팅
PlayFab 파티는 게임 데이터에 대한 네트워크 전송 외에도 실시간 음성 및 텍스트 채팅 기능을 포함하여 모든 세션 기반 게임에 플레이어 통신을 빠르게 추가합니다. PlayFab 파티를 사용하면 각 네트워크에 사용자 지정된 음소거 규칙을 사용하여 플레이어가 여러 네트워크 동시에 있을 수 있습니다. 이렇게 하면 채널 및 복잡한 채팅 관계를 유연하게 구현할 수 있습니다.
파티는 Azure Cognitive Services를 사용하여 플레이어 음성 채팅을 텍스트로 바꾸고 텍스트를 음성으로 합성합니다. 이 기능은 여러 가지 용도로 사용되지만 주로 접근성 지원용으로 설계되었습니다. 파티는 플레이어 채팅을 전사할 뿐만 아니라 실시간으로 채팅을 번역합니다. 익명의 매치 메이킹 및 국제 경쟁 게임에서 이러한 전사 및 번역 기능을 이용하면, 더 몰입도 높은 멀티 플레이 경험을 할 수 있습니다.
게임 호스팅
실시간 멀티 플레이어 게임에서는 일반적으로 특정 플레이어 디바이스를 선택하여 게임 상태를 호스트하거나(즉, “피어 투 피어”) 전용 멀티 플레이어 서버를 사용합니다. 플레이어 디바이스에서 게임을 호스트하는 경우 PlayFab 파티는 세션 참가자 간에 이 게임 상태를 동기화하기 위한 대기 시간이 짧은 이상적인 디바이스 간 네트워킹 시스템입니다.
피어 투 피어 게임은 디바이스 수가 늘어나는 경우 스케일링하기가 어렵습니다. PlayFab 파티는 네트워크 암호화를 제공하고 릴레이를 사용하여 플레이어 IP 주소를 보호하지만 디바이스가 호스트로 작동하므로 부정 행위가 일어날 가능성이 여전히 있습니다.
PlayFab 멀티 플레이어 서버를 사용하면 Azure의 글로벌 클라우드에서 멀티 플레이어를 쉽고 효율적으로 스케일링할 수 있습니다. 예를 들어 소형 서버를 사용하여 F2v2 Linux 가상 머신에서 각각 10명의 플레이어로 구성된 세션 10개를 로드하면 멀티 플레이어 디자인을 효율적이고 획기적으로 간소화하고 P2P 구현에 비해 안정성을 향상할 수 있습니다. 200명 플레이어 환경에 8개 이상의 코어를 사용하는 등 세션에 더 많은 Azure 리소스를 할당하도록 서버의 빌드 구성을 설정하여 정교한 멀티 플레이어 컴퓨팅을 얻을 수 있습니다.
참고 항목
- 순위표를 사용하여 플레이어 순위표 추적 및 공유
- 그룹을 사용하여 오랜 기간 동안 플레이어 그룹을 추적합니다.
- CloudScript를 사용하여 유연한 클라우드 기반 코드로 실시간으로 플레이어 활동에 대응