심층 살펴보기
Edgegap의 노코드 매치메이커 개념을 자세히 알아보고 필요에 맞게 사용자 지정하세요.
✔️ 소개
매치 기반 게임에서 매치메이킹의 일반적인 목표는:
다른 플레이어를 찾는 것 지역, 지연, 실력 또는 게임 매개변수와 같은 기준에 따라;
서버를 검색하는 것 사용 가능한 수용량[또는 핑, 지역, 실력, 지도, 모드]에 따라 참가하기 위해;
새 서버를 시작하는 것 기존 서버가 가득 찼거나 플레이어 기준을 충족하지 않을 경우.
플레이어 경험을 최우선으로 하며, 우리의 핵심 목표를 정의합니다:
높은 매치 채움률과 소셜 기능 통합(그룹으로 친구와 함께 플레이),
제어된 매치 품질(낮은 지연, 공유된 선호도)로 빠른 매치,
전 세계적으로 이용 가능한 신뢰할 수 있고 예측 가능한 매치메이킹 프로세스.
또는 플레이어가 지속적(항상 온라인) 서버를 선택하도록 목록에서 서버 브라우저.
5분 안에 시작하고 모든 기능을 무료로 테스트하세요. 신용카드가 필요하지 않습니다.
더 강력한 전용(독립형) 클러스터가 준비되면 업그레이드하세요. Edgegap과의 기본 통합 배포 플레이어가 어디에 있든 최고 수준의 핑을 제공합니다.
각 매치메이커에는 세 가지 핵심 개념이 있습니다:
심층 살펴보기 - Edgegap이 완전히 관리하고 운영하는 기본 서버 인프라.
심층 살펴보기 - 매치메이커가 어떻게 동작하는지를 정의하는 규칙과 설정의 집합.
🌐 서비스 인스턴스 - 클러스터에서 24시간 연중무휴로 실행되는 실시간 매치메이킹 서비스로, 구성을 사용해 플레이어를 매칭하고 배포(서버) 할당을 생성합니다.
매치메이커 버전을 자주 업데이트하세요 에 새로운 기능과 버그 수정을 활용할 수 있습니다.
▶️ 매치메이킹 시작
빠르게 시작하세요 - 게임에 SDK 시작 샘플을 추가하세요:
언리얼 엔진 개발자 도구:
문서를 읽어보세요 Betide Studios 제공,
Fab 마켓플레이스에서 설치 (개인 용도는 무료),
간단한 예제 블루프린트 가져오기 (매치메이킹)을 자신의 필요에 맞게 커스터마이즈하세요.
게임 통합을 사용자 지정하고 문제를 해결하며 최적화하기 위해 매치메이킹 프로세스를 알아보세요:

플레이어 인증 - 불법 복제본이 온라인에서 플레이하는 것을 방지합니다,
로비 생성 - 친구들과 함께 참여하고 플레이어/매치 선호도를 공유합니다,
그룹 구성 - 로비를 매치메이킹 그룹으로 등록합니다,
매치 찾기 - 준비를 마치고 새 매치 또는 기존 매치를 찾기 시작합니다,
서버 할당 및 티켓 주입 - 서버는 몇 초 후 자동으로 할당됩니다,
연결 및 인증 - 게임 서버에 보안 연결을 시도합니다,
신원 확인 - 서버가 타사 토큰을 사용해 게임 클라이언트의 신원을 검증합니다,
플레이어 수락 또는 퇴장 처리 - 서버가 플레이어의 참여 허용 여부를 결정합니다.
인증
모든 요청에는 Authorization 비밀값이 포함된 HTTP 헤더를 보내야 합니다 인증 토큰:
토큰을 비밀로 안전하게 보관하세요! Edgegap 직원은 절대 토큰을 요구하지 않습니다.
이 토큰은 Edgegap API 접근 권한을 부여하지 않으므로 게임 클라이언트에 안전하게 포함할 수 있습니다.
개별 플레이어는 클라이언트와 서버에서 사용할 수 있는 ticket ID로 식별할 수 있습니다. 선택적으로 다음을 사용하는 커스텀 프록시로 사용자 지정 인증이나 제한을 추가하세요 서버 간 API.
그룹 구성
그룹(파티)을 만들면 플레이어가 친구들과 같은 팀과 서버에 참여하게 됩니다.
그룹을 준비 완료로 표시하여 심층 살펴보기 빠르게 그룹 구성원이 없는 솔로 플레이어로서.

