지역
Photon Cloud는 전 세계적으로 저지연 게임을 위한 글로벌 연결을 제공합니다.
이를 위해 다양한 지역에 서버를 호스팅 합니다.
사용 가능한 지역은 시간이 지남에 따라 변경되므로, 클라이언트는 Photon 네임 서버에서 현재 지역 목록을 가져옵니다.
사용 가능한 지역 목록은 제품마다 다릅니다.
지역 허용 목록은 AppId 별로 사용할 수 있는 지역을 정의합니다.
각 지역은 서로 완전히 독립적이며, 매치메이킹을 위한 마스터 서버와 룸을 호스팅 하는 게임 서버로 구성됩니다.
사용 가능한 지역
Photon Cloud는 전 세계 여러 호스팅 센터에 분포된 여러 지역의 서버로 구성되어 있습니다.
일부 지역 서버는 특정 제품과 클라이언트 SDK만 지원합니다. 예를 들어, Fusion 클라이언트는 일본 지역을 사용할 수 있지만, Chat은 사용할 수 없습니다.
각 Photon Cloud 지역은 "지역 토큰"으로 식별되며, 이는 대소문자를 구분하지 않는 짧은 문자열입니다.
예를 들어, "EU" 또는 "eu"는 모두 유럽 지역을 참조하며 동일하게 인정됩니다.
지역 | 호스팅 위치 | 토큰 |
---|---|---|
아시아 | 싱가포르 | asia |
유럽 | 암스테르담 | eu |
남아메리카 | 상파울루 | sa |
대한민국 | 서울 | kr |
미국 동부 | 워싱턴 D.C. | us |
허용 지역 목록
플레이어와 사용자에게 제공되는 지역을 제한해야 하는 몇 가지 이유가 있습니다(아래 참조).
지역 허용 목록을 사용하면 클라이언트 측 변경 없이 관리 화면에서 애플리케이션 별로 사용 가능한 지역을 직접 사용자 정의할 수 있습니다.
관리 화면 열기, 선택한 애플리케이션의 "관리"를 클릭한 다음 "허용 목록 편집"을 클릭하십시오.
허용할 지역 목록을 입력할 수 있는 입력 필드가 제공됩니다:
- 사용 가능한 지역은 SDK 별로 위에서 정의되며, 때로는 산업 서클에 대해 별도로 정의됩니다.
- 허용 목록은 세미콜론으로 구분된 지역 토큰 문자열이어야 합니다. 예: "eu;us".
- 지역 토큰은 대소문자를 구분하지 않습니다.
- 정의되지 않았거나 인식되지 않은 지역 토큰은 목록에서 무시됩니다.
- 빈 문자열("") 또는 잘못된 형식 문자열(예: ";;;")은 모든 사용 가능한 지역이 허용됨을 의미합니다.
변경(확인 및 저장) 후 10분 이내에 네임 서버가 필터링 된 목록을 연결 클라이언트에 전송합니다.
클라이언트 측의 충돌을 피하려면 핑을 통해 "최적의 지역"에 연결하거나, 지역 목록에서 받은 지역을 선택하십시오.
지역 선택 방법
미국의 사용자는 Photon Cloud의 미국 지역에 연결할 경우 가장 낮은 지연 시간을 경험할 수 있습니다. 간단합니다.
하지만 전 세계의 사용자는 어떻게 해야 할까요?
옵션은 다음과 같습니다..
- a) 게임 클라이언트가 다양한 Photon Cloud 지역에 핑을 보내고, 가장 낮은 핑의 지역을 미리 선택하도록 설정합니다. 방법 보기
- b) 특정 지역에 맞춘 클라이언트 빌드를 배포하여, 서로 다른 지역의 사용자가 해당 지역의 Photon Cloud 서버에 연결되도록 합니다.
- c) 게임 UI 내에서 사용자가 적합한 지역을 선택할 수 있도록 합니다.
- d) 높은 지연 시간이 게임 플레이에 영향을 주지 않는다면, 모든 사용자를 동일한 지역에 연결시킵니다.
모든 Photon Cloud 애플리케이션은 추가 비용 없이 사용 가능한 모든 지역에서 작동합니다.
Photon Cloud의 대시보드를 통해 각 지역에서 게임의 사용량을 모니터링하고, 구독 플랜을 손쉽게 업그레이드하거나 다운그레이드 할 수 있습니다.
C# Realtime API
Photon Realtime(대부분의 Photon SDK에서 사용)는 연결할 최적의 지역을 감지하고 해당 지역에 고정할 수 있는 기능을 제공합니다.
이를 위해, 클라이언트는 항상 연결 시 네임 서버에서 사용 가능한 지역 목록을 가져옵니다.
서버 응답은 LoadBalancingClient.RegionHandler
를 설정하는 데 사용되며, 이는 IConnectionCallbacks
에 정의된 콜백 OnRegionListReceived(RegionHandler regionHandler)
를 통해 제공됩니다.
일반적으로 다음 단계는 regionHandler.PingMinimumOfRegions()
를 호출하여 각 지역의 현재 핑을 감지하는 것입니다.
완료 시 호출할 메소드를 전달해야 하며, 가능하면 이전 실행에서 저장된 "최적의 지역 요약"을 전달할 수도 있습니다(아래에서 설명).
서버를 핑한 후, (새로운) 결과는 regionHandler.SummaryToCache
에 요약되며, 나중에 사용할 수 있도록 기기에 저장해야 합니다.
이전 세션의 SummaryToCache
가 없으면 모든 지역을 핑하게 되어 시간이 조금 더 걸립니다.
이전 결과가 있는 경우, 클라이언트는 다음을 확인합니다:
a. 지역 목록이 변경되었는지(이전 "최적의 지역"이 여전히 사용 가능한 경우 포함)
b. 핑이 더 이상 허용되지 않는 수준인지(이전 저장된 참조 값의 1.5배 이상 느린 경우)
위의 둘 중 하나에 해당하면 모든 지역을 핑하고 새 결과를 선택합니다.
최적의 지역은 대시보드의 서버 측 지역 필터와 잘 작동합니다.
이를 통해 플레이어에게 제공되는 지역 목록을 필요에 따라 변경할 수 있습니다.
지역 목록에 접근하거나 이전 결과를 재정의하려면, 지역에 대한 API 참조를 확인하세요.
특정 마스터 서버에 연결하기
일반적인 지역 마스터 서버 주소를 사용한 마스터 서버에의 직접 연결은 더 이상 지원되지 않습니다. 대신, 사용 중인 Photon 클라이언트 SDK에서 지역 마스터 서버에 연결하는 방법을 제공합니다.
클라이언트를 특정 지역에 연결하려면, AppSettings.FixedRegion
을 유효한 지역 토큰으로 설정하고 ConnectUsingSettings(settings)
를 호출하십시오.
다른 플랫폼의 경우 SDK 목록에서 해당 SDK 및 API 링크를 참조하세요.
SDK는 요청된 지역의 마스터 서버 주소를 네임 서버에서 가져옵니다(그림 "Photon Cloud 지역에 연결"의 1번).
그리고 선택한 지역의 마스터 서버에 자동으로 연결합니다(그림 "Photon Cloud 지역에 연결"의 2번).
FixedRegion을 설정하면 클라이언트는 지역 목록을 가져오지 않으며, Best Region 결과를 위한 지역 핑 작업을 건너뜁니다.
이는 연결 시간을 단축시킵니다.
FixedRegion을 빌드에 컴파일한 경우, 업데이트 없이는 변경할 수 없습니다.
가장 좋은 방법은 최적의 지역과 지역 허용 목록을 사용하는 것입니다.
지역 목록 표시 방법
런타임에 지역을 선택하려면 - 예를 들어, 플레이어에게 사용 가능한 지역 목록을 보여주고 선택하도록 하기 위해 - 먼저 네임 서버에 연결해야 합니다.
이 연결은 현재 사용 가능한 지역 마스터 서버 주소 목록을 자동으로 가져옵니다(그림 "Photon Cloud 지역에 연결"의 1번).
"Name Server"에 대해 설명할 때, 네임 서버는 사용 가능한 지역에 따라 지리적으로 로드 밸런싱 됩니다. 이로 인해 마스터 서버 주소 요청 시간이 최소화됩니다.
C# 클라이언트 SDK
C#
loadBalancingClient.ConnectToNameServer()
성공적으로 연결되면 LoadBalancingClient.OpGetRegions()
가 내부적으로 호출됩니다.
이 결과는 loadBalancingClient.RegionHandler
를 설정하고 OnRegionListReceived
를 호출합니다.
마스터 서버 목록을 사용하여 핑을 보내 가장 낮은 지연 시간으로 연결할 수 있는 최적의 지역을 결정하거나, 플레이어가 지역을 선택하도록 할 수 있습니다.
이 작업은 RegionHandler.PingMinimumOfRegions()
로 수행할 수 있습니다.
클라이언트가 지역을 결정한 후, 해당 지역의 마스터 서버에 연결합니다(그림 "Photon Cloud 지역에 연결"의 2번).
C#
loadBalancingClient.ConnectToRegionMaster("us")
마지막으로, 게임을 위한 방에 참여하거나 방을 생성합니다(그림 "Photon Cloud의 클라이언트 연결"의 3번).
중국 본토 지역 사용
Photon 네임 서버는 중국 내에 로컬로 있어야 합니다. 그렇지 않으면 방화벽이 트래픽을 차단할 수 있습니다.
중국 Photon Name Server는 "ns.photonengine.cn"입니다.
중국 본토 외부의 클라이언트와 연결하면 결과가 좋지 않을 가능성이 높습니다.
또한, Photon 서버에서 중국 본토 외부 서버(예: Custom Authentication, WebHooks, WebRPCs)로의 연결은 신뢰할 수 없을 수 있습니다.
법적 이유로 중국에 대한 별도의 빌드가 필요하며, 별도의 AppId를 사용하는 것을 권장합니다.
예를 들어, 빌드에 따라 AppId와 Photon Name Server를 변경하기 위해 컴파일 조건을 사용할 수 있습니다.
중국 시장을 위한 특별 빌드를 만들려면 클라이언트 SDK에 해당하는 지침을 따르세요.
Back to top