게임 서버 할당 및 Visual Studio 디버깅 도구 연결
멀티 플레이어 세션 할당
PlayFab 멀티 플레이어 서버 2.0에서는 RequestMultiplayerServer API를 사용하여 멀티 플레이어 서버 응용 프로그램의 인스턴스를 할당할 수 있습니다.
일반적으로 이 API는 특정 타이틀에 대해 구성 된 PlayFab 개발자 비밀 키를 사용하여 사용자의 서비스(매치 메이킹 서비스 또는 로비 서비스)에서 호출됩니다. 비밀 키에 대한 자세한 내용은 비밀 키 관리를 참조하세요.
플레이어를 한곳에 가져오고 서버를 할당하는 일반적인 패턴은 다음과 같습니다.
- 클라이언트가 네트워크 QoS 정보를 수집합니다.
- 클라이언트가 사용자 지정 매치 메이킹 서비스와 상호 작용하거나 소셜 초대를 통해 조합합니다.
- 사용자 지정 매치 메이킹 서비스는 지역의 우선 순위 목록을 사용하여 그룹에 대한 세션을 할당합니다.
RequestMultiplayerServer에는 몇 가지 주요 매개 변수가 있습니다.
- BuildID - 할당할 특정 서버 빌드입니다.
- SessionID- 세션의 식별자입니다. 이는 호출자에 의해 생성된 GUID 문자열입니다. 동일한 논리적 세션에 대해 이 API를 재시도하려면 동일한 식별자를 사용해야 합니다. 그러면 불필요한 서버를 만드는 호출자 재시도 동작의 가능성이 줄어듭니다.
- SessionCookie - 활성화 시 게임 서버 SDK를 통해 할당된 세션에 전달되는 임의의 데이터입니다. 이 필드는 일반적으로 클라이언트를 인증하기 위해 게임 서버가 사용하는 공유 키를 전달하는 데 사용됩니다. 데이터는 4킬로바이트보다 작아야 합니다.
- PreferredRegions - 서버를 할당하는 데 사용되는 순서가 지정된 지역의 목록입니다. 클라이언트 장치에서 수집된 네트워크 QoS 수치를 지역의 순위를 지정하는 주요 요소로 사용하는 것이 좋습니다.
할당에 성공하면 다음 정보가 반환됩니다.
- 서버의 IPv4 주소.
- TCP/UDP 포트 매핑(게임 서버에 클라이언트 연결 참조).
- 서버의 지역.
참고 항목
MpsAllocatorSample(여기에서 확인됨)을 사용하여 게임을 개발하는 동안 게임 서버를 쉽게 할당할 수 있습니다.
클라이언트 할당
멀티 플레이어 서버는 비용이 높고 강력합니다. 기본적으로 PlayFab 개발자 비밀 키를 사용하여 신뢰할 수 있는 사용자의 자체 서비스에서만 멀티 플레이어 서버를 요청할 수 있습니다.
그러나 플레이어 장치에서 서버를 직접 할당하면 서비스 간 호출 구현 비용을 절약할 수 있으며 일부 경우에 유용할 수 있습니다.
클라이언트 할당을 사용하려면:
- 왼쪽 메뉴에서 설정을 선택합니다.
- API 기능 탭을 선택합니다.
- 그런 다음 클라이언트가 게임을 시작할 수 있도록 허용 옵션을 활성화합니다.
이 설정이 활성화되면 타이틀과 연결된 모든 플레이어에 대한 엔터티 토큰을 사용하여 RequestMultiplayerServer를 호출할 수 있습니다.
배포된 멀티 플레이어 서버 디버깅
게임 서버가 Azure에 배포되었을 때 원격으로 디버깅하고자 할 수 있습니다. Visual Studio를 사용하면 현재 컨테이너에서 Visual Studio Remote Debugging 도구를 설치 및 구성해야 합니다.
참고 항목
이에 따르는 절차는 안전하지 않으며 인증되지 않은 디버깅을 발생시킵니다.
다음 절차는 개발 및 테스트를 위해서 빌드된 서버에만 적용되어야 하며 플레이어를 대상으로 하는 환경에서는 일반적으로 사용하지 않아야 합니다.
- VS2017 Remote Debugging 도구 다운로드:
Invoke-WebRequest -OutFile rtools_setup_x64.exe -Uri
https://aka.ms/vs/15/release/RemoteTools.amd64ret.enu.exe
- 게임 서버 자산 패키지에 이러한 도구를 포함합니다.
- 게임 관리자에서 또는 엔터티 API로 서버 빌드를 만드는 과정의 일환으로 포트 4022 TCP를 디버그 포트로 구성합니다.
- 원격 디버깅을 사용하도록 설정하려면 컨테이너 내에서
msvsmon
을 실행해야 합니다. 일반적인 패턴은 CMD 스크립트를 게임 시작 명령으로 지정하고, 명령줄 인수를 사용하여 게임 서버 실행 파일과 함께msvsmon
을 실행하는 것입니다. - 다음과 함께
msvsmon
을 한 번 실행합니다.
/prepcomputer /quiet
- 플래그와 함께
msvsmon
을 실행합니다(아래 참조).
/nostatus /noauth /nosecuritywarn /anyuser /nofirewallwarn /nodiscovery /port 4022
참고 항목
포트가 이미 사용 중인 경우 프로그램이 프로세스 종료 코드를 처리할 수 있도록 열려 있지 않은 임의의 포트에 바인딩하는 대신 포트를 특별히 나열하는 것을 권장합니다.
- 게임 서버를 할당합니다.
- 할당 호출에서 반환된 외부 디버그 포트를 사용하여 VS를 통해 디버깅을 시도합니다.