Amazon GameLift
개발자 안내서 (버전 )

Amazon GameLiftFlexMatch의 작동 방식

이 단원은 FlexMatch 매치메이킹의 개요(주요 기능, 구성 요소, 매치메이킹의 작동 방식 등)를 제공합니다. 매치메이커를 설정하고 플레이어 매칭을 지정하는 방식을 포함하여 FlexMatch를 게임에 추가하는 방법에 대한 자세한 정보는 FlexMatch 매치메이킹 추가 단원을 참조하십시오.

Amazon GameLift FlexMatch는 사용자 지정 매치메이킹 서비스입니다. 게임에 가장 적합한 방식으로 완전한 매치메이킹 경험을 관리할 수 있는 유연한 도구를 제공합니다. FlexMatch를 사용하여 게임 매치를 빌드하고, 각 매치에 호환 가능한 플레이어를 선택하고, 최적의 플레이어 경험을 위해 최상의 호스팅 리소스를 찾을 수 있습니다. 또한 FlexMatch 채우기 기능을 사용해서 기존 게임에 대해 호환 가능한 새 플레이어를 선택하여 게임을 가득 채운 상태로 유지하고 최고의 플레이어 경험을 제공하도록 보장할 수 있습니다.

FlexMatch를 사용하면 게임 모드와 플레이어에 맞게 여러 매치메이커를 만들고 실행할 수 있습니다. 예를 들어 팀 배틀, 모두 자유롭게 사용 가능한 모드 또는 케이지 매치와 같은 각 게임 모드마다 다른 매치케이커를 사용할 수 있습니다.

FlexMatch 주요 기능

  • 사용자 지정 플레이어 매칭. 플레이어가 가장 공감할 수 있는 유형의 멀티플레이어 경험을 설계하고 구축합니다. 각 게임 모드에 대해 팀 구성을 정의하고 다른 게임 속성을 설정합니다. 플레이어 속성(예: 스킬 레벨 또는 역할)을 평가하기 위한 사용자 지정 규칙 세트를 구축하고 게임에서 가능한 최선의 플레이어 매치를 형성합니다. 이 규칙을 사용하여 새로운 매치에 플레이어를 그룹화하거나 기존 매치의 열린 슬롯을 채울 플레이어를 찾습니다("매치 채우기").

  • 플레이어 수락 얻기. 모든 플레이어가 게임 시작 전에 제안된 매치를 수락하도록 요구합니다. 이 기능을 활성화하면 FlexMatch가 매치에 배정된 모든 플레이어가 매치 시작 전에 매치를 수락할 때까지 기다립니다.

    같은 팀에서 함께 플레이하고자 하는 플레이어 그룹을 위한 매치를 생성합니다. 추가 플레이어를 찾아 필요에 따라 매치를 충원합니다.

  • 플레이어 지연 시간 정보를 활용하여 매치된 플레이어의 응답 시간이 비슷하도록 합니다. 이 기능은 일부 플레이어에게 부당한 이득을 줄 수 있는 시간의 차이를 방지합니다. 여러 지리적 영역에 걸쳐 있는 매치를 만들 때 특히 유용합니다.

  • 시간 경과에 따라 플레이어 매칭 규칙 완화. 가능한 최상의 플레이어 매치를 생성하고 빠른 시간 내에 양호한 플레이어 매치를 이루는 것 간에 적절한 균형을 확보합니다. 최단 시간 내에 플레이어를 게임에 배치하기 위해 언제 어느 경우에 엄격한 매칭 규칙을 완화할지 결정할 수 있습니다.

  • 가장 적합한 호스팅 리소스 찾기. 게임 및 플레이어 정보를 사용하여 최적의 게임 플레이 경험을 위해 매치를 호스팅할 수 있는 최상의 리소스를 선택합니다.

  • 매치된 플레이어로 게임 채우기. FlexMatch FlexMatch 채우기 기능을 사용하여 게임 세션의 수명 전반에 새로운 플레이어와 잘 매치하는 빈 플레이어 슬롯을 채웁니다.

