4 - 빌드 및 Bolt Server 디플로이
이 장에서는 게임 서버 실행 파일을 업로드하는 방법과 PlayFab Servers 2.0
서비스에서 빌드를 구성하는 방법을 살펴보겠습니다.
이제 게임의 바이너리를 가지고 있으므로, PlayFab
관리 화면으로 되돌아가기 전에 마지막 단계는 모든 파일들을 하나의 패키지로 압축하는 것으로 예제와 같이 bolt_sample.zip
로 이름을 부여할 것입니다.
이 시점에 중요한 한 가지 중요한 상세 사항은 다음과 같습니다: 루트 레벨 (하위 폴더로 바이너리들을 포함하지 마세요)에서 게임 실행파일로 파일들을 압축하세요. 이렇게 하면 나중에 빌드 구성이 용이해집니다.
예제의 경우에서는, 실행 파일은 아래와 같이 bolt_sample.exe
로 이름이 붙여집니다.
Thunderhead에서 새로운 빌드 생성하기
게임 서버를 운영하기 위해서는 먼저 필요한 모든 구성이 포함된 빌드
(PlayFab
서비스)가 필요합니다.
Thunderhead
는 이러한 설정을 사용하여 컨테이너를 만들고, 방화벽을 구성하고, 가상 시스템을 다양한 영역에 배포합니다.
PlayFab
관리 화면으로 돌아가서 왼쪽에 있는 Multiplayer
메뉴를 클릭하고 Build
탭에서 New Build
를 선택합니다.
빌드를 올바르게 구성하기 위해 여러 필드를 채울 수 있습니다. 단계별로 살펴보겠습니다:
PlayFab
의 공식 문서 페이지 this link에서 유사한 문서를 확인하실 수 있습니다.
빌드 상세 내용 - 정보
이 섹션에서는 빌드 이름을 지정하고 사용할 가상 시스템 구성과 VM 당 실행할 수 있는 Game Servers
수를 선택합니다.
게임을 제대로 시뮬레이션하는 데 서버가 얼마나 많은 컴퓨팅 능력을 필요로 하는지를 선택하는 것은 중요한 부분이며, 이는 게임에 따라 다릅니다.
또한 PlayFab은 동일한 시스템에서 여러 서버를 실행할 수 있는 기능도 제공하므로 네트워크 사용량 및 CPU 사용량 측면에서 몇 가지 의미가 있습니다. 여기 https://docs.microsoft.com/en-us/gaming/playfab/features/multiplayer/servers/billing-for-thunderhead에서 VM 유형 및 가격에 대해 확인하실 수 있습니다.
- 권장되는 옵션:
- 빌드 이름:
Bolt Server Build
; - 가상 머신 선택:
Standard_A8_v2 (8 cores)
; - 머신당 서버:
1
.
- 빌드 이름:
빌드 상세 내용 - 가상 머신 OS
PlayFab Thunderhead
는 Windows 및 Linux 가상 머신을 모두 지원하지만 Linux 서버를 실행하기 위한 프로세스에는 사용자가 스스로 컨테이너 이미지
를 구축하여 서버에 직접 업로드하는 과정이 수반됩니다. 반면 Windows 빌드는 바이너리를 보다 쉽게 업로드해야 하지만 유연성은 떨어집니다.
- 권장되는 옵션:
- 플랫폼:
Windows
; - 컨테이너 이미지:
Windows Server Core
.
- 플랫폼:
빌드 상세 내용 - 에셋
여기가 게임 바이너리를 업로드할 장소입니다.
이 목록에 포함된 각 파일은 빌드 프로세스의 후반부에서 컨테이너 이미지에 삽입되고 컨테이너가 실행 중일 때 확장됩니다.
이를 통해 게임 실행에 필요한 모든 사용자 지정 파일을 전송할 수 있습니다.
Upload
버튼을 클릭하고 이전에 패키징 한 zip을 선택합니다:
- 권장되는 옵션:
- 에셋 패키지:
bolt_sample.zip
; - 마운트 경로:
C:\Assets
.
- 에셋 패키지:
빌드 상세 내용 - 시작 명령어
이 필드는 간단하지만 강력합니다. 여기서는 실행 파일을 실행하기 위해 실행할 진입점 명령을 설정합니다.
헤드리스 모드에서 서버가 실행이 되도록 필요한 것처럼, 게임이 이 mode를 따라야 한다는 시그널을 보내기 위해 유니티 커맨드 라인 아규먼트들을 이용할 것입니다.(여기)를 더 읽어보세요.
입력 필드에서, 다음을 작성합니다:
Plain Old Text
C:\Assets\bolt_sample.exe -batchmode -nographics
여러 부분으로 나누어 설명해 보겠습니다.:
C:\Assets
: 은 마운트 경로로 이전 필드에서 설정해둔 것으로, zip 파일이 압축 해제되는 곳입니다.bolt_sample.exe
: 이전에 설정해둔 게임 실행파일의 이름입니다.-batchmode -nographics
: 이것들은 게임이 헤드리스 모드로 실행되도록 하는 데 필요한 인수입니다. 다시 말해서, 아무것도 표시되지 않을 것이고, 어떤 입력도 호스트에서 캡처되지 않을 것입니다.
빌드 상세 내용 - 네트워크
서버가 외부 세계와 통신해야 하는 점을 고려하여 이 섹션에서는 필요한 모든 포트를 구성하여 변경 사항을 PlayFab
에서 관리하는 컨테이너 및 가상 시스템의 방화벽 설정에 직접 적용할 수 있습니다.
우리는 2개의 포터 집합을 오픈해야 합니다: (i) 모든 연결이 조정되는 메인 Bolt 서버 포트입니다. 이 예제에서는 포트 60001을 임의로 선택했습니다. 그리고 (ii) 우리 서버와 Photon 서버와 통신을 하는데 필요한 Photon Cloud 포트로 여기에서 Photon에서 사용되는 전체 포트 목록을 확인할 수 있습니다. 하지만 우리가 관심이 있는 것은 UDP
포트만입니다.
아래 표로 올바른 포트를 확인하십시오.
포트 | 이름 | 프로토콜 |
---|---|---|
60001 | bolt_server | UDP |
5055 | master_server1 | UDP |
27001 | master_server2 | UDP |
5056 | game_server1 | UDP |
27002 | game_server2 | UDP |
5058 | name_server1 | UDP |
27000 | name_server2 | UDP |
빌드 상세 내용 - 선택 사항
Certificate
및 Metadata
는 선택 필드이며 이 튜토리얼에서는 다루지 않습니다.
지역
Regions
필드에서 플레이어를 대기할 서버를 배치할 지역을 정의합니다. 원하는 지역을 설정할 수 있습니다. 최소값인 1
을 대기 서버
및 최대 서버
로 설정했는지 확인하십시오.
이렇게 하면 1
로 가상 머신이 1
로 게임 서버를 실행하게 됩니다.
이러한 값은 나중에 변경할 수 있습니다.
- 빌드 상세 내용:
- Region:
East US
; - Standby servers:
1
; - Maximum servers:
1
.
- Region:
빌드 및 연결
이제 빌드 설정이 제대로 설정되어 있으므로 다음 단계를 수행하려면 시간이 걸리니 저장
버튼을 클릭하고 커피 한 잔 가져오세요.
모든 구성을 유지한 후 PlayFab Orchestrator
가 씬에 입력되고 나머지 세부 정보를 처리합니다:
Azure
인프라상에 사용할 수 있는Hosting Machine
을 프로비저닝합니다;- 필요한
가상 머신
생성; - 설정을 사용하여
Docker
이미지를 구성하고 생성; Game Server
실행으로 컨테이너 스폰.
메인 관리 화면 Build
탭에 있는 Multiplayer
메뉴 내에서 이 프로세스의 상태를 직접 확인할 수 있습니다.
여러분은 아마도 Deploying
에서 Health
로 가는 상태를 보게 될 것입니다.
녹색 Health
상태가 표시되면 서버가 PlayFab Thunderhead
에 배포되어 실행되고 있음을 의미합니다! 잘 하셨습니다!
다른 탭에서는 게임이 실행되는 Virtual Machine
에 대한 더 많은 정보를 확인하실 수 있으며 VM 당 더 많은 서버를 실행하도록 선택한 경우 개별 인스턴스의 상태를 확인하실 수 있습니다.
또한 Azure VM에 원격으로 액세스할 수도 있습니다. 이 기능은 디버깅을 수행하는 데 매우 유용합니다.
이제 게임 서버를 연결할 준비가 되었습니다.
Unity 프로젝트로 돌아가서 PlayFabHeadlessServer
씬 부터 게임을 실행하면 클라이언트로 시작하여 Thunderhead
서버에서 게시한 세션에 가입할 수 있는 PlayFabClient
메뉴가 즉시 로드됩니다.