로비와 그룹
게임 설계상 플레이어가 제어하는 매치메이킹 선호도(예: 캐릭터 선택, 난이도, 맵 등)를 설정해야 한다면 로비 서비스를 사용하세요. 플레이어가 로비에 들어오고 나가면, 이후 매치를 찾을 준비를 위해 매치메이킹 그룹도 함께 업데이트합니다.
로비 서비스를 구현할 시간이 없나요? 플레이어가 Discord나 DM으로 그룹 ID를 공유하도록 안내하세요.
친구를 초대해 함께 플레이
✅
✅
내 플레이어/매치 선호도 수정
✅
❌
다른 로비 구성원의 선호도 보기
✅
❌
커스텀 키-값 데이터를 저장하고 관리
✅
❌
내가 플레이할 준비가 되었다고 그룹 구성원에게 알림
❌
✅
매치메이킹 진행 상황을 표시하고 매치를 찾기
❌
✅
플레이어/그룹의 팀 할당을 가져오기
❌
✅
게임 서버 연결 정보를 가져오기
❌
✅
저희 크로스플랫폼 매치메이커는 모든 상용 및 커스텀 로비 서비스를 지원합니다:
커스텀 로비 (귀사)
로비 소유자(초대를 보내는 플레이어)는 매치메이킹 그룹도 함께 만들어야 합니다.
공유 로비 데이터에 그룹의 ID를 저장하세요, 이렇게 하면 다른 로비 구성원이 타사 로비와 연결된 매치메이킹 그룹을 쉽게 찾고 참여할 수 있습니다. 그룹에 초대된 플레이어는 그룹 ID를 사용해 멤버십을 생성합니다(참여), 그리고 자신의 정보를 안전하게 저장합니다 매치메이킹 속성.
그룹이 매치메이킹을 시작하면 더 이상 참여할 수 없습니다. 심층 살펴보기 그리고 새로 만드세요.
핑 최적화
만약 심층 살펴보기 포함한다면 지연 시간 규칙 모든 그룹 구성원이 자신의 핑 비콘 측정값을 서로 먼 지역의 플레이어가 매칭되는 것을 방지 하거나 훨씬 더 높거나 낮은 핑(지연 시간)을 방지합니다.
대기열 이탈
그룹 소유자는 그룹을 삭제할 수 있으며, 그러면 모든 그룹 멤버십이 자동으로 삭제됩니다. 매치메이킹이 시작된 후 그룹을 삭제하면 모든 멤버십이 취소되고 곧 삭제됩니다.
그룹 구성원(소유자 제외)은 다음 전까지 언제든지 멤버십을 삭제할 수 있습니다(그룹 탈퇴) 심층 살펴보기. 이후에 멤버십을 삭제하면 전체 그룹의 매치메이킹이 취소됩니다.
취소된 후 그룹이 매치메이킹을 다시 시작하려면 그룹 소유자가 그룹을 다시 만들고 새 그룹 ID를 구성원에게 공유한 다음, 구성원들이 멤버십을 다시 만들어야 합니다.
매치가 한 번 찾아지면 그룹은 삭제할 수 없습니다 (409 충돌), 그리고 자동으로 제거됩니다. 플레이어가 이탈했다고 가정하기 전에 서버는 플레이어가 연결할 수 있도록 약간의 시간(예: 60초)을 허용해야 합니다.
서버가 플레이어를 이탈로 표시하면 다음과 같이 할 수 있습니다:
이탈한 플레이어를 AI 캐릭터로 대체해 즉시 매치를 시작하거나,
또는 다음을 생성하거나 백필 를 만들어 이탈자를 대신할 새 플레이어를 찾거나,
또는 게임 설계상 가변 인원수를 허용한다면 이탈자를 대체하지 않고 진행할 수 있습니다.
매치 찾기
매치를 찾기 시작하려면 모든 구성원과 소유자가 자신을 준비 완료로 표시해야 합니다.
그룹 소유자가 즉시 매치메이킹을 시작하려면 생성 시 멤버십을 준비 완료로 표시하세요. 소유자가 자신을 준비 완료로 표시하면 모두가 준비된 상태이므로 매치메이킹이 시작됩니다.
모든 플레이어는 정기적인 간격으로 자신의 멤버십을 폴링해야 합니다 (권장 3~5초) 매치메이킹 시작 시점을 감지하고 게임 내 UI를 통해 진행 상황을 전달하기 위해서입니다.
플레이어는 멤버십과 그룹 ID를 영구적으로 저장해야 합니다, 이를 통해 게임 클라이언트 충돌 시에도 게임을 다시 시작하고 매치메이킹 진행 상황을 잃지 않고 재개할 수 있습니다.
귀하의 조건에 맞게 같은 팀에 넣을 수 있을 만큼 충분한 플레이어를 찾으면 규칙, 플레이어는 멤버십 응답에서 다음과 같은 알림을 받습니다 status:TEAM_FOUND.
이 단계에서 멤버십을 삭제하면 모든 그룹 멤버십이 취소되고 같은 팀에 할당된 다른 모든 그룹은 다음 상태로 돌아갑니다 status:SEARCHING .
팀은 그룹 간 겹치는 값(또는 경우에 따라 평균값)을 사용해 다른 팀과 매치메이킹을 계속합니다 number_difference ) 충분한 팀이 모일 때까지 진행됩니다. 멤버십은 응답으로 이를 표시합니다 status:MATCH_FOUND , 이는 귀하의 배포가 시작되고 있음을 의미합니다.
매치메이커는 매치 충원율을 최대화하는 것을 목표로 하며, 다음으로 진행하지 않습니다 MATCH_FOUND 다음 중 하나가 충족될 때까지:
구성된 최대 팀 크기에 맞는 충분한 팀이 매칭되거나,
또는 심층 살펴보기 정의되어 있고 확장 시간이 도달했으며, 구성된 최소 팀 크기에 맞는 충분한 팀이 매칭되거나,
또는 구성된 티켓 만료 시간이 경과했고 구성된 최소 팀 크기에 맞는 충분한 팀이 매칭되었을 때입니다.
구성된 티켓 만료 전에 어느 시나리오도 성공하지 못하면 그룹과 티켓이 취소됩니다.
티켓 만료는 그룹(또는 플레이어)이 팀에 매칭될 때마다 자동으로 초기화됩니다.
저장 team_id 및 match_id 게임 내에서 팀원 정보를 표시하려면 게임 백엔드에 저장하세요.
플레이어가 매칭되어 게임 서버에 할당되면 티켓은 자동으로 삭제됩니다. 이후 대기열을 이탈하는 플레이어는 status:HOST_ASSIGNED 다음으로 대체할 수 있습니다 백필.
플레이어가 다음을 받으면 status:HOST_ASSIGNED 그들은 다음으로 진행합니다 심층 살펴보기.
서버에 연결
매치를 찾은 후 몇 초가 지나면 멤버십은 다음으로 진행됩니다 status:HOST_ASSIGNED 이는 귀하의 배포가 이제 준비되었고 게임 서버가 초기화 중임을 나타냅니다.
각 플레이어는 자신의 ticket_id 및 할당 그리고 다음을 사용하여 연결을 시도합니다 FQDN (배포 URL) 그리고 외부 포트. 이 시점에는 게임 서버가 아직 초기화 중일 수 있으므로 플레이어는 연결을 여러 번 다시 시도해야 합니다, 일반적인 서버 초기화 시간을 넘길 때까지:
하려면 PIE(에디터)에서 연결 개발 및 테스트 중에는 틸드 키를 누르고 ~ 그리고 다음을 입력하세요 open {URL}:{port} 그리고 에디터가 맵을 로드할 때까지 기다립니다.
하려면 게임 클라이언트 빌드에서 연결 (실제 운영 환경에서는) 다음을 시도하세요
언리얼 엔진 ⚡ 통합 키트:
Fab 마켓플레이스에서 설치 (개인용은 무료),
간단한 예제 블루프린트를 가져와 필요에 맞게 사용자 지정하세요.
연결 실패 또는 검은 화면이 발생한 경우 다음을 참고하세요 문제 해결 가이드.
하려면 Unity 에디터를 연결하세요 또는 게임 클라이언트 클라우드 배포에 다음을 입력하세요:
배포 URL 서버 IP를 가리키며, 보통 다음에 있습니다
NetworkManager컴포넌트.외부 포트 다음에 매핑되며 서버의 내부 리슨 포트, 보통 Transport 컴포넌트에 있습니다.
연결 시간 초과 또는 기타 문제가 발생하면 다음을 참고하세요 문제 해결 가이드.
게임 클라이언트는 게임 재시작 사이에 할당 ID를 영구적으로 저장해야 하며, 게임 클라이언트가 충돌한 경우 연결 정보를 가져와 재연결을 시도할 수 있도록 해야 합니다.
백필 매치
선택적으로, 일부 게임에는 다음과 같은 특수 매치메이킹 요구 사항이 있을 수 있습니다:
새로운 플레이어가 진행 중인 게임에 참여할 수 있도록 허용(친구 또는 "랜덤"),
서버 시작 후 이탈한 플레이어(이탈자)를 교체하여 매치를 다시 시작하지 않도록 함,
관전자가 토너먼트나 친구의 경기(e스포츠)에 참가하여 관전할 수 있도록 허용,
더 큰 서버에 플레이어를 집중시켜 더 많은 사회적 상호작용을 제공(MMO).
백필은 현재 서버에 연결된 플레이어를 나타내는 서버 소유 티켓입니다. 이를 통해 새로 추가된 플레이어가 현재 플레이어와 매칭될 때 매치메이킹 규칙을 준수하게 됩니다.
심층 살펴보기 Seat/Match 세션을 대체하기 위해. Matchmaker는 Default 세션만 지원합니다.

