FlexMatch 규칙 세트 속성 정의 - Amazon GameLift

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

FlexMatch 규칙 세트 속성 정의

이 섹션에서는 규칙 세트 스키마의 각 속성을 정의합니다. 규칙 세트 생성에 대한 추가 도움말은 FlexMatch 규칙 세트 빌드 섹션을 참조하세요.

name

규칙 세트를 설명하는 레이블. 이 값은 Amazon GameLift MatchmakingRuleSet 리소스에 할당된 이름과는 관련이 없습니다. 이 값은 완료된 매치를 설명하는 매치메이킹 데이터에 포함되지만 Amazon GameLift 프로세스에서는 사용되지 않습니다.

허용된 값: 문자열

필수? 아니요

ruleLanguageVersion

사용 중인 FlexMatch 속성 표현식 언어의 버전입니다.

허용된 값: “1.0”

필수? 예

playerAttributes

매치메이킹 요청에 포함되고 매치메이킹 프로세스에 사용되는 플레이어 데이터 모음입니다. 또한 매치메이킹 프로세스에 데이터가 사용되지 않더라도, 여기에서 속성을 선언하여 게임 서버로 전달되는 매치메이킹 데이터에 플레이어 데이터가 포함되도록 할 수 있습니다.

필수? 아니요

name

매치메이커가 사용하는 플레이어 속성의 고유한 이름입니다. 이 이름은 매치메이킹 요청에서 참조되는 플레이어 속성 이름과 일치해야 합니다.

허용된 값: 문자열

필수? 예

type

플레이어 속성 값의 데이터 형식입니다.

허용되는 값: “string”, “number”, “string_list”, “string_number_map”

필수? 예

default

플레이어에게 매치메이킹 요청이 제공하지 않을 때 사용할 기본값입니다.

허용 값: 플레이어 속성에 허용되는 모든 값.

필수? 아니요

algorithm

매치메이킹 프로세스를 사용자 지정하기 위한 선택적 구성 설정.

필수? 아니요

strategy

매치를 구축할 때 사용할 메서드입니다. 이 속성을 설정하지 않으면 기본 동작인 “exhaustiveSearch”가 됩니다.

허용된 값:

  • “exhaustiveSearch” - 표준 매칭 메서드. FlexMatch는 일련의 사용자 지정 매치 규칙을 기반으로 풀에 있는 다른 티켓을 평가하여 가장 오래된 티켓을 중심으로 매치를 일괄적으로 구성합니다. 이 전략은 플레이어 40명 이하의 매치에 사용됩니다. 이 전략을 사용할 때는 batchingPreference를 “random” or “sorted”로 설정해야 합니다.

  • “balanced” - 라지 매치를 빠르게 형성하도록 최적화된 메서드입니다. 이 전략은 플레이어가 41~200명 정도인 매치에만 사용됩니다. 티켓 풀을 미리 정렬하고, 잠재적 매치를 구성하여, 플레이어를 팀에 배정한 다음, 지정된 플레이어 속성을 사용하여 각 팀의 밸런스를 맞추는 방식으로 매치를 구성합니다. 예를 들어, 이 전략을 사용하여 한 매치에 참가한 모든 팀의 평균 스킬 레벨을 동일하게 맞출 수 있습니다. 이 전략을 사용할 때는 balancedAttribute를 설정해야 하며 batchingPreference는 “largestPopulation” 또는 “fastestRegion”으로 설정해야 합니다. 대부분의 사용자 지정 규칙 유형은 이 전략에서 인식되지 않습니다.

필수? 예

batchingPreference

매치 구성을 위해 티켓을 그룹화하기 전에 사용할 사전 정렬 메서드입니다. 티켓 풀을 미리 정렬하면 특정 특성에 따라 티켓이 일괄 처리되므로 최종 매치에서 플레이어 간의 균일성이 높아지는 경향이 있습니다.