FlexMatch 구성 요소

Amazon GameLift FlexMatch에서는 다음 세 가지 주요 구성 요소가 함께 작동해야 합니다.

  • 플레이어 매치메이킹을 트리거하는 메커니즘. 첫 번째 메커니즘은 플레이어에 대해 매치메이킹을 시작하는 시기를 결정합니다. 두 번째(선택 사항) 메커니즘은 기존 매치에서 빈 슬롯에 대해 새로운 플레이어를 찾을 시기를 결정합니다(채우기). 매치메이킹 및 매치 채우기 요청은 매치메이커에게 전달되어 처리됩니다.

  • FlexMatch플레이어를 평가하고 매치를 생성하는 매치메이커. 매치메이커는 접수한 요청을 통해 가능한 최상의 플레이어 매치를 빌드합니다. 매치의 팀 구성을 정의하고 매치를 평가할 때 사용할 기준을 설정하는 규칙 세트를 가집니다. 게임에는 여러 매치메이커가 있을 수 있으며 각각 다른 유형의 매치가 있도록 빌드할 수 있습니다.

  • 새 매치를 배치하는 게임 세션 대기열. 게임 세션 대기열은 사용 가능한 컴퓨팅 리소스를 찾아 매치를 호스팅합니다. 리소스를 찾을 위치(리전)와 각 매치에 사용 가능한 호스트를 선택하는 방법을 결정합니다.

다음 단원에서는 매치메이킹에서 새로운 게임 매치를 형성하거나 기존 게임 매치를 위해 새로운 플레이어를 찾는 방법에 대해 자세히 설명합니다.

매치메이킹 프로세스