백필은 무시합니다 player_count 규칙을 적용하지 않으며, 항상 정확히 하나의 그룹과 매칭합니다. backfill_group_size 라운드 로빈 전략으로 팀 수용 인원을 제어하여, 팀을 균등하고 통제된 방식으로 채웁니다.
성공적인 백필을 완료하는 단계는 다음과 같습니다:
게임 클라이언트는 새 티켓(멤버십)을 생성하고 다음을 포함합니다
backfill_group_size값:"1"플레이어가 혼자 매치메이킹하는 경우."2"플레이어가 총 2x명으로 구성된 매치메이킹 그룹의 일부인 경우."new"플레이어가 진행 중인 게임에 참여하는 것 외에도 새 게임 시작을 활성화한 경우.
게임 클라이언트는 계속해서 심층 살펴보기 그리고 플레이어를 일치하는 백필과 매칭합니다.
백필된 그룹이 팀을 완전히 채우지 못하면, 서버는 새로 백필된 플레이어의 티켓으로 이 과정을 반복하여 더 많은 플레이어를 추가하고 원하는 팀 규모에 도달할 수 있습니다.
백필은 팀 크기 규칙을 무시하며 항상 1x 백필과 1x 그룹을 매칭합니다. 백필하고만 매칭하고 대기열의 다른 플레이어와의 매칭을 비활성화하려면 다음을 설정하세요 min_team_size: 999999 .
게임 서버 초기화가 완료되면, 서버는 다음을 해야 합니다:
각 새 플레이어에 대해 이탈 타이머를 시작하세요. 연결된 플레이어에게 로딩 진행 상황을 로딩 씬/레벨로 표시하는 것을 권장합니다. 완전한 3D 씬, 로비 같은 소셜 UI, 또는 진행 표시줄이 있는 로딩 화면 중 하나를 사용하세요.
시간이 지남에 따라 새 플레이어의 연결 또는 기존 플레이어의 이탈을 추적하세요:
새 플레이어는 인증을 위해, 그리고 자신의 연결을 매치메이커에 매핑하기 위해 서버에 ticket ID를 알려야 합니다 심층 살펴보기 또는
assigned_ticket(백필된 경우).서버 수명 동안 사용되지 않은 플레이어 수용량(이탈자)을 위해 새 백필을 생성하세요.
만료된 백필을 갱신하세요. 이는 다음 후 삭제됩니다
ticket_expiration_period.
남아 있는 백필을 정리(삭제)하세요 일단 배포:
Unity -
OnApplicationQuit콜백 또는 커스텀 게임 종료 콜백,Unreal Engine -
OnWorldDestroyed,PreExit, 또는 커스텀 게임 종료 콜백.
유효한 서버 할당과 최소 하나의 티켓이 제공되기만 하면 어떤 프로필이든 백필에 사용할 수 있습니다. 자세한 내용은 매치메이킹 최소 예제를 참조하세요.
⚙️ 구성
매치메이커 API는 새 매치메이커를 생성할 때(또는 빠른 재시작 시) 지정하는 JSON 구성에서 생성됩니다. 서로 다른 규칙과 확장을 가진 프로필을 원하는 만큼 지정할 수 있습니다:
다음을 참조하세요 매치메이킹 SDK와 상세 예제 시나리오를
실행 중인 매치메이커를 편집하면 빠른 다시 로드를 트리거하고, 모든 티켓이 삭제되고 짧은 다운타임이 발생합니다.
프로필(대기열)
프로필은 완전히 분리된 매치메이킹 대기열을 의미하며, 동일한 매치메이커 버전을 공유합니다. 다음을 할 수 있습니다 각 매치메이커에 원하는 수의 프로필을 구성할 수 있습니다. 플레이어 기반을 여러 프로필로 나누면 플레이어의 대기 시간이 더 길어질 수 있습니다.
각 매치메이커 프로필은 앱 버전 을 템플릿으로 사용해 새 배포(서버)를 시작합니다.
일부 게임 모드는 더 많은 vCPU / RAM이 필요할 수 있으며, 특히 더 많은 플레이어를 지원하는 경우 그렇습니다. 각 매치메이커에는 여러 프로필이 포함될 수 있습니다, 각 프로필은 조정된 리소스가 있는 앱 버전과 연결됩니다.
규칙
모든 플레이어와 그룹은 매치메이킹 대기열에 참여해 다음을 사용하여 매치를 찾습니다 초기 규칙을 먼저.
경로에 있는 프로필의 각 항목은 .rules.initial 에서 규칙을 나타냅니다. 여기서:
key 은 원하는 대로 규칙의 이름을 지정하는 문자열 값입니다. 예:
match_size, 그리고value 은 표준 규칙 세트를 따르는 규칙의 유형과 속성을 정의하는 객체입니다.
연산자(규칙 유형)
player_count 은 할당을 시작하기 위해 몇 명의 플레이어가 매칭되어야 하는지를 정의하는 특수 규칙입니다.
규칙 player_count 은 필수이며 한 번만 정의할 수 있습니다 초기 구성 규칙에서
매치메이커는 항상 지정된 한도까지 매치 충원율을 최대화하려고 노력합니다 max_team_size :
최대 팀 크기에 도달하면 매치는 즉시 생성되고,
그렇지 않으면 플레이어는 매치가 채워질 때까지 대기열에서 기다립니다 확장 (또는 만료)가 곧 다가올 때,
직전에 확장 (또는 만료되기 직전) 부분 매치가 가능하다면(최소 이상, 최대 미만 팀 크기), 이 매치는 같은 확장 단계의 모든 플레이어와 함께 생성됩니다(다른 규칙이 통과한다고 가정).
협동, 자유 경쟁, 또는 비대칭 팀 크기 게임 모드의 경우 다음을 설정하세요 "team_count": 1 .
경쟁 게임을 위해 여러 개의 균형 잡힌 팀을 구성하도록 팀 수를 설정할 수 있습니다:
그룹 속성은 평균/겹침으로 계산되며 그룹의 플레이어 속성,
팀 속성은 평균/겹침으로 계산되며 팀의 그룹 속성.
팀 크기가 4명으로 고정되어 있다고 가정하면:

