클라우드에서 Windows 서버 배포 및 실행
이 가이드에서는 Windows 서버 빌드를 PlayFab 멀티플레이어 서버(MPS) 클라우드에 배포하는 방법을 설명합니다. 이는 개발 중인 게임 서버를 테스트하고 신속하게 반복하는 데 유용합니다. 많은 사용자는 Windows에서 테스트한 후 프로덕션 릴리스에 Linux 서버를 사용합니다.목표
- 프로젝트를 클라우드에 배포합니다.
- 로컬 게임 클라이언트에서 연결합니다.
요구 사항
- Visual Studio를 다운로드합니다. Community 버전은 무료입니다.
- 필수 워크로드: .NET 데스크톱 개발 및 C++를 사용한 데스크톱 개발
- Unreal Engine 소스 코드를 다운로드합니다. 자세한 내용은 Downloading Unreal Engine Source code (외부)를 참조하세요.
- PlayFab Unreal GSDK가 설치되고 구성된 완료된 Unreal 프로젝트
- Visual Studio 또는 Development Editor에서 빌드된 프로젝트의 Release Server 구성
- Visual Studio 또는 Development Editor에서 빌드된 프로젝트의 Client 구성
- 타이틀에 MPS가 활성화되어 있고 결제가 설정됨
- [선택 사항] Docker for Windows 설치
지침
게임 서버 패키징
- [선택 사항] 이 섹션은 Unreal이 프로젝트에 빌드하는 파일을 새로 고치는 데 사용할 수 있습니다. 최근에 파일을 생성하거나 삭제한 경우 유용합니다.
- 최근에 “development editor” 구성에서 프로젝트를 빌드하지 않았다면 지금 하세요.
- Visual Studio를 닫습니다.
- 프로젝트의
{ProjectName}.uproject파일로 이동합니다. - 파일 편집기에서
{ProjectName}.uproject파일을 마우스 오른쪽 버튼으로 클릭하고 “Generate Visual Studio Project Files”를 선택합니다. - Visual Studio에서 {ProjectName}.sln 파일을 다시 엽니다.
- Development Editor 구성을 선택합니다.
- 프로젝트를 실행합니다.
- 프로젝트가 로드된 Unreal Editor를 확인합니다.
- Unreal Editor 메뉴의 왼쪽 상단에서 File -> Package -> Build Target -> __{ProjectName}Server__를 선택합니다.
- File -> Package -> Build Configuration -> __Shipping__을 선택합니다.
- File -> Package -> __Windowsx64__를 선택합니다.
- 출력 위치 {ShippingServerFolder}를 선택하고 기억합니다.
- 이제 이 패키지된 게임 서버 버전을 사용하여 LocalMultiplayerAgent로 테스트할 수 있습니다.
- LocalMultiplayerAgent로 확인한 후 빌드 생성 가이드를 참조하세요.
- 이 시점에서 MPS에서 테스트하려면 PlayFab MpsAllocatorSample의 중간 도구가 필요합니다.
- 이 도구는 현재 일부 클라이언트 작업을 우회하며 게임 클라이언트의 직접 요청 없이 서버를 할당할 수 있게 해줍니다.
- 클라이언트에서 이를 수행하는 적절한 방법은 할당 가이드에서 다루는 별도의 항목입니다.
- 위의 {ShippingServerFolder}에서 Shipping Server 빌드를 압축합니다.
- zip에는 {ShippingServerFolder}의 모든 항목이 포함되어야 하며, 선택적으로 zip 파일의 루트에 있어야 합니다.
- [선택 사항] 즉, zip의 루트에는 {ProjectName}Server.exe가 포함되어야 합니다(exe는 “WindowsServer”와 같은 하위 폴더에 있으면 안 됩니다. 필요한 경우 zip을 다시 빌드하세요).
- 빌드 생성 프로세스 가이드에 익숙해집니다.
- 특정 구성에 대한 자세한 정보는 아래에 자세히 설명되어 있습니다.
PlayFab에서 Windows 전용 서버 설정
이 섹션에서는 PlayFab MPS에서 빌드를 생성하고 게임 서버를 업로드하고 처음으로 연결하는 방법을 다룹니다. Unreal에 특정하지 않은 지침은 코어 MPS 서버 생성 가이드도 따를 수 있습니다.- Game Manager -> Multiplayer로 이동합니다.
- __New Build__를 선택합니다.
- 빌드에 이름을 지정합니다.
- Virtual Machine을 선택합니다(이 가이드에 설명된 샘플의 경우 코어 수가 가장 적은 권장 옵션이면 충분합니다).
- Servers per machine은 약 1~10일 수 있습니다.
- 이 숫자를 늘리는 것은 게임 서버의 성능에 따라 다릅니다.
- VM 메트릭을 사용하여 게임 서버의 성능을 측정하고 이 숫자를 늘리기 위해 최적화할 수 있습니다.
- 지금은 __Server details__를 건너뜁니다(다음 단계에서 다룸).
- Assets 블록에서 이전 섹션의 zip 파일을 업로드 상자로 드래그합니다.
- 다시 시작하는 경우 __Use existing assets__를 선택할 수 있습니다.
- 업로드가 완료될 때까지 기다립니다.
- 지금은 __Start Command__를 건너뜁니다(다음 단계에서 다룸).
- Network 블록에서 Port Name 필드를
gameport로 설정합니다.- 게임 서버에 연결하는 데 사용될 포트를 정의하는 것은 필수입니다.
- Unreal GSDK에는 이 포트를 자동으로 읽고 내부적으로 이 값에 따라 Unreal Server 호스트 포트를 재정의하는 코드가 포함되어 있습니다.
- 이 포트의 이름은 반드시
gameport여야 합니다.
- 구성하려는 “Server Details”와 일치하는 다음 단계로 계속합니다.
옵션 1: Windows Process Mode
이 옵션은 VM에서 직접 프로세스로 게임 서버를 실행합니다. 프로세스는 포트, 드라이브 등을 포함한 전체 컴퓨터에 대한 액세스를 공유합니다. 이 옵션은 자산 업로드의 압축을 풀고 압축 풀린 파일의 위치를 작업 디렉터리로 사용하여 “Start Command”를 실행합니다.- __Server Details__에서 __Process__와 __Windows__를 선택합니다.
- __Assets__에서 start command를 다음으로 설정합니다.
- 로그 파일을 생성하려면
{ProjectName}Server.exe또는{ProjectName}Server.exe -log - start command는 압축 풀린 자산 파일을 작업 디렉터리로 사용하여 명령줄에서 실행됩니다.
- zip 파일을 하위 폴더로 압축한 경우 상대 하위 경로로 프로젝트에 액세스하기 위해
WindowsServer/{ProjectName}Server.exe와 같은 상대 경로를 지정할 수 있습니다.
- 로그 파일을 생성하려면
- __Add Build__를 선택합니다.
- 아래의 Configure Regions 섹션으로 건너뜁니다.
옵션 2: Windows Container Mode
이 옵션은 게임 서버를 docker 컨테이너에서 실행하여 서로 격리합니다. 각 서버 프로세스는 별도의 가상 드라이브, 가상 네트워크 포트 등을 갖습니다. 이 옵션은 자산을 정의한 Mount Path에 압축 풀고 start command가 Mount Path를 기반으로 하는 전체 경로일 것으로 예상합니다. 전제 조건 요구 사항: Windows 컨테이너를 실행하도록 Docker 구성- __Server Details__에서 __Process__와 __Windows__를 선택합니다.
- __Assets__에서
- gameServer zip 파일의 __Mount Path__를
C:\assets(또는 이와 유사한 것, {MountPath}로 표시됨)로 설정합니다. - start command를 다음과 같이 설정합니다:
{MountPath}\{ProjectName}Server.exe또는 로그 파일을 생성하려면{MountPath}\{ProjectName}Server.exe -log - start command는 -Server.exe 파일에 대한 컨테이너 내의 전체 경로를 나타내야 합니다.
- zip 파일을 하위 폴더로 압축한 경우 절대 하위 경로로 프로젝트에 액세스하기 위해
{MountPath}\WindowsServer\{ProjectName}Server.exe와 같은 절대 경로를 지정할 수 있습니다.
- gameServer zip 파일의 __Mount Path__를
- __Add Build__를 선택합니다.
- 아래의 Configure Regions 섹션으로 건너뜁니다.
