멀티플레이어 세션 할당
PlayFab multiplayer servers 2.0에서는 RequestMultiplayerServer API를 사용하여 멀티플레이어 서버 애플리케이션의 인스턴스를 할당할 수 있습니다. 일반적으로 이 API는 특정 title에 구성된 PlayFab 개발자 시크릿 키를 사용하여 자체 서비스(매치메이킹 서비스 또는 로비 서비스일 수 있음)에서 호출됩니다. 시크릿 키에 대한 자세한 내용은 시크릿 키 관리를 참조하세요. 플레이어를 모으고 서버를 할당하는 일반적인 패턴은 다음과 같습니다:- 클라이언트가 네트워크 QoS 정보를 수집합니다.
- 클라이언트가 사용자 지정 매치메이킹 서비스와 상호 작용하거나 소셜 초대를 통해 모입니다.
- 사용자 지정 매치메이킹 서비스가 우선순위가 지정된 지역 목록을 사용하여 그룹에 세션을 할당합니다.
- BuildID - 할당할 특정 서버 빌드입니다.
- SessionID- 세션의 식별자입니다. 호출자가 생성한 GUID 문자열입니다. 동일한 논리적 세션에 대한 이 API 재시도는 동일한 식별자를 재사용해야 합니다. 이렇게 하면 호출자 재시도 동작으로 인해 불필요한 서버가 만들어질 가능성이 줄어듭니다.
- SessionCookie - 활성화 시 게임 서버 SDK를 통해 할당된 세션에 전달되는 임의의 데이터입니다. 이 필드의 일반적인 사용법은 게임 서버가 클라이언트를 인증하는 데 사용하는 공유 키를 전달하는 것입니다. 데이터는 4킬로바이트보다 작아야 합니다.
- PreferredRegions - 서버 할당에 사용되는 지역의 순서 목록입니다. 지역 순위를 매길 때 클라이언트 장치에서 수집한 네트워크 QoS 측정을 주요 요인으로 사용하는 것이 좋습니다.
- 서버의 IPv4 주소입니다.
- TCP/UDP 포트 매핑 (자세한 내용은 클라이언트를 게임 서버에 연결 참조).
- 서버의 Region입니다.
MpsAllocatorSample(여기에 있음)를 사용하여 게임 개발 중에 손쉽게 게임 서버를 할당할 수 있습니다.
클라이언트 할당
멀티플레이어 서버는 비용이 많이 들고 강력합니다. 기본적으로 PlayFab 개발자 시크릿 키를 사용해 자체 신뢰할 수 있는 서비스에서만 멀티플레이어 서버를 요청할 수 있습니다. 그러나 플레이어 장치에서 직접 서버를 할당하면 서비스 간 호출을 구현하는 비용을 절감할 수 있으며 일부 상황에서 유용할 수 있습니다. 클라이언트 할당을 활성화하려면:- 왼쪽 메뉴에서 Settings를 선택합니다.
- API Features 탭을 선택합니다.
- 그런 다음 Allow Client to start games 옵션을 활성화합니다.
배포된 멀티플레이어 서버 디버깅
Azure에 배포된 게임 서버를 원격으로 디버깅하고 싶을 수 있습니다. Visual Studio를 사용하려면 현재 컨테이너에 Visual Studio 원격 디버깅 도구를 설치하고 구성해야 합니다.다음 절차는 안전하지 않고 인증되지 않은 디버깅을 활성화합니다.
- VS2017 원격 디버깅 도구를 가져옵니다:
- 이러한 도구를 게임 서버 자산 패키지에 포함시킵니다.
- Game Manager 또는 Entity API로 서버 빌드를 만들 때 포트 4022 TCP를 디버그 포트로 구성합니다.
- 원격 디버깅을 활성화하려면 컨테이너 내에서
msvsmon을 실행해야 합니다. 일반적인 패턴은 CMD 스크립트를 Game Start 명령으로 지정하고, 게임 서버 실행 파일 외에도msvsmon을 실행하기 위해 명령줄 인수를 사용하는 것입니다. - 다음 옵션으로
msvsmon을 한 번 실행합니다:
- 다음 플래그로
msvsmon을 실행합니다(아래 표시).
포트가 이미 사용 중일 때 프로그램이 프로세스 종료 코드를 처리할 수 있도록, 열려 있지 않은 임의의 포트에 바인딩하는 대신 포트를 구체적으로 지정하는 것을 권장합니다.
- 게임 서버를 할당합니다.
- allocate 호출에서 반환된 외부 디버그 포트를 사용해 VS로 디버깅을 시도합니다.