string_equality 은 정확히 같은 문자열 값의 플레이어를 매칭합니다.
number_difference 서로 간의 절대적인 수치 차이 범위 내에 있는 플레이어를 매칭합니다.
지연 시간 플레이어 매치의 핑을 최적화하는 특별한 규칙입니다:
지연 시간이 높은 지역(임계값 초과)을 제거하여 클라이언트-서버 지연 시간을 줄이고,
지연 시간이 비슷한 플레이어를 그룹화하여 매치 공정성을 향상시킵니다(차이 이하).
규칙 지연 시간 입니다 선택 사항이며 초기 구성에서 한 번만 정의할 수 있습니다 규칙.
모든 비콘에 대해 핑이 높은 일부 플레이어는 다음과 같은 이유로 인해 ISP 문제나 느린 연결(예: 무선/모바일)로 인해 지연이 발생하고 다른 사람들의 게임 경험을 저하시킬 수 있습니다. 이 문제를 완화하려면:
허용 지연 최대값과 차이를 점진적으로 확장하십시오(참조 고급 예제 구성),
핑이 높은 플레이어는 매치를 찾는 데 평소보다 더 오래 기다려야 할 수 있습니다.
또는 플레이어가 수동으로 지역을 선택하여 측정을 재정의하도록 허용하고, 선택한 지역에 대해서만 가짜 핑 값을 전송하도록 할 수 있습니다(예: 빠른 매치를 위해 25ms),
이것은 플레이어의 팀원 및 상대방의 플레이어 경험에 부정적인 영향을 미칠 수 있습니다.
보기 매치메이킹 위해 우리의 SDK를 사용한 자동 핑 측정.
비콘은 실시간으로 자동 재조정되며 기존 비콘을 추가/제거/교체합니다. 클라이언트와 백엔드는 이를 고려하고 매치메이킹 라운드마다 비콘 목록을 다시 불러와야 합니다.
교집합 대소문자를 구분하여 하나 이상의 겹치는 문자열 값을 가진 플레이어를 매칭합니다.
규칙 확장
선택적으로, 확장 확장은 대기열에서 일정 시간이 지난 후 규칙의 속성을 수정해 제한을 완화하고 매칭 가능한 플레이어 풀을 확장합니다, 그 결과 더 빠른 매치가 만들어집니다.
📌 주입된 변수
서버가 플레이어에 대한 세부 정보를 알아야 할 수도 있습니다. 플레이어 속성, 확인된 매치 값 및 기타 값은 일반적인 항목과 함께 배포에 주입됩니다 앱 및 버전.
서식 없는 미리보기 🏁 고급 예시 변수:
서버는 플레이어 연결을 그룹과 속성에 매핑할 수 있습니다 플레이어가 서버에 티켓 ID를 전송한 후.
🧵 플레이어 추적
플레이어가 문제를 겪는다면 서버 로그까지의 경로를 추적하는 것이 도움이 될 수 있습니다. 각 매치메이커 배포는 할당된 플레이어 티켓 ID로 태그됩니다 그래서 쉽게 배포 찾고 배포 문제 해결에 활용할 수 있습니다.
클라이언트 매치 기록 UI에 티켓 ID와 배포 ID를 표시 문제 해결 시 플레이어를 추적하기 위해.
👀 분석
코드나 설정 없이도 매치메이커의 부하와 성능에 대한 인사이트를 얻으세요.
🌟 매치메이커를 엔터프라이즈 티어로 업그레이드 매치메이킹 지표와 인사이트를 사용하려면:


