Referência: Crie duas equipes com jogadores iguais - 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á.

Referência: Crie duas equipes com jogadores iguais

Este exemplo ilustra como configurar duas equipes com correspondência igual de jogadores com as instruções a seguir.

  • Crie duas equipes de jogadores.

    • Inclua entre quatro e oito jogadores em cada equipe.

    • As equipes finais devem ter o mesmo número de jogadores.

  • Inclua um nível de habilidade do jogador (se não for fornecido, o padrão é 10).

  • Escolha jogadores baseado em se o nível de habilidade deles é semelhante a outros jogadores. Verifique se ambas as equipes têm um nível de habilidade médio por jogador de 10 pontos entre si.

  • Se a correspondência não for preenchida rapidamente, atenue a exigência de habilidade do jogador para concluir uma correspondência em tempo razoável.

    • Depois de 5 segundos, expanda a pesquisa para permitir equipes com habilidades de jogador médias de 50 pontos.

    • Depois de 15 segundos, expanda a pesquisa para permitir equipes com habilidades de jogador médias de 100 pontos.

Observações sobre como usar o conjunto de regras:

  • Este exemplo permite equipes de qualquer tamanho entre quatro e oito jogadores (embora elas precisem ser do mesmo tamanho). Para equipes com uma faixa de tamanhos válida, o marcador de jogos faz uma tentativa de melhor esforço para corresponder ao número máximo de jogadores permitidos.

  • A regra FairTeamSkill garante que as equipes sejam uniformemente correlacionadas com base na habilidade do jogador. Para avaliar essa regra para cada novo jogador em potencial, adiciona FlexMatch provisoriamente o jogador a uma equipe e calcula as médias. Se a regra falhar, o jogador em potencial não será adicionado à correspondência.

  • Como ambas as equipes têm estruturas idênticas, você pode optar por criar apenas uma definição de equipe e definir a quantidade da equipe como "2". Nesse cenário, se você nomeou a equipe como "aliens", suas equipes recebem os nomes "aliens_1" e "aliens_2".

{ "name": "aliens_vs_cowboys", "ruleLanguageVersion": "1.0", "playerAttributes": [{ "name": "skill", "type": "number", "default": 10 }], "teams": [{ "name": "cowboys", "maxPlayers": 8, "minPlayers": 4 }, { "name": "aliens", "maxPlayers": 8, "minPlayers": 4 }], "rules": [{ "name": "FairTeamSkill", "description": "The average skill of players in each team is within 10 points from the average skill of all players in the match", "type": "distance", // get skill values for players in each team and average separately to produce list of two numbers "measurements": [ "avg(teams[*].players.attributes[skill])" ], // get skill values for players in each team, flatten into a single list, and average to produce an overall average "referenceValue": "avg(flatten(teams[*].players.attributes[skill]))", "maxDistance": 10 // minDistance would achieve the opposite result }, { "name": "EqualTeamSizes", "description": "Only launch a game when the number of players in each team matches, e.g. 4v4, 5v5, 6v6, 7v7, 8v8", "type": "comparison", "measurements": [ "count(teams[cowboys].players)" ], "referenceValue": "count(teams[aliens].players)", "operation": "=" // other operations: !=, <, <=, >, >= }], "expansions": [{ "target": "rules[FairTeamSkill].maxDistance", "steps": [{ "waitTimeSeconds": 5, "value": 50 }, { "waitTimeSeconds": 15, "value": 100 }] }] }