다음을 통해 공유


게임 서버 할당 및 Visual Studio 디버깅 도구 연결

멀티 플레이어 세션 할당

PlayFab 멀티 플레이어 서버 2.0에서는 RequestMultiplayerServer API를 사용하여 멀티 플레이어 서버 응용 프로그램의 인스턴스를 할당할 수 있습니다.

일반적으로 이 API는 특정 타이틀에 대해 구성 된 PlayFab 개발자 비밀 키를 사용하여 사용자의 서비스(매치 메이킹 서비스 또는 로비 서비스)에서 호출됩니다. 비밀 키에 대한 자세한 내용은 비밀 키 관리를 참조하세요.

플레이어를 한곳에 가져오고 서버를 할당하는 일반적인 패턴은 다음과 같습니다.

  1. 클라이언트가 네트워크 QoS 정보를 수집합니다.
  2. 클라이언트가 사용자 지정 매치 메이킹 서비스와 상호 작용하거나 소셜 초대를 통해 조합합니다.
  3. 사용자 지정 매치 메이킹 서비스는 지역의 우선 순위 목록을 사용하여 그룹에 대한 세션을 할당합니다.

RequestMultiplayerServer에는 몇 가지 주요 매개 변수가 있습니다.

  • BuildID - 할당할 특정 서버 빌드입니다.
  • SessionID- 세션의 식별자입니다. 이는 호출자에 의해 생성된 GUID 문자열입니다. 동일한 논리적 세션에 대해 이 API를 재시도하려면 동일한 식별자를 사용해야 합니다. 그러면 불필요한 서버를 만드는 호출자 재시도 동작의 가능성이 줄어듭니다.
  • SessionCookie - 활성화 시 게임 서버 SDK를 통해 할당된 세션에 전달되는 임의의 데이터입니다. 이 필드는 일반적으로 클라이언트를 인증하기 위해 게임 서버가 사용하는 공유 키를 전달하는 데 사용됩니다. 데이터는 4킬로바이트보다 작아야 합니다.
  • PreferredRegions - 서버를 할당하는 데 사용되는 순서가 지정된 지역의 목록입니다. 클라이언트 장치에서 수집된 네트워크 QoS 수치를 지역의 순위를 지정하는 주요 요소로 사용하는 것이 좋습니다.

할당에 성공하면 다음 정보가 반환됩니다.

참고 항목

MpsAllocatorSample(여기에서 확인됨)을 사용하여 게임을 개발하는 동안 게임 서버를 쉽게 할당할 수 있습니다.

클라이언트 할당

멀티 플레이어 서버는 비용이 높고 강력합니다. 기본적으로 PlayFab 개발자 비밀 키를 사용하여 신뢰할 수 있는 사용자의 자체 서비스에서만 멀티 플레이어 서버를 요청할 수 있습니다.

그러나 플레이어 장치에서 서버를 직접 할당하면 서비스 간 호출 구현 비용을 절약할 수 있으며 일부 경우에 유용할 수 있습니다.

클라이언트 할당을 사용하려면:

  • 왼쪽 메뉴에서 설정을 선택합니다.
  • API 기능 탭을 선택합니다.
  • 그런 다음 클라이언트가 게임을 시작할 수 있도록 허용 옵션을 활성화합니다.

게임 관리자 - 설정 - API 기능 - 클라이언트가 게임을 시작할 수 있도록 허용

이 설정이 활성화되면 타이틀과 연결된 모든 플레이어에 대한 엔터티 토큰을 사용하여 RequestMultiplayerServer를 호출할 수 있습니다.

배포된 멀티 플레이어 서버 디버깅

게임 서버가 Azure에 배포되었을 때 원격으로 디버깅하고자 할 수 있습니다. Visual Studio를 사용하면 현재 컨테이너에서 Visual Studio Remote Debugging 도구를 설치 및 구성해야 합니다.

참고 항목

이에 따르는 절차는 안전하지 않으며 인증되지 않은 디버깅을 발생시킵니다.

다음 절차는 개발 및 테스트를 위해서 빌드된 서버에 적용되어야 하며 플레이어를 대상으로 하는 환경에서는 일반적으로 사용하지 않아야 합니다.

  1. VS2017 Remote Debugging 도구 다운로드:
Invoke-WebRequest -OutFile rtools_setup_x64.exe -Uri
https://aka.ms/vs/15/release/RemoteTools.amd64ret.enu.exe
  1. 게임 서버 자산 패키지에 이러한 도구를 포함합니다.
  2. 게임 관리자에서 또는 엔터티 API로 서버 빌드를 만드는 과정의 일환으로 포트 4022 TCP를 디버그 포트로 구성합니다.
  3. 원격 디버깅을 사용하도록 설정하려면 컨테이너 내에서 msvsmon을 실행해야 합니다. 일반적인 패턴은 CMD 스크립트를 게임 시작 명령으로 지정하고, 명령줄 인수를 사용하여 게임 서버 실행 파일과 함께 msvsmon을 실행하는 것입니다.
  4. 다음과 함께 msvsmon을 한 번 실행합니다.
/prepcomputer /quiet
  1. 플래그와 함께 msvsmon을 실행합니다(아래 참조).
/nostatus /noauth /nosecuritywarn /anyuser /nofirewallwarn /nodiscovery /port 4022

참고 항목

포트가 이미 사용 중인 경우 프로그램이 프로세스 종료 코드를 처리할 수 있도록 열려 있지 않은 임의의 포트에 바인딩하는 대신 포트를 특별히 나열하는 것을 권장합니다.

  1. 게임 서버를 할당합니다.
  2. 할당 호출에서 반환된 외부 디버그 포트를 사용하여 VS를 통해 디버깅을 시도합니다.