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á.
Personalize o algoritmo de correspondência
FlexMatchotimiza o algoritmo padrão da maioria dos jogos para levar os jogadores a partidas aceitáveis com o mínimo de tempo de espera. É possível personalizar o algoritmo e ajustar o criação de jogos para o seu jogo.
A seguir está o algoritmo de FlexMatch matchmaking padrão:
-
FlexMatchcoloca todos os tíquetes de matchmaking abertos e preenche os tíquetes em um pool de ingressos.
-
FlexMatchagrupa aleatoriamente os ingressos no pool em um ou mais lotes. À medida que o pool de tickets aumenta, FlexMatch forma lotes adicionais para manter o tamanho ideal do lote.
-
FlexMatchclassifica os ingressos por idade, dentro de cada lote.
-
FlexMatchcria uma partida com base no tíquete mais antigo de cada lote.
Para personalizar o algoritmo de correspondência, adicione um componente algorithm
ao esquema do conjunto de regras. Consulte FlexMatch esquema de conjunto de regras para obter informações completas de referência.
Use as seguintes personalizações opcionais para impactar diferentes estágios do seu processo de criação de jogos.
Adicionar classificação pré-lote
É possível classificar o pool de tickets antes de formar lotes. Esse tipo de personalização é mais eficaz em jogos com grandes pools de tickets. A classificação pré-lote pode ajudar a acelerar o processo de criação de jogos e aumentar a uniformidade dos jogadores nas características definidas.
Defina métodos de classificação pré-lote usando a propriedade do algoritmo batchingPreference
. A configuração padrão é random
.
As opções para personalizar a classificação pré-lote incluem:
-
Classifique por atributos do jogador. Forneça uma lista dos atributos do jogador para pré-classificar o pool de tickets.
Para classificar por atributos do jogador, defina
batchingPreference
comosorted
e defina sua lista de atributos do jogador emsortByAttributes
. Para usar um atributo, primeiro declare o atributo no componenteplayerAttributes
do conjunto de regras.No exemplo a seguir, FlexMatch classifica o pool de ingressos com base no mapa de jogo preferido dos jogadores e, em seguida, pela habilidade do jogador. É mais provável que os lotes resultantes contenham jogadores com habilidades semelhantes que desejam usar o mesmo mapa.
"algorithm": { "batchingPreference": "sorted", "sortByAttributes": ["map", "player_skill"], "strategy": "exhaustiveSearch" },
-
Classifique por latência. Crie jogos com a menor latência disponível ou crie rapidamente jogos com latência aceitável. Essa personalização é útil para conjuntos de regras que formam grandes jogos de mais de 40 jogadores.
Defina a propriedade do algoritmo
strategy
comobalanced
. A estratégia balanceada limita os tipos disponíveis de declarações de regras. Para obter mais informações, consulte Projete um FlexMatch conjunto de regras para grandes combinações.FlexMatchclassifica os tíquetes com base nos dados de latência relatados pelos jogadores de uma das seguintes formas:
-
Locais de menor latência. O pool de ingressos é pré-classificado pelos locais onde os jogadores relatam seus valores de latência mais baixos. FlexMatchem seguida, agrupa os tíquetes com baixa latência nos mesmos locais, criando uma melhor experiência de jogo. Também reduz o número de tickets em cada lote, então o criação de jogos pode demorar mais. Para usar essa personalização, defina
batchingPreference
comofastestRegion
, conforme mostrado no exemplo a seguir."algorithm": { "batchingPreference": "fastestRegion", "strategy": "balanced" },
-
A latência aceitável corresponde rapidamente. O pool de tickets é pré-classificado por locais onde os jogadores relatam um valor de latência aceitável. Isso forma menos lotes contendo mais tickets. Com mais tickets em cada lote, encontrar combinações aceitáveis é mais rápido. Para usar essa personalização, defina a propriedade
batchingPreference
comolargestPopulation
, conforme mostrado no exemplo a seguir."algorithm": { "batchingPreference": "largestPopulation", "strategy": "balanced" },
nota
O valor padrão para a estratégia balanceada é
largestPopulation
. -
Priorize os tickets de preenchimento
Se o seu jogo implementa preenchimento automático ou preenchimento manual, você pode personalizar como FlexMatch processa os tíquetes de matchmaking com base no tipo de solicitação. O tipo de solicitação pode ser uma nova solicitação de jogo ou preenchimento. Por padrão, FlexMatch trata os dois tipos de solicitações da mesma forma.
A priorização do preenchimento afeta a forma como FlexMatch lida com os tíquetes depois de agrupá-los em lotes. A priorização do preenchimento exige conjuntos de regras para usar a estratégia de pesquisa exaustiva.
FlexMatchnão combina vários tíquetes de preenchimento.
Para alterar a priorização dos tickets de preenchimento, defina a propriedade backfillPriority
.
-
Combine os tickets de preenchimento primeiro. Essa opção tenta combinar os tickets preenchidos antes de criar novos jogos. Isso significa que os novos jogadores têm uma chance maior de entrar em um jogo existente.
É melhor usar isso se seu jogo usa preenchimento automático. O preenchimento automático é frequentemente usado em jogos com sessões curtas e alta rotatividade de jogadores. O preenchimento automático ajuda esses jogos a formar partidas mínimas viáveis e a iniciá-las enquanto procuram mais FlexMatch jogadores para preencher as vagas abertas.
Defina
backfillPriority
comohigh
."algorithm": { "backfillPriority": "high", "strategy": "exhaustiveSearch" },
-
Os tickets de preenchimento do jogo duram. Essa opção ignora os tickets de preenchimento até avaliar todos os outros tickets. Isso significa que FlexMatch preenche os novos jogadores nos jogos existentes quando não consegue combiná-los com jogos novos.
Essa opção é útil quando você deseja usar o preenchimento como uma opção de última chance para colocar jogadores em um jogo, como quando não há jogadores suficientes para formar uma novo jogo.
Defina
backfillPriority
comolow
."algorithm": { "backfillPriority": "low", "strategy": "exhaustiveSearch" },
Favoreça tickets mais antigos com expansões
As regras de expansão relaxam os critérios de correspondência quando as partidas são difíceis de concluir. Amazon GameLift Serversaplica regras de expansão quando os ingressos em uma partida parcialmente concluída atingem uma certa idade. Os carimbos de data e hora de criação dos tickets determinam quando as regras são Amazon GameLift Servers aplicadas; por padrão, FlexMatch rastreiam o timestamp do ticket correspondido mais recentemente.
Para alterar quando as regras de expansão são FlexMatch aplicadas, defina a propriedade da expansionAgeSelection
seguinte forma:
-
Expanda com base nos tickets mais novos. Essa opção aplica regras de expansão com base no ticket mais novo adicionado à possível jogo. Cada vez que FlexMatch corresponde a um novo tíquete, o relógio de ponto é zerado. Com essa opção, os jogos resultantes tendem a ser de melhor qualidade, mas demoram mais para serem correspondidos; as solicitações de jogos podem expirar antes de serem concluídas se demorarem muito para serem correspondidas. Defina
expansionAgeSelection
comonewest
.newest
é padrão. -
Expanda com base nos tickets mais antigos. Essa opção aplica regras de expansão com base no ticket mais antigo do jogo potencial. Com essa opção, FlexMatch aplica expansões mais rapidamente, o que melhora o tempo de espera dos primeiros jogadores combinados, mas diminui a qualidade da partida para todos os jogadores. Defina
expansionAgeSelection
comooldest
.
"algorithm": { "expansionAgeSelection": "oldest", "strategy": "exhaustiveSearch" },