Definições de propriedades do conjunto de regras do FlexMatch - Amazon GameLift

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Definições de propriedades do conjunto de regras do FlexMatch

Esta seção define cada propriedade do esquema de conjunto de regras. Para obter ajuda adicional com a criação de um conjunto de regras, consulte Crie um conjunto de FlexMatch regras.

name

Um rótulo descritivo para o conjunto de regras. Esse valor não está associado ao nome atribuído ao recurso MatchmakingRuleSet do Amazon GameLift. Esse valor está incluído nos dados de criação de jogos que descrevem um jogo concluído, mas não é usado por nenhum processo do Amazon GameLift.

Valores permitidos: String

Obrigatório? Não

ruleLanguageVersion

Versão da linguagem de expressão de propriedades do FlexMatch que está sendo usada.

Valores permitidos: "1,0"

Obrigatório? Sim

playerAttributes

Coleção de dados do jogador que está incluída nas solicitações de criação de jogos e é usada no processo de criação de jogos. Você também pode declarar atributos aqui para que os dados do jogador sejam incluídos nos dados de criação de jogos que são passados para os servidores de jogos, mesmo que os dados não sejam usados no processo de criação de jogos.

Obrigatório? Não

name

Nome exclusivo para o atributo do jogador a ser usado pelo matchmaker. Esse nome deve corresponder ao nome do atributo do jogador referenciado nas solicitações de criação de jogos.

Valores permitidos: String

Obrigatório? Sim

type

Tipos de dados do valor do atributo do jogador.

Valores permitidos: “string”, “number”, “string_list”, “string_number_map”

Obrigatório? Sim

default

Valores padrão a serem usados quando uma solicitação de criação de jogos não fornece um para um jogador.

Valores permitidos: qualquer valor permitido para o atributo do jogador.

Obrigatório? Não

algorithm

Configurações opcionais para personalizar o processo de criação de jogos.

Obrigatório? Não

strategy

O método a ser usado na criação de jogos. Se essa propriedade não estiver definida, o comportamento padrão será “exhaustiveSearch”.

Valores permitidos:

  • "exhaustiveSearch": método de correspondência padrão. O FlexMatch forma um jogo em torno do ticket mais antigo em um lote, avaliando outros tickets no pool com base em um conjunto de regras de jogo personalizadas. Essa estratégia é usada para jogos de 40 jogadores ou menos. Ao usar essa estratégia, a batchingPreference deve ser definida como “aleatória” ou “ordenada”.

  • “balanced”: método otimizado para formar grandes jogos rapidamente. Essa estratégia é usada somente para jogos de 41 a 200 jogadores. Ela forma jogos por meio da pré-classificação do pool de tickets, criando possíveis jogos e atribuindo jogadores às equipes e, em seguida, equilibrando cada equipe em um jogo usando um atributo de jogador especificado. Por exemplo, essa estratégia pode ser usada para igualar os níveis médios de habilidade de todas as equipes em um jogo. Ao usar essa estratégia, a balancedAttribute deve ser definida e a batchingPreference definida como “LargestPopulation” ou “FastestRegion”. A maioria dos tipos de regras personalizadas não é reconhecida com essa estratégia.

Obrigatório? Sim

batchingPreference

Método de pré-classificação a ser usado antes do agrupamento de tickets para a criação de jogos. A pré-classificação do pool de tickets faz com que os tickets sejam agrupados com base em uma característica específica, o que tende a aumentar a uniformidade entre os jogadores nos jogos finais.

Valores permitidos:

  • “random”: válido somente com strategy = “exhaustiveSearch”. Nenhuma pré-classificação é feita; os tickets no pool são distribuídos aleatoriamente. Esse é o comportamento padrão para uma estratégia de pesquisa exaustiva.

  • “sorted”: válido somente com strategy = “exhaustiveSearch”. O pool de tickets é pré-classificado com base nos atributos do jogador listados em sortbyAttributes.

  • “LargestPopulation”: válido somente com strategy = “balanced”. O pool de tickets é pré-classificado por regiões em que os jogadores relatam níveis de latência aceitáveis. Esse é o comportamento padrão para uma estratégia equilibrada.

  • “FastestRegion”: válido somente com strategy = “balanced”. O pool de tickets é pré-classificado por regiões em que os jogadores relatam seus níveis mais baixos de latência. Os jogos resultantes demoram mais para ser concluídos, mas a latência para todos os jogadores tende a ser baixa.

Obrigatório? Sim

balancedAttribute

Nome de um atributo do jogador a ser usado na criação de grandes jogos com a estratégia balanceada.

Valores permitidos: qualquer atributo declarado em playerAttributes com type = “umber”.

Obrigatório? Sim, se strategy = “balanced”.

sortByAttributes

Uma lista de atributos do jogador a serem usados na pré-classificação do pool de tickets antes do lote. Essa propriedade só é usada na pré-classificação com a estratégia de pesquisa exaustiva. A ordem da lista de atributos determina a ordem de classificação. O FlexMatch usa a convenção de classificação padrão para valores alfa e numéricos.

Valores permitidos: qualquer atributo declarado em playerAttributes.

Obrigatório? Sim, se batchingPreference = “sorted”.

backfillPriority

Método de priorização para combinar os tickets de preenchimento. Essa propriedade determina quando o FlexMatch processa os tickets de preenchimento em um lote. Ele só é usado na pré-classificação com a estratégia de pesquisa exaustiva. Se essa propriedade não estiver definida, o comportamento padrão será “normal”.