☁️ 호스팅 클러스터
매치메이커는 Edgegap이 연중무휴 24시간 편리하게 호스팅하고 관리합니다.
목표에 가장 적합한 호스팅 옵션을 선택하세요:
무료 클러스터(공유) 모든 기능을 테스트하고 디자인과의 시너지를 탐색하려면,
3시간 후 자동으로 종료되며 테스트를 계속하려면 재시작이 필요합니다.
프라이빗 클러스터 (전용) 프로덕션 요구에 맞는 안정적인 환경을 보장하려면,
지역을 선택하고 24시간 연중무휴 라이브 게임 지원을 받아 안심하고 출시하세요.
프라이빗 클러스터 티어
현재 다음을 제공합니다 3개의 프라이빗 클러스터 요금제 모두의 필요에 맞추기 위해:
가장 적합한 대상
애호가, 개인 개발자
상업용 출시
대규모 트래픽 출시
리소스
1 vCPU + 2GB RAM
6 vCPU + 12GB RAM
18 vCPU + 48GB RAM
이중화
가상 노드 1개
가상 노드 3개
가상 노드 3개
요청 제한(req/s)
200
750
2,000
가격, 시간당
$0.0312
$0.146
$0.548
가격, 30일 (중단 없는 사용)
$22.464
$105.12
$394.56
한 번의 클릭으로 프라이빗 클러스터로 업그레이드하세요. 출시 후에도 플레이어 다운타임 없이 Private Cluster Tiers를 변경하는 것도 가능합니다 ⏩ 롤링 업데이트. 관리형 클러스터는 Edgegap이 유지 관리하는 고가용성 서비스 호스팅을 제공하며, 공개 출시 게임을 위해 연중무휴 실시간 지원을 제공합니다.
인스턴스의 리소스 요구 사항은 다음 요인에 따라 달라집니다:
플레이어 수 - 플레이어가 많을수록 티켓과 API 요청이 늘어납니다,
플레이어당 요청 수 - 재시도가 빠를수록 서비스 부하가 증가하고 리소스를 더 많이 사용합니다,
구성 복잡도 - 교차 규칙과 확장은 특히 요구 사항이 높습니다,
평균 매치 지속 시간 - 세션이 짧을수록 플레이어가 더 자주 매치메이킹에 다시 참여하게 됩니다,
만료 및 제거 기간 - 오래된 티켓은 시간이 지날수록 쌓여 리소스를 사용합니다,
클라이언트 재시도 폴백 로직 - 지터가 있는 백오프 재시도는 트래픽 급증 피크를 분산하는 데 도움이 됩니다.
성공을 대비하고 출시 후 최적화하여 출시일에 플레이어가 막히지 않도록 하세요. 다음을 사용하세요 개발자 도구 또는 지수적 지터 백오프를 구현하여 높은 부하에서 복구하세요.
⏩ 롤링 업데이트
서버와 클라이언트 버전 간의 호환성을 추적하는 일은 복잡해질 수 있습니다. 안정적인 릴리스, 업데이트, 다운타임 또는 호환성 문제 방지를 위한 팁을 따라보세요.
재시작 후에도 매치메이커 URL과 인증 토큰은 항상 동일하게 유지됩니다.
안전하게 실험할 수 있도록 개발 및 프로덕션용 매치메이커를 분리하세요 환경에서 안전하게 실험할 수 있습니다.
⚠️ 실서비스 전
미리 매치메이커의 여러 사본을 만들어 두는 것을 권장합니다: 초록, 파랑 및 주황. 업데이트를 배포할 때 사용 중인 매치메이커를 순환할 수 있습니다 (블루/그린 전략).
중단을 방지하려면 각 인스턴스에 서로 다른 리전을 선택하세요 지역적 장애 발생 중에.