새로운 게임 매치 요청이 FlexMatch를 통해 처리되는 방법은 다음과 같습니다. 이 설명은 클라이언트 측 게임 서비스가 매치메이킹 요청을 시작하고 매치메이킹 티켓 상태를 추적한다고 가정합니다.

  1. 매치메이킹 요청. 플레이어는 게임에서 "Join Now" 버튼이나 파티를 구성하는 플레이어 그룹을 클릭하는 것처럼 매치메이킹을 트리거하는 일부 작업을 수행합니다. 게임은 매치메이킹 요청을 시작하여 사용할 매치메이커를 식별하고 매치할 하나 이상의 플레이어를 포함합니다. 요청에는 매치메이커가 매치를 빌드하는 데 필요한 스킬 레벨이나 기본 설정과 같은 플레이어 정보가 포함됩니다. 각 요청은 게임에서 요청 상태를 추적하고 필요에 따라 작업을 수행하기 위해 사용하는 매치메이킹 티켓 ID를 얻습니다.

  2. 잠재적 매치 파악. 모든 매치메이킹 티켓은 지정된 매치메이커에게 전달되고 티켓 풀에 배치되어 처리됩니다. 매치가 성사되거나 매치메이커의 최대 제한 시간에 도달할 때까지 티켓은 티켓 풀에 남아 있습니다.

    플레이어 매치를 찾기 위해 매치메이커는 티켓 풀을 계속 통과합니다. 각각이 통과되면 매치메이커는 풀에서 가장 오래된 티켓으로 시작해서 최상의 티켓을 찾기 위해 다른 티켓을 평가합니다. 매치메이커의 규칙 세트에서는 (1) 매치에 대해 생성할 팀의 수, (2) 각 팀에 대해 배정할 플레이어 수, (3) 예상 플레이어를 평가하는 방법을 결정합니다. 규칙은 개별 플레이어, 팀 또는 매치에 대한 요구 사항을 설정할 수 있습니다. 예를 들어 규칙에 따라 모든 매치 플레이어에게 특정 능력이 있어야 하거나 팀에서 한 명 이상의 플레이어가 특정 캐릭터를 플레이해야 할 수도 있습니다. 일반적으로 사용되는 규칙은 매치의 모든 플레이어가 비슷한 스킬 등급을 갖는 것입니다.

    매치메이커가 티켓을 평가할 때 규칙에 따라 티켓이 합격하거나 불합격합니다. 복수의 플레이어가 있는 티켓의 경우 매치메이커는 이 플레이어가 함께 플레이하기를 원하는 것으로 간주하고 모두 동일한 매치에 배치하려고 시도합니다. 즉, 잠재적인 모든 매치에서 티켓의 모든 플레이어가 수락될 수 있어야 합니다. 규칙에 맞지 않는 플레이어가 있는 경우 티켓 전체가 일치하지 않는 것으로 간주됩니다. 실패한 티켓은 티켓 풀에 남아 있으며 다음 통과 시 다시 평가됩니다. 일단 잠재적 매치에 플레이어가 충원되면 제안된 매치에 속한 모든 티켓 상태가 업데이트됩니다.

  3. 플레이어 수락 얻기. 매치메이커에서 플레이어가 잠재적인 매치를 수락해야 하는 경우, FlexMatch는 모든 플레이어가 수락할 때까지 매치를 진행할 수 없습니다. 매치메이킹 티켓 상태는 수락이 필요하다고 표시하여 게임이 일치하는 각 매치 티켓의 모든 플레이어에게 수락을 요청하도록 변경됩니다.

    플레이어는 잠재적인 매치를 수락 또는 거부할지 선택할 수 있습니다. 게임은 플레이어 응답을 수집하여 FlexMatch에 다시 보고합니다. 잠재적인 매치의 모든 플레이어는 계속하려면 일정한 제한 시간 내에 매치를 수락해야 합니다. 한 플레이어라도 매치를 거부하거나 제한 시간 내에 응답하지 못하면 매치메이커는 해당 잠재적 매치를 취소합니다. 매치를 수락한 플레이어의 티켓은 매치메이커의 티켓 풀로 반환되고 매치를 수락하지 않은 플레이어의 티켓은 실패 상태로 변경되어 더 이상 처리되지 않습니다.

  4. 매치를 호스팅할 리소스 찾기. 잠재적 매치가 이루어지고 수락되면 FlexMatch는 사용 가능한 호스팅 리소스를 통해 매치를 배치하려고 시도합니다. 매치메이커는 특정 게임 세션 대기열을 사용하도록 구성되며 잠재적 매치를 배치 대기열로 전달합니다. 대기열은 규칙 세트를 사용하여 최적의 서버 프로세스에 대해 리전 및 플릿을 검색하여 매치를 호스팅합니다. 원래 매치메이킹 요청에 플레이어 지연 시간 데이터가 포함되어 있는 경우, 대기열은 이 정보를 사용하여 지연 시간이 가장 짧고 매치에서 가장 일관적인 게임 플레이 경험을 제공하는 리소스를 찾습니다.

    사용 가능한 서버 프로세스가 배치되면, Amazon GameLift는 팀 구성 및 크기, 플레이어 배정 및 관련 플레이어 특성을 포함하여 게임 속성 및 매치메이커 데이터가 포함된 게임 세션 레코드를 생성합니다.

  5. 새 게임 세션 시작. 새로운 게임 세션을 시작할 때 Amazon GameLift는 게임 세션 및 매치메이커 정보와 함께 서버 프로세스에 시작 요청을 전송합니다. 서버 프로세스는 정보를 가져와서 매치 게임에 대한 새 게임 세션을 시작하는 데 해당 정보를 사용합니다. 게임 세션이 플레이어를 받아들일 준비가 되면 서버 프로세스가 Amazon GameLift에 알립니다.

  6. 새 게임 세션에 플레이어 연결. 게임 세션이 플레이어를 받아들일 준비가 되면 Amazon GameLift는 매치의 모든 플레이어에 대해 새로운 플레이어 세션을 생성합니다. 그런 다음 모든 매치 메이킹 티켓을 업데이트하고 티켓 상태를 변경하여 성공 여부를 나타내며 모든 플레이어에 대한 연결 정보를 추가합니다. 티켓 상태가 이렇게 변경되면 게임에 게임 클라이언트에 대한 연결 정보를 전달하라고 표시합니다. 플레이어는 이제 게임에 참여하고 매치 및 팀 배정에서 슬롯을 신청할 수 있습니다.