허용된 값:

  • “random” - strategy = “exhaustiveSearch”인 경우에만 유효. 사전 정렬은 수행되지 않으며, 풀의 티켓은 무작위로 일괄 처리됩니다. 이는 전체 검색 전략의 기본 동작입니다.

  • “sorted” - strategy = “exhaustiveSearch”인 경우에만 유효. 티켓 풀은 sortbyAttributes에 나열된 플레이어 속성에 따라 사전 정렬됩니다.

  • “largestPopulation” - strategy = “balanced”인 경우에만 유효. 티켓 풀은 플레이어가 가장 짧은 지연 시간 레벨을 보고한 리전을 기준으로 사전 정렬됩니다. 이는 밸런스 전략의 기본 동작입니다.

  • “fastestRegion” - strategy = “balanced”인 경우에만 유효. 티켓 풀은 플레이어가 가장 짧은 지연 시간 레벨을 보고한 리전을 기준으로 사전 정렬됩니다. 결과 매치를 완료하는 데 시간이 더 오래 걸리지만 모든 플레이어의 지연 시간은 낮은 편입니다.

필수? 예

balancedAttribute

밸런스 전략으로 라지 매치를 구성할 때 사용할 플레이어 속성의 이름입니다.

허용되는 값: type = “number”로 playerAttributes에 선언된 모든 속성.

필수? strategy = “balanced”인 경우, 예.

sortByAttributes

일괄 처리 전에 티켓 풀을 사전 정렬할 때 사용할 플레이어 속성 목록입니다. 이 속성은 전체 검색 전략을 사용하여 사전 정렬할 때만 사용됩니다. 속성 목록의 순서에 따라 정렬 순서가 결정됩니다. FlexMatch는 영숫자 값에 대해 표준 정렬 규칙을 사용합니다.

허용되는 값: playerAttributes에 선언된 모든 속성.

필수? batchingPreference = “sorted”인 경우, 예.

backfillPriority

채우기 티켓을 매칭하기 위한 우선 순위 지정 메서드. 이 속성은 FlexMatch가 채우기 티켓을 일괄적으로 처리하는 시기를 결정합니다. 이는 전체 검색 전략을 사용하여 사전 정렬할 때만 사용됩니다. 이 속성을 설정하지 않으면 기본 동작인 “normal”이 됩니다.

허용된 값:

  • “normal” - 매치를 구성할 때 티켓의 요청 유형(채우기 또는 새 매치)은 고려되지 않습니다.

  • “high” - 티켓 배치가 요청 유형별로 정렬되고 (그런 다음, 연령별로 정렬되며) FlexMatch는 먼저 채우기 티켓을 매칭하려고 시도합니다.

  • “low” - 티켓 배치가 요청 유형별로 정렬되고 (그런 다음, 연령별로 정렬되며) FlexMatch는 먼저 비채우기 티켓을 매칭하려고 시도합니다.

필수? 아니요

expansionAgeSelection

매치 규칙 확장을 위한 대기 시간을 계산하는 메서드입니다. 일정 시간이 지난 후에도 매치가 완료되지 않은 경우, 확장은 매치 요건을 완화하는 데 사용됩니다. 대기 시간은 부분적으로 채워진 매치에 이미 있는 티켓의 연령을 기준으로 계산됩니다. 이 속성을 설정하지 않으면 기본 동작인 “newest”가 됩니다.

허용된 값:

  • “newest” - 확장 대기 시간은 부분적으로 완료된 매치 중 가장 최근에 생성된 타임스탬프가 있는 티켓을 기준으로 계산됩니다. 신규 티켓 하나가 대기 시간 클록을 다시 시작할 수 있기 때문에 확장은 더 느리게 실행되는 경향이 있습니다.

  • “oldest” - 확장 대기 시간은 매치에서 가장 오래 전에 생성된 타임스탬프가 있는 티켓을 기준으로 계산됩니다. 확장은 더 빨리 실행되는 경향이 있습니다.

필수? 아니요

teams

매치 내 팀 구성. 각 팀의 팀 이름과 규모 범위를 제공합니다. 규칙 세트는 적어도 한 팀을 정의해야 합니다.

name

팀의 고유 이름입니다. 규칙 및 확장에서 팀 이름을 참조할 수 있습니다. 매치가 성공하면 매치메이킹 데이터에 있는 팀 이름을 기준으로 플레이어가 배정됩니다.

허용된 값: 문자열

필수? 예

maxPlayers

팀에 할당할 수 있는 최대 플레이어 수입니다.

허용된 값: 숫자

필수? 예

minPlayers

매치가 시작되기 전에 팀에 배정되어야 하는 최소 플레이어 수입니다.

