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

로비 매니저

온라인 멀티플레이 게임과 관련하여 게임을 매우 흥미롭게 만들고 때로는 두각을 나타낼 수 있는 주요 요소 중 하나는 모든 플레이어에 최고의 경험을 제공하는 특정 유형의 플레이 스타일이나 스킬 레벨에 맞춰 클라이언트를 하나로 모으는 것입니다.

이 시나리오를 고려하여 Photon Bolt 팀은 기본적인 로비/매치 제작 시스템을 구축하여 헤드스타트를 제공하고, 이 시스템을 구현하여 기능을 확장하거나 시각적인 내용을 교체할 수 있지만 핵심 코드는 유지합니다. 원하는 대로 수정할 수 있습니다.

로비 샘플에 구현된 주요 기능은 다음과 같습니다:

  • 사용자 지정 이름/id로 새 세션을 만듭니다.
  • 임의의 세션에 참여합니다.
  • 현재 지역에 있는 세션을 탐색합니다.
  • 게임 세션에서 플레이어를 내보냅니다.
  • 세션 내에 있는 플레이어를 사용자가(이름 및 색상) 커스터마이징 합니다.
  • 각 플래이어가 "준비"를 합니다.
  • 게임을 시작하기 위해 구성 가능한 최소 플레이어 수입니다.

이 페이지의 나머지 부분에서는 샘플 인터페이스를 사용하는 방법과 구성할 수 있는 방법에 대해 설명합니다. 이 샘플의 모든 소스 코드는 당사의 볼트 샘플 Github 리포지토리 여기에서 확인할 수 있습니다.

먼저 플레이어가 PhotonLobby 씬을 처음 로드할 때 나타나는 메인 윈도우부터 살펴보겠습니다. 이 씬에서는 Photon Bolt의 실행과 관리를 담당하는 LobbyManager 프리팹의 예를 볼 수 있습니다.

main lobby window
Main Lobby window.

인터페이스에서 다음의 구성요소를 확인할 수 있습니다.

  1. 상태 레이블: 로컬 피어가 시작되었는지 여부에 관계없이 서버 또는 클라이언트의 현재 상태를 표시합니다.
  2. 호스트 레이블: 클라이언트의 경우 현재 세션 식별자를 표시하거나, 서버로 실행 중인 경우 "self"가 표시됩니다.
  3. 세션 이름 입력: 여기에서 세션/룸 이름을 임의의 이름으로 구성할 수 있습니다. 기본적으로 임의 ID가 생성됩니다.
  4. 세션 생성 버튼: 새 세션을 시작하고 다른 플레이어를 기다리려면 이 버튼을 클릭합니다.
  5. 서버 찾아보기 버튼: 이 버튼을 누르면 피어가 클라이언트로 시작하여 서버 목록 창(다음 참조)에서 사용 가능한 세션을 찾을 수 있습니다.
  6. 무작위 참여 버튼: 여기를 클릭하면 피어가 클라이언트로 시작되며, 사용 가능한 임의 세션에 가입하여 룸 창에 바로 들어갑니다(다음에 나타남).

다음화면으로 바뀌게되는 새로운 세션을 생성(화면의 Create 버튼 클릭)하여 계속할 것 입니다., 이 예제를 좀 더 재미있게 하기 위해, 우리는 세 개의 다른 클라이언트를 시작했고, Join Random 버튼을 이용하여 세션에 참여했습니다 - 클릭만 하면 됩니다.

session window
Session window.

세션 윈도우는 다음의 요소로 설명할 수 있습니다:

  1. Shutdown 버튼: 로컬 피어의 Bolt가 종료됩니다. 이렇게 하면 세션이 파괴될 수 있습니다(서버의 경우).
  2. 홈 아이콘: 로컬 피어의 입력을 표시하는 데만 사용됩니다.
  3. 색상 선택 버튼: 룸내에 있는 플레이어와 관련된 사용자 지정 색상 특성, 이것은 동기화할 수 있는 것의 예에 불과합니다. 다른 색을 무작위로 선택하려면 해당 색을 클릭합니다.
  4. 플레이어 이름 입력: 여기서 플레이어 이름을 구성할 수 있습니다. 이 속성도 사용자 정의 예제 속성입니다. 기본적으로 샘플은 각 플레이어에 대해 임의의 이름을 생성합니다.
  5. 참여/준비 버튼: 이 버튼을 사용하여 게임을 시작할 준비가 되었음을 서버에 신호를 보냅니다.
  6. 킥 버튼: 이 옵션은 서버측에서만 사용할 수 있으며, 이름에서 알 수 있듯이 플레이어를 방에서 내보내서 종료한 후 메인 창으로 돌아갑니다.

룸안의 인터페이스를 살펴보셨으니 이제 세션 목록 UI를 살펴보도록 하겠습니다. 여기서 클라이언트는 다음 중 어떤 룸에 가입할지 선택할 수 있습니다.

session list window
Session list window.

세션 목록 UI는 매우 간단합니다. 각 행은 실행 중인 서버를 나타냅니다(이 정보는 서버를 생성, 파괴 또는 업데이트할 때마다 갱신됩니다).

  1. 세션/룸 라벨: 이것은 서버의 세션 식별입니다. 세션 작성자가 세션에 대해 알 수 있는 사람이 읽을 수 있는 텍스트일 뿐입니다.
  2. 슬롯 레이블: 룸에 있는 현재 플레이어의 수와 허용되는 최대값을 설명합니다.
  3. 가입 버튼: 클라이언트가 이 단추를 클릭하여 특정 서버와의 연결 프로세스를 시작할 수 있습니다.

여기에서는 로비 샘플을 사용할 때의 전체 흐름을 보여 줍니다. 보시다시피, 길지는 않지만, 많은 게임의 기본 매치매이킹 요건을 달성합니다. 사용자 정의 세션 매개 변수를 사용하여 확장하고 게임 유형별로 필터링할 수 있습니다.

lobby matchmaking flow
Lobby Matchmaking flow.

환경구성

Lobby Manager 샘플은 몇 가지 구성만 사용할 수 있으며, 모두 LobbyManager 프리팹과 관련된 LobbyManager 구성 요소를 통해 노출됩니다. 아래에서는 다음 설정을 볼 수 있습니다.

  • 로비 씬: 로비 관리자가 사용될 현재 씬입니다. 이는 플레이어가 경기를 종료할 때 원본 씬을 로드하는 데 필요합니다.
  • 게임 씬: 플레이어가 준비되면 로드되는 대상 씬입니다.
  • 최소 플레이어: 경기를 시작하기 위해 최소 플레이어 수;
  • 프리매치 카운트다운: 최소 플레이어 수에 도달한 후 게임을 시작하기 전에 카운트다운해야 합니다.
lobby manager configuration
로비 매니저 환경구성.
Back to top