백필 프로세스

다음은 FlexMatch를 통해 기존 매치의 새로운 플레이어를 찾는 방법입니다. 매치 채우기 기능에는 게임 세션의 플레이어 슬롯 가용성에 대한 최신 정보가 필요하기 때문에 게임 서버에서 매치 채우기 요청을 시작하는 것이 좋습니다. 또 다른 옵션은 게임 세션 및 플레이어 활동을 추적하는 세션 디렉터리 서비스와 같은 클라이언트 측 게임 서비스를 사용하는 것입니다. FlexMatch를 사용하여 기존 게임 채우기 단원에서 게임에 매치 채우기 기능을 추가하는 방법에 대한 자세한 내용을 확인하십시오.

  1. 매치메이킹 채우기 요청. 매치 게임에는 채워야 할 빈 플레이어 슬롯이 있습니다. 게임은 채우기 요청을 시작하여 사용할 매치메이커를 식별하고 게임 세션의 현재 플레이어를 설명합니다. 각 요청은 게임에서 요청 상태를 추적하고 필요에 따라 작업을 수행하기 위해 사용하는 매치메이킹 티켓 ID를 갖습니다.

  2. 잠재적 매치 파악. 채우기 기능에 대한 매치메이킹 티켓은 지정된 매치메이커에게 전달되고 새로운 매치 티켓과 동일한 풀에 배치됩니다. 매치메이커의 플레이어 평가는 플레이어가 매치를 찾고 있든 현재 채워지고 있는 매치에 있든 관계없이 본질적으로 동일합니다. 한 가지 예외는 잠재적 매치가 둘 이상의 채우기 티켓을 가질 수 없다는 것입니다.

    매치메이커의 규칙에 따라 빈 플레이어 슬롯으로 매치가 완료되는 경우에도, 채우기 티켓은 성공적으로 완료되기 위해 하나 이상의 다른 티켓과 일치해야 합니다. 일단 잠재적 매치에 플레이어가 충원되면 제안된 매치에 속한 모든 티켓 상태가 업데이트됩니다.

  3. 플레이어 수락 얻기. 수락이 필요한 경우 새 플레이어만 매치 채우기를 수락해야 하며 이 단계는 매치메이킹 요청에 설명된 대로 처리됩니다. 현재 플레이어는 이미 플레이하고 있는 매치를 수락할 필요가 없습니다. 따라서 채우기 요청의 티켓 상태에서 수락이 필요하다고 나타내는 경우에도 게임에서 작업을 수행할 필요가 없습니다.

    제안된 새 플레이어 중 한 명이 제한 시간 내에 매치를 수락하지 못하면 잠재적 매치가 중단되고 새로운 플레이어가 기존 매치에 추가되지 않습니다. 이 경우 채우기 요청 티켓은 풀로 반환되어 처리됩니다.

  4. 기존 게임 세션을 새로운 매치 데이터로 업데이트. 매치 채우기가 성공적으로 이루어지면 새로운 게임 세션을 시작할 필요가 없습니다. 대신 기존 게임 세션의 매치 데이터를 Amazon GameLift 업데이트하여 새 플레이어 및 팀 배정을 추가합니다. 기존 게임을 호스팅하는 서버 프로세스로 업데이트된 게임 세션 정보를 Amazon GameLift 보냅니다.

  5. 는 새 플레이어를 기존 게임 세션에 연결합니다.Amazon GameLift는 새 플레이어에 대한 플레이어 세션을 생성하고 현재 상태, 플레이어 세션 및 연결 정보로 매치메이킹 티켓을 업데이트합니다. 새 플레이어의 티켓 상태를 추적하는 클라이언트 게임 서비스는 연결 정보를 게임 클라이언트에 전달합니다. 플레이어는 이제 기존 게임에 참여하고 플레이어 슬롯을 신청할 수 있습니다.