UGS에서 배포
Unity Matchmaker를 계속 사용하면서 서버를 Edgegap에 배포하고 싶다면 이 가이드를 따르세요.
대안을 찾고 계신가요? 저희의 관리형 매치메이킹 과 SDK 통합 및 예제.
시작하기
이 가이드는 다음을 전제로 Edgegap 서버 호스팅을 호스팅 제공업체로 추가하는 방법에 중점을 둡니다:
작동하는 Unity 매치메이킹 설정이 있고,
Edgegap에 등록했고 Unity 서버 빌드를 업로드했으며.
다음을 참조하세요 Unity의 매치메이킹 문서 에서 매치메이킹 관련 내용을 확인하세요.
참조: Multiplay에서 전환 Multiplay 개념을 Edgegap 호스팅에 비교하고 매핑하는 방법은
서버에 적절한 위치를 선택하면 평균적으로 지연 시간을 최대 58%까지 줄일 수 있습니다!
이 가이드에서는 다음을 다룹니다:
빌드 및 배포
EdgegapAllocatorMatchmaker용 클라우드 스크립트 모듈,최적의 서버 배치를 위해 사용되는 플레이어의 공인 IP 주소를 가져오는 방법,
UGS 클라우드 스크립트에서 웹훅 리스너를 구현하고 서버 할당을 가져오는 방법.
Edgegap 할당기
먼저 호스팅 제공업체 저장소를 다운로드하는 것부터 시작하세요 과 EdgegapAllocator 소스 코드입니다.
이것은 저희의 클라우드 스크립트 로, 매치가 구성되면 Unity matchmaker가 실행하여 새 서버를 시작하는 데 사용됩니다. 이는 Unity의 공식 승인 통합입니다.
필수 비밀
먼저, 다음 위치에 이러한 비밀값을 추가하세요: Unity 대시보드 의 관리 > 비밀:
EDGEGAP_API_TOKEN- Edgegap API 토큰입니다.
토큰은 다음에서 찾을 수 있습니다: Edgegap 대시보드.
필수 코드 변경
편집 Project/EdgegapAllocator.cs 그리고 다음 상수를 업데이트하세요:
다음에서 Edgegap 애플리케이션 이름으로 바꾸세요: 애플리케이션 목록.
사용하려는 Edgegap 애플리케이션의 버전 이름으로 바꾸세요.
플레이어가 연결할 때 사용할 Edgegap 애플리케이션 버전의 포트 이름으로 바꾸세요.
모듈 배포
CLI 또는 에디터를 사용하여 사용자 지정 모듈을 배포하려면 Unity의 공식 지침을 따르세요.
플레이어 IP 가져오기
플레이어 IP 주소가 제공되지 않으면 배포는 Los Alamos 위치로 대체됩니다.
각 매치에 대해 필요할 때 최적의 서버 위치를 제공하려면, Edgegap은 배포를 만들 때 플레이어 IP 주소를 제공하도록 요구합니다. Unity는 이 기능을 제공하지 않지만, 무료 서비스인 ipify:
모든 플레이어는 티켓의 사용자 지정 데이터를 사용하여 공인 IP 주소를 제공해야 합니다:
할당 받기
표준 Unity 매치메이킹 방법을 사용하여 할당을 가져올 수 있습니다.
저희 예제는 다음을 사용하여 할당을 처리합니다: 초당 20 요청으로 제한되는 Status API.
대부분의 게임에는 충분합니다. 50,000 CCU를 초과할 것으로 예상되면 대체 방법을 고려하세요.
대체 할당
전 세계적으로 대규모 출시를 할 경우, 더 확장 가능한 대안인 웹훅 을 사용할 수 있습니다.
매치가 성사되고 클라우드 스크립트가 새 배포를 요청하면, 응답에는 아직 연결 정보가 포함되지 않습니다. 대신 영수증 형태의 배포 ID를 받게 됩니다.
할당자 함수는 이 배포 ID를 매칭된 플레이어의 ID와 함께 UGS Game Data에 저장해야 나중에 플레이어를 조회하고 연결 정보를 제공할 수 있습니다.
이제 다른 클라우드 스크립트 함수를 만들어야 합니다 AssignmentProcessor 공개 URL이 있는. 이 URL은 Allocator의 배포 요청에 다음으로 포함되어야 합니다: webhook_on_ready .
Edgegap이 게임 서버를 배포하면, FQDN(URL) 및 클라이언트 연결용 외부 포트와 같은 모든 연결 정보가 포함된 웹훅 HTTP 이벤트를 새 클라우드 스크립트로 다시 전송합니다. 귀하의 AssignmentProcessor 는 배포 ID를 조회하고, 그와 함께 연결 정보를 저장해야 합니다.
게임 클라이언트는 이 게임 데이터를 폴링하고 FQDN과 외부 포트를 가져오는 즉시 연결을 시도해야 합니다.

마지막 업데이트
도움이 되었나요?