Valores permitidos:

  • “normal”: o tipo de solicitação de um ticket (preenchimento ou novo jogo) não é considerado na formação de jogos.

  • “alto”: um lote de tickets é classificado por tipo de solicitação (e depois por idade) e o FlexMatch tenta fazer a correspondência entre os tickets preenchidos primeiro.

  • “baixo”: um lote de tickets é classificado por tipo de solicitação (e, depois, por idade) e o FlexMatch tenta primeiro fazer a correspondência entre tickets que não foram preenchidos.

Obrigatório? Não

expansionAgeSelection

Método para o cálculo do tempo de espera para uma expansão da regra de correspondência. As expansões são usadas para relaxar os requisitos do jogo se um jogo não tiver sido concluído após um certo período de tempo. O tempo de espera é calculado com base na idade dos tickets que já estão no jogo parcialmente preenchido. Se essa propriedade não estiver definida, o comportamento padrão será “mais novo”.

Valores permitidos:

  • “mais recente”: o tempo de espera da expansão é calculado com base no ticket com a data e hora de criação mais recentes no jogo parcialmente concluído. As expansões tendem a ser acionadas mais lentamente, porque um ticket mais novo pode reiniciar o relógio de espera.

  • “mais antigo”: o tempo de espera da expansão é calculado com base no ticket com a data e hora de criação mais antigas no jogo. As expansões tendem a ser acionadas mais rapidamente.

Obrigatório? Não

teams

A configuração das equipes em um jogo. Forneça um nome de equipe e uma faixa de tamanho para cada equipe. Um conjunto de regras deve definir pelo menos uma equipe.

name

Um nome exclusivo para o HSM. Os nomes das equipes podem ser mencionados nas regras e expansões. Em um jogo bem-sucedido, os jogadores são designados pelo nome da equipe nos dados de criação de jogos.

Valores permitidos: String

Obrigatório? Sim

maxPlayers

Número máximo de jogadores que podem ser atribuídos à equipe.

Valores permitidos: número

Obrigatório? Sim

minPlayers

O número mínimo de jogadores que devem ser designados para a equipe antes do jogo é viável.

Valores permitidos: número

Obrigatório? Sim

quantity

O número de equipes desse tipo a serem criadas em um jogo. Equipes com quantidades maiores que 1 são designadas com um número anexado (“Red_1”, “Red_2” etc.). Se essa propriedade não for definida, o valor padrão será “1”.

Valores permitidos: número

Obrigatório? Não

rules

Coleção de instruções de regras que definem como avaliar os jogadores para um jogo.

Obrigatório? Não

name

Um nome exclusivo para a regra. Todas as regras em um conjunto de regras devem ter nomes exclusivos. Os nomes das regras também são referenciados em logs de eventos e métricas que controlam as atividades relacionadas a essa regra.

Valores permitidos: String

Obrigatório? Sim

description

Um texto de descrição da regra. Essas informações podem ser usadas para identificar a finalidade de uma regra. Não é usado no processo de criação de jogos.

Valores permitidos: String

Obrigatório? Não

type

O tipo de declaração de regra. Cada tipo de regra tem propriedades adicionais que devem ser definidas. Para obter mais detalhes sobre a estrutura e o uso de cada tipo de regra, consulte Tipos de regras do FlexMatch.

Valores permitidos:

  • “AbsoluteSort”: classifica usando um método de classificação explícito que ordena tickets em um lote com base na comparação de um atributo de jogador especificado com o ticket mais antigo do lote.

  • “collection”: avalia os valores em uma coleção, como um atributo do jogador que é uma coleção ou um conjunto de valores para vários jogadores.

  • “comparison”: compara dois valores.

  • “compound”: Define uma regra composta de criação de jogos usando uma combinação lógica de outras regras no conjunto de regras. Com suporte somente para jogos de 40 jogadores ou menos.

  • “distance”: mede a distância entre os valores numéricos.

  • “batchDistance”: mede a diferença entre o valor de um atributo e a usa para agrupar solicitações de correspondência.

  • “distanceSort”: Classifica usando um método de classificação explícito que ordena tickets em um lote com base em como um atributo de jogador especificado com um valor numérico se compara ao ticket mais antigo do lote.

  • “latency”: avalia os dados de latência regional que são relatados para uma solicitação de criação de jogos.

Obrigatório? Sim

expansions

Regras para relaxar os requisitos do jogo ao longo do tempo, quando um jogo não puder ser concluído. Configure as expansões como uma série de etapas que se aplicam gradualmente para facilitar a localização das combinações. Por padrão, o FlexMatch calcula o tempo de espera com base na idade do ticket mais novo adicionado a um jogo. É possível alterar a forma como os tempos de espera de expansão são calculados usando a propriedade do algoritmoexpansionAgeSelection.

Os tempos de espera de expansão são valores absolutos e, portanto, cada etapa deve ter um tempo de espera maior do que a etapa anterior. Por exemplo, para programar uma série gradual de expansão, você pode usar tempos de espera de 30 segundos, 40 segundos e 50 segundos. Os tempos de espera não podem exceder o tempo máximo permitido para uma solicitação de jogo, que é definido na configuração de criação de jogos.

Obrigatório? Não

target

Elemento do conjunto de regras a ser relaxado. É possível relaxar as propriedades de tamanho da equipe ou qualquer propriedade da declaração de regra. A sintaxe é “<component name>[<rule/team name>].<property name>”. Por exemplo, para alterar os tamanhos mínimo da equipe: teams[Red, Yellow].minPlayers. Para alterar o requisito mínimo de habilidade em uma declaração de regra de comparação chamada “MinSkill”: rules[minSkill].referenceValue.

Obrigatório? Sim

steps
waitTimeSeconds

O período de tempo, em segundos, a aguardar antes da aplicação do novo valor para o elemento do conjunto de regras de destino.

Obrigatório? Sim

value

Novo valor para o elemento do conjunto de regras de destino.