PUN Classic (v1), PUN 2, Bolt는 휴업 모드입니다. Unity2022에 대해서는 PUN 2에서 서포트하지만, 신기능의 추가는 없습니다. 현재 이용중인 고객님의 PUN 및 Bolt 프로젝트는 중단되지 않고, 퍼포먼스나 성능이 떨어지는 일도 없습니다. 앞으로의 새로운 프로젝트에는 Photon Fusion 또는 Quantum을 사용해 주십시오.

3 - Photon Bolt PlayFab 서버 통합

Photon Bolt와 PlayFab Server 2.0의 통합을 구현할 때 주요 목표는 서비스에서 제공하는 가상 머신에 직접 헤드리스 게임 서버를 구축하고 실행할 수 있는 간단한 방법을 준비하는 것입니다. 이러한 목적을 위해, 우리는 게임에 통합될 수 있는 모든 필요한 API를 사용하여 간단한 샘플을 만들었습니다. 이 장에서는 샘플과 이 샘플을 올바르게 사용하는 방법에 대해 설명합니다.

모든 필요한 파일들은 Bolt Samples 저장소 여기에 있으며, 더 자세한 내용은 PlayFab 폴더에 있습니다. 다음 링크를 통해 접근할 수 있습니다:https://github.com/BoltEngine/Bolt-Sample/tree/master/PlayFab. 다운로드하시고 이 폴더의 파일들을 프로젝트에 임포트 해 주세요.

Scripts 폴더에는, 다음으로 설명되는 클래스 집합을 확인하실 수 있습니다:

  • PlayFabHeadlessServer: 이 클래스는 헤드리스 서버 컨트롤러로 작동합니다. PlayFabBolt API들을 사용하여 서비스와의 통신을 제어하고 게임 서버를 시작합니다.
  • PlayFabMenuClient: 게임 클라이언트에서 사용할 수 있는 간단한 메뉴를 구현합니다. Bolt 클라이언트로서 게임을 시작하고 무작위 세션에 참여할 것입니다.
  • PlayfabLogger: Bolt 로깅 시스템에 연결하여 서버 실행에서 PlayFab 스택 내의 오른쪽 폴더로 로그를 출력하는 특수한 로거 클래스입니다. 이렇게 하면 실행이 완료된 후 서버를 디버그 할 수 있습니다. 이에 대해서는 여기를 읽어보세요.

게임 서버를 실행하고 PlayFab 에이전트와 통신하는 프로세스에는 일련의 조정된 작업이 수반됩니다. 이 작업은 실행 파일이 계속 실행되고 PlayFab이 인스턴스를 제거하지 않도록 보장합니다. 이러한 단계는 아래에 설명되어 있으며 모두 샘플 코드에 의해 수행됩니다:

headless server states
헤드리스 서버 상태

PlayFab 통합 사용

스크립트 집합만으로는 별 효과가 없기 때문에 이러한 스크립트의 사용 사례를 보여주는 몇 가지 간단한 씬이 샘플에 포함되어 있습니다. 씬들은 샘플의 Scenes 폴더에 있습니다.

  • PlayFabHeadlessServer: 이 씬에는 PlayFabHeadlessServer 스크립트를 보관하는 게임 오브젝트가 하나뿐 아니라 지난 장에서 임포트 한 Multiplayer Agent API Package에 포함되어 있는 PlayFabMultiplayerAgentView 컴포넌트도 포함되어 있습니다.
  • PlayFabClient: 이 씬은 클라이언트 메뉴를 로드하고 플레이어가 열려 있는 세션에 참여하도록 합니다.
  • PlayFabGame: 게임 씬의 플레이스 홀더입니다.

PlayFabMultiplayerAgentView 컴포넌트: 서버가 작동 중이고 실행 중임을 알리기 위해 PlayFab Agent에 살아있고 실행 중이라는 것을 보내주는 역할을 합니다. 이 컴포넌트가 없으면 PlayFab Orchestrator(가상 시스템 및 컨테이너를 유지하는 감독 시스템)가 서버가 계속 작동해야 하는지를 인식하지 못하고 결국 킬 됩니다.

다음 순서에 따라 빌드 설정에서 씬을 포함시킵니다: (0) PlayFabHeadlessServer, (1) PlayFabClient 그리고 (2) PlayFabGame. 기본적으로 PlayFabHeadlessServer 스크립트가 batchmode에서 시작되지 않은 경우 빌드 목록에서 다음 장면을 로드합니다. 즉, 프로젝트를 정상적으로 실행하면 클라이언트 메뉴 화면이 로드됩니다.

고려해야 할 또 다른 중요한 측면은 게임이 사용할 지역입니다. 기본적으로 볼트는 Best Region에 연결되도록 구성되어 있기 때문에 PlayFab 인프라에서 게임 서버를 실행할 경우 가장 가까운 지역에 연결됩니다. 이 동작은 피어 간에 가능한 낮은 지연 시간을 부여하므로 예상되지만 게임 세션을 게시할 위치도 결정합니다. 게임 세션이 특정 지역 A에 게시되고 플레이어가 지역 B에 연결되면 실행 중인 게임에 대한 정보를 수신하지 못합니다. 따라서 테스트를 위해 Bolt 설정 창(Bolt/Settings 메뉴)으로 이동한 후 지역 필드의 Photon 서비스 섹션에서 고정 영역을 선택합니다. 임의의 영역(Photon Region 여기에서 상세 내용 확인)을 선택할 수 있지만 서버가 배포될 영역 근처에 있는 영역을 사용하는 것이 좋습니다. 이렇게 하면 게임 서버와 플레이어가 같은 영역에 연결되므로 제대로 연결할 수 있습니다.

Bolt가 사용자의 변경 사항을 인지하고 있는지 확인을 위해 Bolt/Compile Assembly 메뉴에서 Bolt 컴파일러를 실행합니다. Windows Platform용 독립 실행형 실행 파일로 프로젝트를 빌드 합니다. 이는 매우 중요한데, 우리가 사용할 서비스는 주로 Windows 빌드를 지원하기 때문입니다. 리눅스 빌드를 실행할 수도 있지만 서버 컨테이너를 만들기 위해 다른 접근 방식을 사용합니다. 다음 챕터에서 이 실행 파일을 사용하여 헤드리스 서버를 실행할 것입니다.

build settings
빌드 설정

다음 장 >>

Back to top