허용된 값: 숫자

필수? 예

quantity

매치에서 생성할 수 있는 이 유형의 팀 수입니다. 팀원이 1보다 큰 팀은 번호가 추가되어 지정됩니다(“Red_1”, “Red_2” 등). 이 속성을 설정하지 않을 경우 기본값은 “1”입니다.

허용된 값: 숫자

필수? 아니요

rules

매치에 대한 플레이어를 평가하는 방법을 정의하는 규칙 문 모음을 생성합니다.

필수? 아니요

name

역할의 고유한 이름입니다. 규칙 세트의 모든 규칙은 고유한 이름을 가져야 합니다. 규칙 이름은 규칙과 관련된 활동을 추적하는 이벤트 로그 및 측정치에서 참조됩니다.

허용된 값: 문자열

필수? 예

description

규칙에 대한 텍스트 설명입니다. 이 정보는 규칙의 용도를 식별하는 데 사용할 수 있습니다. 매치메이킹 프로세스에는 사용되지 않습니다.

허용된 값: 문자열

필수? 아니요

type

규칙 문 유형입니다. 각 규칙 유형에는 설정해야 하는 추가 속성이 있습니다. 각 규칙 유형의 구조 및 사용에 대한 자세한 내용은 FlexMatch 규칙 유형 섹션을 참조하세요.

허용된 값:

  • “absoluteSort” - 지정된 플레이어 속성이 일괄적으로 가장 오래된 티켓과 비교되는지 여부를 기준으로 티켓을 일괄 정렬하는 명시적인 정렬 메서드를 사용하여 정렬합니다.

  • “collection” - 컬렉션의 값을 평가합니다(예: 컬렉션인 플레이어 속성 또는 여러 플레이어의 값 집합).

  • “comparison” - 두 값을 비교합니다.

  • “compound” - 규칙 세트에 있는 다른 규칙의 논리적 조합을 사용하여 복합 매치메이킹 규칙을 정의합니다. 플레이어가 40명 이하인 매치에만 지원됩니다.

  • “distance” - 숫자 값 간의 거리를 측정합니다.

  • “batchDistance” - 속성 값 간의 차이를 측정하고 이를 사용하여 매치 요청을 그룹화합니다.

  • “distanceSort” - 숫자값이 포함된 지정된 플레이어 속성을 가장 오래된 티켓과 일괄 처리로 비교하는 방법을 기준으로 티켓을 일괄 정렬하는 명시적인 정렬 메서드를 사용하여 정렬합니다.

  • “latency” - 매치메이킹 요청에 대해 보고된 리전별 지연 시간 데이터를 평가합니다.

필수? 예

expansions

매치를 완료할 수 없는 경우 시간이 지남에 따라 매치 요건을 완화하는 규칙. 매치를 더 쉽게 찾을 수 있도록 점진적으로 적용되는 일련의 단계로 확장을 설정합니다. 기본적으로 FlexMatch는 매치에 추가된 최신 티켓의 연령별로 대기 시간을 계산합니다. expansionAgeSelection 알고리즘 속성을 사용하여 확장 대기 시간을 계산하는 방식을 변경할 수 있습니다.

확장 대기 시간은 절대값이므로 각 단계의 대기 시간이 이전 단계보다 더 길어야 합니다. 예를 들어, 점진적인 확장을 예약하려면 30초, 40초, 50초의 대기 시간을 사용할 수 있습니다. 대기 시간은 매치메이킹 구성에 설정된 매치 요청에 허용된 최대 시간을 초과할 수 없습니다.

필수? 아니요

target

규칙 세트 요소는 완화되어야 합니다. 팀 규모 속성이나 모든 규칙 문 속성을 완화할 수 있습니다. 구문은 “<component name>[<rule/team name>].<property name>”입니다. 예를 들어, 팀 최소 규모를 변경하려면: teams[Red, Yellow].minPlayers. “minSkill”이라는 비교 규칙 문에서 최소 스킬 요구 사항을 변경하려면: rules[minSkill].referenceValue.

필수? 예

steps
waitTimeSeconds

대상 규칙 세트 요소에 새 값을 적용하기 전에 대기하는 시간(초)입니다.

필수? 예

value

대상 규칙 세트 요소의 새 값입니다.