🔃 클라이언트 + 서버 업데이트
사전 요구 사항: 이 섹션은 다음을 완료했다고 가정합니다 심층 살펴보기.
다음 작업을 위해 게임 클라이언트 + 서버 업데이트를 릴리스하려면, 다음을 수행할 수 있습니다:
새 서버 앱 버전 준비
v1.2.0-rcEdgegap에서:컨테이너 레지스트리에 새 이미지 태그를 푸시
t1.2.0,새 앱 버전 생성
v1.2.0-rc,
다음으로 개발 테스트를 수행 새 앱 버전을 배포하여
v1.2.0-rc:게임 엔진의 Editor를 제공된 URL + 외부 포트에 연결하고,
사용하지 않는 매치메이커 업데이트
파랑새 이미지 태그에 연결하려면t1.2.0,새 앱 버전에 대해 캐싱 활성화
v1.2.0-rc, 이 버전에 캐싱을 활성화하면 이미지가 버전에도 캐시되도록 보장합니다v-blue같은 태그를 참조하므로,버전의 캐싱 표시가
v1.2.0-rc다음 상태가 될 때까지 기다리세요 🟢 초록,
새 게임 클라이언트를 업데이트
c2새 버전을 사용하도록v-blue티켓 생성 시:게임 클라이언트의 기본 URL과 Authorization 토큰을 업데이트하고,
새 게임 클라이언트에 대해 QA 테스트와 최종 검증을 수행
c2:문제를 발견하고 해결했다면, 처음부터 프로세스를 다시 반복하고,
매치메이커를 중지한 후, 매치메이커 DNS 변경 사항이 전 세계 ISP에 전파되도록 3~7일 기다리세요(빠른 재시작은 DNS 업데이트나 대기 기간이 필요하지 않습니다),
새 게임 클라이언트 업데이트를 릴리스
c2게임 배포 플랫폼에서,새 게임 클라이언트에 시간을 주세요
c2플레이어 기기에 배포되도록(일반적으로 최대 3~7일):오래된 게임 클라이언트를 모니터링
c1배포를 사용하여 배포,
Edgegap 계정의 사용하지 않는 리소스를 정리하세요:
이미지 태그 삭제
t1.0.0Container Registry 용량을 확보하려면,이미지 태그 삭제
t1.1.0Container Registry 용량을 확보하려면,다음을 끄세요
초록다음 업데이트까지 청구를 일시 중지하려면.
다음 업데이트에서는, 버전 번호를 늘리고 초록 및 파랑 가이드의 키워드를 교체하세요.
⚡ 서버 핫픽스
사전 요구 사항: 이 섹션은 다음을 완료했다고 가정합니다 심층 살펴보기.
다음 목적을 위해 게임 클라이언트 업데이트 없이 서버 패치를 릴리스하려면, 다음을 수행할 수 있습니다:
새 서버 앱 버전 준비
v1.2.0-rcEdgegap에서:컨테이너 레지스트리에 새 이미지 태그를 푸시
t1.2.0,새 앱 버전 생성
v1.2.0-rc,
다음으로 테스트와 검증을 수행 새 앱 버전을 배포하여
v1.2.0-rc:게임 엔진의 Editor를 제공된 URL + 외부 포트에 연결하고,
문제를 발견하고 해결했다면, 처음부터 프로세스를 다시 반복하고,
새 앱 버전에 대해 캐싱 활성화
v1.2.0-rc, 이 버전에 캐싱을 활성화하면 이미지가 버전에도 캐시되도록 보장합니다v-green같은 태그를 참조하므로 나중에버전의 캐싱 표시가
v1.2.0-rc다음 상태가 될 때까지 기다리세요 🟢 초록,
버전 업데이트
v-green새 이미지 태그에 연결하려면t1.2.0,새 매치는 업데이트된 태그로 자동으로 배정을 시작합니다
t1.2.0,오래된 게임 클라이언트를 모니터링
c1배포를 사용하여 배포,
Edgegap 계정의 사용하지 않는 리소스를 정리하세요:
이미지 태그 삭제
t1.1.0Container Registry 용량을 확보하려면.
📗 API
클라이언트와 서버는 API를 직접 호출하거나 게임 엔진 SDK를 통해 호출할 수 있으며, 또한 다음을 참고하세요 매치메이킹.
Swagger 웹 UI: 관리형 서비스를 배포하면 OpenAPI 사양과 편리한 웹 UI가 생성되며, 이는 엣지 케이스를 테스트하거나 페이로드 형식을 검증하는 데 유용합니다.
API 명세 가져오기 Scalar API 웹 클라이언트 또는 Swagger 편집기 세부 정보를 확인하려면.
속도 제한
버스트 용량을 초과해 충돌하는 것을 방지하기 위해, 우리는 내부 부하 테스트를 바탕으로 초당 요청 수를 제한합니다. 이는 매치메이킹 구성을 사용합니다.
전체 한도
100
200
750
2,000
배포 생성
5
10
30
30
비콘 목록
10
20
75
200
그룹 생성 + 티켓 생성 + 그룹 티켓 생성
10
20
75
200
멤버십 읽기 + 그룹 읽기 + 티켓 읽기
10
120
450
1,300
백필 생성
5
10
37
100
속도 제한은 다음으로 표시됩니다 지정된 API 엔드포인트 집합에 대한 초당 총 요청 수.
게임 클라이언트가 다음 응답을 받았을 때 요청을 재시도하지 않으면 429 요청 과다 배포에서 플레이어가 누락될 수 있습니다 짧은 급증이나 트래픽 피크 기간 동안.
부하 테스트
실서비스와 유사한 환경에서의 부하 테스트에는 배포 호스팅 비용이 발생합니다. 각 등급과 관련된 리소스 및 가격은 요금제 페이지에서.
사용하세요 전용 클러스터 를 스트레스 테스트에. 무료 인스턴스는 개발 테스트용으로만 엄격히 제한됩니다.
부하 테스트를 설계할 때, 현실적인 플레이어 패턴을 고려해 주세요:
✅ 플레이어들이 몇 시간에 걸쳐 점진적으로 게임에 참여하여 req/s가 증가합니다.
❌ 모든 플레이어가 협력하여 정확히 같은 초에 API를 호출합니다.
✅ 플레이어들은 재시도 사이에 점점 더 긴 시간을 기다립니다(예: 1초-5초-10초-10초).
❌ 모든 플레이어가 429 요청이 너무 많음 응답을 받자마자 즉시 재시도합니다.
✅ 대부분의 플레이어는 짧은 시간(10~60초) 안에 배정을 받고 폴링을 중단합니다.
❌ 모든 플레이어가 배정을 받은 후에도 정해진 시간 동안 계속 폴링합니다.
✅ 대부분의 플레이어는 새 세션을 시작하기 전에(시간이 걸리며) 게임을 마칩니다.
❌ 모든 플레이어가 서버 배정을 받은 직후 즉시 새로 세션을 재시작합니다.
✅ 피크 트래픽은 하루 약 6시간 동안 유지되며, 이후 일부 시간대에서 트래픽이 줄어듭니다.
❌ 피크 트래픽이 하루 24시간 내내 유지되며, 모든 플레이어가 밤낮없이 플레이합니다.
부하 시 동작
매치메이커에 높은 부하가 걸리면:
CPU가 스로틀링되면 매치메이킹이 느려질 수 있습니다,
매치메이커가 메모리를 모두 사용하면, 티켓 정보를 잃지 않은 채 다시 시작되며, 클라이언트가 지수적 백오프를 구현해 버스트가 더 긴 시간에 분산되기를 기대합니다.
교차 출처 리소스 공유(CORS)
타사 배포 플랫폼에 호스팅된 WebGL 게임의 경우(예. itch.io), 게임 클라이언트에서 Matchmaker로 요청을 보내면 교차 출처 리소스 공유 정책 위반이 발생할 수 있습니다. 대부분의 최신 웹 브라우저는 사전 요청을 보내 백엔드 서비스(Matchmaker)가 게임 클라이언트의 통신을 이해하고 수락하는지 확인합니다.
사전 확인에 실패하면(보안상 기본값) 다음이 발생할 수 있습니다 여러 CORS 관련 오류 중 하나, 가장 흔하게는 CORS 헤더 'Access-Control-Allow-Origin' 누락 .
이 오류를 해결하려면 다음을 추가하세요 allowed_cors_origin 구성에 매개변수를 추가하여 다음 중 하나를 수행하세요:
정확한 클라이언트 호스팅 도메인을 허용 목록에 추가:
또는 와일드카드 도메인(모든 하위 도메인 포함)을 허용 목록에 추가:
서버 간
매치메이킹 흐름에 향상되거나 사용자 지정된 제어를 추가하세요 - 우리의 사용자 지정 프록시를 구현 관리형 클러스터 또는 다른 클라우드 FaaS 컴퓨팅 플랫폼을 사용하여 다음 중 하나를 달성하세요:
치터 플래그, 스킬 등급 등 민감한 플레이어 속성을 첨부하고,
게임 내에서 팀 및 매치 컨텍스트를 제공하고 - 로딩 중에 팀원과 상대를 표시하고,
특정 예외 사례를 제한하고 - 예: 한 번에 플레이어당 1개 그룹만 허용하고,
캐싱 또는 API 속도 제한을 추가하고 - 요청 수와 매치메이커 부하를 줄이고,
로비-그룹 통합을 사용자 지정하고 - 매치메이킹 전에 비대칭/역할 기반 로비를 생성합니다.
매개변수 포함 player_ip 멤버의 공개 IP 주소와 함께 가능한 가장 낮은 플레이어 지연 시간을 보장하고 다음의 이점을 활용하려면 배포.

🚨 문제 해결
여러분의 성공이 우리의 최우선 과제입니다. 사용자 지정 요청을 보내거나, 누락된 핵심 기능을 요청하거나, 의견을 남기고 싶다면, 커뮤니티 디스코드로 문의해 주세요.
🔖 변경 로그
시맨틱 버전 관리
당사의 개발자 도구와 관리형 서비스는 공식 시맨틱 버전 관리을 사용하며, 이는 어떤 업데이트가 ✅ 안전한지(마이너, 패치)와 어떤 업데이트에 ⚠️ 호환성을 깨는 변경이 포함될 수 있는지(메이저)를 나타냅니다.
버전이 출시되면, 절대 수정/변경되지 않습니다.
사용 중인 매치메이커 버전에 따라 구성 파일이 검증되므로, 규칙이 해당 버전의 기능과 일치하는지 확인하세요.
매치메이커 버전을 업그레이드하려면 - 중지, 편집, 재시작. 빠른 재시작은 버전 변경을 적용하지 않습니다.
마지막 업데이트
도움이 되었나요?



