매치메이킹 기초
세션
NetworkRunner
를 멀티플레이어 모드에서 시작하면, 하나의 "세션"에 참가하게 됩니다.
세션은 여러 클라이언트가 공유하며, 고유한 SessionName
을 가집니다.
NetworkRunner
를 시작할 때 SessionName
을 전달하면, Fusion은 해당 이름의 세션이 존재하면 그 세션에 참가하고,
존재하지 않으면 새 세션을 생성합니다.
C#
var networkRunner = GetComponent<NetworkRunner>();
var args = new StartGameArgs()
{
GameMode = GameMode.Shared,
PlayerCount = 10, // player count is optional and can be used to define the maximum amount of players in the session.
SessionName = "MyRoomName"
};
networkRunner.StartGame(args);
클라이언트가 세션을 생성하지 않고 참가만 하도록 하려면 EnableClientSessionCreaton
을 False
로 설정할 수 있습니다.
StartGameArgs
에 SessionName
이 지정되지 않으면, 클라이언트는 공간이 있는 임의의 세션에 참가하거나,
열린 세션이 없을 경우 랜덤 이름으로 새 세션을 생성합니다.
지역
Fusion 세션은 사용 가능한 지역 중 하나에서 시작할 수 있습니다.
세션은 지역별로 존재하므로, SessionName
으로 기존 세션에 참가할 때는 참가자가 같은 지역에 있어야 합니다.
기본적으로 PhotonAppSettings
에 지역이 설정되어 있지 않으면, Fusion은 Best Region
에 자동 연결합니다.
이는 시작 시 모든 지역에 핑을 보내 가장 낮은 핑을 가진 지역에 연결하는 방식입니다.
하지만 Best Region
은 결정적이지 않기 때문에, 핑 값 차이가 미미할 경우 지역이 예측 불가능하게 선택될 수 있습니다.
실행 중 코드로 Region
을 설정하는 예시는 여기에서 확인할 수 있습니다.
사용 가능한 전체 지역 목록은 여기에서 확인할 수 있습니다.
고급 매치메이킹
고급 매치메이킹 옵션은 전체 Fusion 문서에서 확인할 수 있습니다.
인증:
게임 출시 전에 반드시 구현할 것을 권장합니다.허용 지역 목록:
출시 초기에는 소수의 지역(us, eu, asia 등)만 허용하여 커뮤니티 분리를 방지하는 것이 좋습니다.로비:
세션에 참가하기 전에 현재 열려 있는 세션 목록을 확인할 수 있습니다.커스텀 속성:
예를 들어, "map" 속성을 "map1"로 설정하면, 클라이언트는 "map1" 맵이 실행 중인 세션만 필터링하여 참가할 수 있습니다.빠른 재접속:
연결이 끊겼을 경우, 플레이어가 다시 세션에 빠르게 재접속할 수 있도록 구현합니다.