Visão geral
O sistema de filas e regras oferece flexibilidade para lidar com um grande número de cenários. Veja a seguir exemplos de alguns dos casos de uso de matchmaking mais comuns e suas filas associadas. Você pode enviar cada uma dessas configurações diretamente usando as APIs do PlayFab. <!—the Matchmaking Admin API.—> Você também pode definir essas opções usando a interface do usuário do Game Manager.Minha primeira fila, ou “partida rápida”
Todo título deve começar com esta fila simples para definir seus fluxos básicos. Esta fila combina dois jogadores e contém uma regra opcional que exige que os jogadores passem a mesma cadeia de caracteres de build para serem combinados. Se você não especificar um build, o jogador poderá ser combinado com outros jogadores nesta fila, independentemente do build.Vários modos de jogo
Os títulos geralmente oferecem diferentes formas de jogar. Se esses jogadores nunca devem ser combinados entre si, colocá-los em filas separadas otimiza o desempenho.Pesquisa entre modos de jogo
Se a intenção é que os jogadores sejam combinados com outros em diferentes modos de jogo, use uma única fila e crie uma regra de interseção de conjuntos. Os jogadores podem especificar vários modos de jogo, e a regra restringe as partidas àquelas em que todos os jogadores tenham pelo menos um modo de jogo em comum.O número de jogadores necessários para jogar deve ser o mesmo em todos os modos para que essa funcionalidade funcione corretamente.
Jogo livre para todos baseado em habilidade, com expansão
Um cenário comum é tentar combinar jogadores com base na habilidade. Neste exemplo, a fila exige que os atributos de habilidade dos jogadores estejam a até 0,2 de diferença, com esse valor aumentando ao longo do tempo até 0,5. Para tíquetes que estejam aguardando há mais de 30 segundos, qualquer diferença de habilidade é permitida. Os valores deste exemplo pressupõem que os intervalos de habilidades disponíveis estejam entre 0 e 1. Ajuste esses valores de acordo com o intervalo de valores que seu título usa para controlar as habilidades dos jogadores e com o quanto de ênfase é dado à habilidade em relação à velocidade de uma partida. Além disso, o fato de a regra se tornar opcional aos 30 segundos se destina a jogos em que é melhor jogar uma partida com habilidades desequilibradas do que não jogar. Para jogos em que uma partida desequilibrada é uma experiência totalmente negativa, ajusteSecondsUntilOptional. Se for removido completamente, a regra permanecerá ativa indefinidamente.
Personalizando expansões
Você pode personalizar as expansões para usar valores arbitrários em cada intervalo de tempo. Por exemplo, talvez você queira que a habilidade permitida cresça lentamente no início e, depois, mais rapidamente ao longo do tempo.Expansão do número de jogadores ao longo do tempo
Alguns títulos preferem começar com uma partida completa, mas, com o tempo, podem se contentar com cada vez menos pessoas. Um exemplo disso é um jogo no estilo Battle Royale projetado para começar com até 50 jogadores, mas que pode prosseguir com menos jogadores após um tempo limite de matchmaking. ComoMinMatchSize e MaxMatchSize não contêm uma expansão, você pode usar uma MatchTotalRule para modificar o número de jogadores necessários para uma partida. Cada jogador define o atributo associado como 1. A regra soma esses valores para impor dinamicamente o número necessário de jogadores para uma partida.
Se você não especificar uma matriz
MaxOverrides ou MinOverrides, o valor original de Max ou Min da regra será usado no lugar dela.Estilo 4v4 padrão baseado em habilidade
O PlayFab Matchmaking dá suporte a partidas orientadas a equipes. Quando você especifica equipes, os jogadores enviados juntos no mesmo tíquete são todos alocados em uma única equipe e não são obrigados a jogar uns contra os outros. O PlayFab Matchmaking também dá suporte a várias regras de equipe para ajudar a garantir que as equipes sejam equilibradas. Este exemplo é para uma partida 4v4 e garante que as habilidades sejam equilibradas entre as equipes.Servidores multijogador
Uma fila pode alimentar automaticamente o recurso de servidores multijogador do PlayFab, alocando um servidor e fornecendo a ele uma lista de jogadores combinados. Esta fila fornece o menor exemplo dessa configuração, que é o sinalizadorServerAllocationEnabled, junto com o BuildId que representa qual build do servidor deve ser iniciado.
Ao definir o sinalizador ServerAllocationEnabled como true, você também deve incluir uma RegionSelectionRule para indicar onde um servidor deve ser alocado para cada partida.
Batalha de equipes grandes (12 contra 12)
Jogos com equipes maiores podem ter requisitos adicionais. Neste exemplo, a fila está configurada para criar um servidor multijogador, o que muitas vezes é necessário para gerenciar jogos com tantos jogadores. Esta configuração é semelhante à do exemplo anterior. Além da habilidade, adicione outra regra de equipe para incentivar a similaridade entre as equipes. Apenas uma equipe grande é permitida em cada lado, evitando a situação comum de uma equipe pré-formada ser combinada contra um grande conjunto de jogadores aleatórios.Jogos no estilo Battle Royale
Jogos no estilo Battle Royale colocam muitas pessoas em uma arena. Neste exemplo, o jogo é configurado com equipes de quatro. Atualmente, há um limite de 32 jogadores permitidos em um cenário de equipes como este. Essa limitação será aprimorada no futuro. Este exemplo também contém informações de configuração de servidor multijogador para servidores dedicados, o que muitas vezes é necessário para jogos com um grande número de jogadores. Esta configuração é semelhante à do exemplo anterior.Lidando com preferências assimétricas de jogo multiplataforma
Como os jogadores podem escolher diferentes configurações de jogo multiplataforma (cross-play), as preferências de matchmaking são assimétricas. Os jogadores que habilitam o cross-play estão dispostos a ser combinados com qualquer plataforma, enquanto os jogadores que desabilitam o cross-play só querem ser combinados com jogadores da própria plataforma. Você pode usar uma regra de igualdade de cadeia de caracteres ou uma regra de interseção de conjuntos para implementar uma fila de matchmaking capaz de lidar com esse tipo de assimetria. Este exemplo específico usa igualdade de cadeia de caracteres. Se um jogador desabilitar o cross-play, o cliente especificará oDeviceType dele (por exemplo, "xbox", "playstation"), e a regra o restringirá a partidas na mesma plataforma. Se um jogador habilitar o cross-play, o cliente omitirá completamente o atributo DeviceType, e o AttributeNotSpecifiedBehavior com valor MatchAny permitirá que ele seja combinado com qualquer plataforma.
Quando um grupo de jogadores envia um tíquete em conjunto, o serviço trata o grupo como uma única unidade; ele não divide o grupo entre partidas ou equipes. O cliente do seu jogo deve validar a composição do grupo antes do envio do tíquete. Por exemplo, se um jogador estiver com o cross-play desabilitado, impeça-o de entrar em um grupo multiplataforma antes que o tíquete seja criado.
Requisitos de host/pesquisador ou baseados em funções
O PlayFab Match usa um sistema de correspondência baseado em tíquetes, no qual um host de jogo não é selecionado com antecedência. No entanto, ele pode emular um sistema de host/pesquisador usando umaMatchTotalRule para limitar o número de hosts permitidos em uma partida.
Os tíquetes podem então especificar com antecedência se são um host especificando 1. Cada partida deve conter exatamente um host.
Se o número de hosts for muito maior que o de pesquisadores, ou vice-versa, esse desequilíbrio poderá causar tempos de matchmaking lentos para todos os jogadores. Considere as implicações do design do seu matchmaking para garantir que haja jogadores suficientes em qualquer subpopulação para atender às suas regras de matchmaking e ao tempo médio desejado para formar uma partida.
MatchTotalRule para exigir essas funções.
Regras com importância variável
As regras orientam o matchmaking tanto restringindo quais tíquetes estão qualificados para serem combinados entre si quanto escolhendo a ordem em que esses tíquetes são selecionados. Quando há várias regras, o sistema leva em conta todas as suas restrições. No entanto, um título pode priorizar a preferência de uma regra em relação aos tíquetes qualificados restantes. Neste exemplo, um jogador deve estar dentro de um nível de habilidade e de experiência. No entanto, se muitos tíquetes estiverem dentro dos limites designados de habilidade e experiência, esta fila dará preferência aos mais próximos em habilidade, em vez dos mais próximos em nível de experiência. As diferenças de habilidade contam três vezes mais do que as diferenças de experiência ao avaliar os tíquetes que atendem às restrições.Pacotes de DLC
Com vários pacotes de DLC, os jogadores podem optar por encontrar apenas outros jogadores que tenham um DLC correspondente usando umaSetIntersectionRule. Cada jogador passa os pacotes de DLC que possui, e uma partida exige que o grupo compartilhe pelo menos um pacote de DLC.
Após 30 segundos, a regra se torna opcional, para que os jogadores possam ser combinados sem compartilhar DLC.
Habilitando estatísticas
Ao habilitar as estatísticas, seu título pode exibir informações sobre uma fila. Essas informações podem ser úteis para definir as expectativas dos jogadores à medida que eles escolhem o modo de jogo que desejam jogar. Por outro lado, os títulos podem querer ocultar essas informações, seja para fins de business intelligence, seja para evitar direcionar jogadores para filas com muito tráfego. Esta fila habilita tanto a capacidade de ver o número de jogadores presentes em uma fila quanto um tempo estimado que um tíquete leva para ser combinado.Um servidor sempre pode recuperar essas informações. A configuração a seguir controla apenas se os usuários também têm permissão para fazer essa chamada.
