Quantum 105 - Multiplayer
개요
이때 Game
씬에서 플레이 모드로 들어가 싱글 플레이어 모드로 플레이가 가능합니다. 이와 같은 게임플레이를 고품질 멀티플레이어 게임으로 바꾸는 것은 보통 꽤 어려운 일입니다. 그러나 보시다시피 이 섹션은 이미 이 튜토리얼의 마지막 섹션입니다. 멀티플레이어를 추가하려면 어떻게 해야 할까요?
그 대답은 멀티플레이어 지원이 이미 계속되고 있다는 것입니다! Quantum을 사용하면 게임플레이 코드를 작성하는 데만 집중할 수 있습니다
Quantum 엔진은 멀티 플레이어 게임으로 바꿉니다! 이제 남은 것은 플레이어가 온라인으로 게임에 참여할 수 있는 메뉴 씬을 빠르게 연결하는 것입니다.
메뉴 씬
Photon/QuantumDemo/Menu/
폴더에서 Menu
씬을 엽니다. 메뉴 씬은 로비 시스템을 포함하여 Quantum 게임을 온라인으로 실행하는 데 필요한 모든 기능과 함께 제공되는 샘플 장면입니다.
사용자 지정 콜백
씬의 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명의 플레이어 캐릭터가 생성되었으며 각 인스턴스가 플레이어 캐릭터를 제어합니다.
노트: 클라이언트가 멀리 떨어진 지역(독일에서 미국 동부)에 연결되어 있더라도 게임 플레이는 여전히 완벽하게 반응하고 클라이언트에게 지연의 징후가 보이지 않습니다. 이것은 Quantum의 결정론적 롤백 네트워크 아키텍처를 통해 가능합니다.
Back to top