This document is about: QUANTUM 2
SWITCH TO

Quantum 105 - Multiplayer

개요

이때 Game 씬에서 플레이 모드로 들어가 싱글 플레이어 모드로 플레이가 가능합니다. 이와 같은 게임플레이를 고품질 멀티플레이어 게임으로 바꾸는 것은 보통 꽤 어려운 일입니다. 그러나 보시다시피 이 섹션은 이미 이 튜토리얼의 마지막 섹션입니다. 멀티플레이어를 추가하려면 어떻게 해야 할까요?

그 대답은 멀티플레이어 지원이 이미 계속되고 있다는 것입니다! Quantum을 사용하면 게임플레이 코드를 작성하는 데만 집중할 수 있습니다 Quantum 엔진은 멀티 플레이어 게임으로 바꿉니다! 이제 남은 것은 플레이어가 온라인으로 게임에 참여할 수 있는 메뉴 씬을 빠르게 연결하는 것입니다.

메뉴 씬

Photon/QuantumDemo/Menu/ 폴더에서 Menu 씬을 엽니다. 메뉴 씬은 로비 시스템을 포함하여 Quantum 게임을 온라인으로 실행하는 데 필요한 모든 기능과 함께 제공되는 샘플 장면입니다.

the menu scene
메뉴 씬.

사용자 지정 콜백

씬의 QuantumCallbacks 게임 객체에서 CustomCallbacks 스크립트를 엽니다. 이 스크립트는 디버그 러너와 유사하지만 온라인 세션을 위한 Quantum 세션에 플레이어 데이터를 주입합니다.

코드를 다음으로 조정하여 사용자 지정 플레이어 데이터를 주입합니다:

C#

using Quantum;
using UnityEngine;

public class CustomCallbacks : QuantumCallbacks {

  public RuntimePlayer PlayerData;
  
  public override void OnGameStart(Quantum.QuantumGame game) {
    // IsPaused is true when a player late joins or reconnects to a room.
    // This prevents the spawning of another player object when reconnecting.
    if (game.Session.IsPaused) return;

    foreach (var localPlayer in game.GetLocalPlayers()) {
      Debug.Log("CustomCallbacks - sending player: " + localPlayer);
      game.SendPlayerData(localPlayer, PlayerData);
    }
  }

  public override void OnGameResync(Quantum.QuantumGame game)
  {
    // OnGameResync is called when a player reconnects.
    Debug.Log("Detected Resync. Verified tick: " + game.Frames.Verified.Number);
  }
}

유니티 편집기로 돌아가서 캐릭터 프로토타입을 CustomCallbacks 컴포넌트의 CharacterPrototype 필드에 놓습니다.

온라인 플레이

다음으로 우리는 온라인 플레이를 테스트할 플레이어를 만들 것입니다.

먼저 Edit > ProjectSettings > Player > Resolution and Presentation으로 이동한 후 전체 화면 모드를 Windowed으로 변경합니다. 그런 다음 File > Build Settings으로 이동하여 빌드를 만듭니다.

빌드된 애플리케이션을 시작하고 편집기에서 플레이 모드로 들어가 게임의 인스턴스 2개를 시작합니다. 게임 내 이름 필드에서 각 클라이언트에 고유한 이름을 지정한 후 Play Online을 누릅니다. 두 클라이언트가 동일한 로비에 나타납니다. 게임을 시작하려면 마스터 클라이언트에서 Start Game을 누릅니다. 2명의 플레이어 캐릭터가 생성되었으며 각 인스턴스가 플레이어 캐릭터를 제어합니다.

two clients playing the game

노트: 클라이언트가 멀리 떨어진 지역(독일에서 미국 동부)에 연결되어 있더라도 게임 플레이는 여전히 완벽하게 반응하고 클라이언트에게 지연의 징후가 보이지 않습니다. 이것은 Quantum의 결정론적 롤백 네트워크 아키텍처를 통해 가능합니다.

Back to top