Conception d'un ensemble de FlexMatch règles - Amazon GameLift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Conception d'un ensemble de FlexMatch règles

Cette rubrique traite de la structure de base d'un ensemble de règles et explique comment créer un ensemble de règles pour les petits matchs jusqu'à 40 joueurs. Un ensemble de règles de matchmaking fait deux choses : définir la structure et la taille de l'équipe d'un match et indiquer au système de matchmaking comment choisir les joueurs pour former le meilleur match possible.

Mais votre ensemble de règles de matchmaking peut faire plus. Par exemple, vous pouvez :

  • Optimisez l'algorithme de matchmaking pour votre jeu.

  • Définissez des exigences de latence minimale pour les joueurs afin de protéger la qualité du jeu.

  • Assouplissez progressivement les exigences de l'équipe et les règles des matchs au fil du temps afin que tous les joueurs actifs puissent trouver un match acceptable quand ils le souhaitent.

  • Définissez la gestion des demandes de matchmaking de groupe à l'aide de l'agrégation de groupes.

  • Organisez des matchs importants de 40 joueurs ou plus. Pour plus d'informations sur la création d'allumettes volumineuses, consultezConcevez un ensemble FlexMatch de règles pour les matchs importants.

Lorsque vous créez un ensemble de règles de matchmaking, prenez en compte les tâches facultatives et obligatoires suivantes :

Vous pouvez créer votre ensemble de règles à l'aide de la GameLift console Amazon ou de l'CreateMatchmakingRuleSetopération.

Décrire l'ensemble de règles (obligatoire)

Fournissez les détails relatifs à l'ensemble de règles.

  • nom (facultatif) : étiquette descriptive pour votre propre usage. Cette valeur n'est pas associée au nom de l'ensemble de règles que vous spécifiez lors de la création de l'ensemble de règles avec AmazonGameLift.

  • ruleLanguageVersion— Version du langage d'expression de propriété utilisé pour créer des FlexMatch règles. La valeur doit être1.0.

Personnalisez l'algorithme de correspondance

FlexMatchoptimise l'algorithme par défaut de la plupart des jeux afin de permettre aux joueurs de participer à des matchs acceptables avec un minimum de temps d'attente. Vous pouvez personnaliser l'algorithme et ajuster le matchmaking pour votre jeu.

Voici l'algorithme de FlexMatch matchmaking par défaut :

  1. FlexMatchplace tous les tickets de matchmaking ouverts et les tickets de remplissage dans un pool de tickets.

  2. FlexMatchregroupe aléatoirement les tickets du pool en un ou plusieurs lots. Au fur et à mesure que le pool de tickets augmente, il FlexMatch forme des lots supplémentaires afin de maintenir une taille de lot optimale.

  3. FlexMatchtrie les billets par âge, au sein de chaque lot.

  4. FlexMatchcrée une correspondance en fonction du ticket le plus ancien de chaque lot.

Pour personnaliser l'algorithme de correspondance, ajoutez un algorithm composant au schéma de votre ensemble de règles. Voir FlexMatchschéma d'ensemble de règles pour les informations de référence complètes.

Utilisez les personnalisations facultatives suivantes pour influencer les différentes étapes de votre processus de matchmaking.

Ajouter le tri préalable aux lots

Vous pouvez trier le pool de tickets avant de former des lots. Ce type de personnalisation est particulièrement efficace pour les jeux comportant de grands pools de tickets. Le tri préalable par lots peut aider à accélérer le processus de matchmaking et à améliorer l'uniformité des caractéristiques définies par les joueurs.

Définissez les méthodes de tri par lots à l'aide de la propriété de l'algorithme. batchingPreference Le paramètre par défaut est random.

Les options permettant de personnaliser le tri préalable au lot sont les suivantes :

  • Triez selon les attributs du joueur. Fournissez une liste des attributs des joueurs pour trier à l'avance le pool de tickets.

    Pour trier par attributs de joueur, configurez batchingPreference et définissez votre liste d'attributs de joueur danssortByAttributes. sorted Pour utiliser un attribut, déclarez-le d'abord dans le playerAttributes composant de l'ensemble de règles.

    Dans l'exemple suivant, FlexMatch trie le pool de tickets en fonction de la carte de jeu préférée des joueurs, puis en fonction de leurs compétences. Les lots qui en résultent sont plus susceptibles de contenir des joueurs aux compétences similaires qui souhaitent utiliser la même carte.

    "algorithm": { "batchingPreference": "sorted", "sortByAttributes": ["map", "player_skill"], "strategy": "exhaustiveSearch" },
  • Triez par latence. Créez des correspondances avec la latence la plus faible disponible ou créez rapidement des correspondances avec une latence acceptable. Cette personnalisation est utile pour les ensembles de règles constituant de grands matchs de plus de 40 joueurs.

    Définissez la propriété de l'algorithme strategy surbalanced. La stratégie équilibrée limite les types d'énoncés de règles disponibles. Pour plus d'informations, veuillez consulter Concevez un ensemble FlexMatch de règles pour les matchs importants.

    FlexMatchtrie les tickets en fonction des données de latence signalées par les joueurs de l'une des manières suivantes :

    • Emplacements à latence la plus faible. Le pool de tickets est pré-trié en fonction des emplacements où les joueurs signalent leurs valeurs de latence les plus faibles. FlexMatchregroupe ensuite les tickets avec une faible latence aux mêmes emplacements, créant ainsi une meilleure expérience de jeu. Cela réduit également le nombre de tickets dans chaque lot, de sorte que le matchmaking peut prendre plus de temps. Pour utiliser cette personnalisation, batchingPreference réglez-la surfastestRegion, comme indiqué dans l'exemple suivant.

      "algorithm": { "batchingPreference": "fastestRegion", "strategy": "balanced" },
    • La latence acceptable correspond rapidement. Le pool de tickets est pré-trié en fonction des emplacements où les joueurs signalent une valeur de latence acceptable. Cela permet de former moins de lots contenant plus de tickets. Avec un plus grand nombre de tickets par lot, il est plus rapide de trouver des matchs acceptables. Pour utiliser cette personnalisation, définissez la propriété batchingPreference sur largestPopulation, comme indiqué dans l'exemple suivant.

      "algorithm": { "batchingPreference": "largestPopulation", "strategy": "balanced" },
    Note

    La valeur par défaut de la stratégie équilibrée estlargestPopulation.

Prioriser les tickets de remblayage

Si votre jeu implémente le remplissage automatique ou le remplissage manuel, vous pouvez personnaliser la façon dont les tickets de matchmaking sont FlexMatch traités en fonction du type de demande. Le type de demande peut être une nouvelle correspondance ou une demande de remplissage. Par défaut, FlexMatch traite les deux types de demandes de la même manière.

La priorisation du remblayage a un impact sur la façon dont les tickets FlexMatch sont gérés une fois qu'ils ont été groupés. La priorisation des remplissages nécessite des ensembles de règles permettant d'utiliser une stratégie de recherche exhaustive.

FlexMatchne correspond pas à plusieurs tickets de remblayage.

Pour modifier la priorité des tickets de remplissage, définissez la propriété. backfillPriority

  • Faites correspondre les tickets de remblayage en premier. Cette option essaie de faire correspondre les tickets de remplacement avant de créer de nouvelles correspondances. Cela signifie que les nouveaux joueurs ont plus de chances de rejoindre une partie existante.

    Il est préférable de l'utiliser si votre jeu utilise le remblayage automatique. Le remblayage automatique est souvent utilisé dans les jeux où les sessions de jeu sont courtes et où le taux de rotation des joueurs est élevé. Le remplissage automatique permet à ces jeux de former un minimum de parties viables et de les lancer tout en FlexMatch recherchant plus de joueurs pour occuper les places disponibles.

    Définissez backfillPriority sur high.

    "algorithm": { "backfillPriority": "high", "strategy": "exhaustiveSearch" },
  • Faites correspondre les tickets de remblayage en dernier. Cette option ignore les tickets de remplissage jusqu'à ce qu'elle évalue tous les autres tickets. Cela signifie qu'il FlexMatch réintègre les joueurs entrants dans des jeux existants lorsqu'il n'est pas possible de les intégrer à de nouveaux jeux.

    Cette option est utile lorsque vous souhaitez utiliser le remblayage comme option de dernière chance pour faire participer des joueurs à une partie, par exemple lorsqu'il n'y a pas assez de joueurs pour former un nouveau match.

    Définissez backfillPriority sur low.

    "algorithm": { "backfillPriority": "low", "strategy": "exhaustiveSearch" },

Privilégiez les anciens billets avec des extensions

Les règles d'extension assouplissent les critères de match lorsque les matchs sont difficiles à terminer. Amazon GameLift applique des règles d'extension lorsque les billets d'un match partiellement terminé atteignent un certain âge. Les horodatages de création des tickets déterminent à quel moment Amazon GameLift applique les règles ; par défaut, FlexMatch suit l'horodatage du dernier ticket correspondant.

Pour modifier l'FlexMatchapplication des règles d'extension, définissez la propriété expansionAgeSelection comme suit :

  • Développez en fonction des derniers billets. Cette option applique les règles d'extension en fonction du dernier ticket ajouté au match potentiel. Chaque fois qu'un nouveau ticket FlexMatch correspond à un nouveau ticket, l'horloge est remise à zéro. Avec cette option, les correspondances obtenues ont tendance à être de meilleure qualité mais prennent plus de temps à être mises en correspondance ; les demandes de correspondance peuvent expirer avant d'être terminées si elles mettent trop de temps à correspondre. Réglez expansionAgeSelection surnewest. newestest la valeur par défaut.

  • Développez en fonction des billets les plus anciens. Cette option applique les règles d'extension en fonction du ticket le plus ancien du match potentiel. Cette option permet d'FlexMatchappliquer les extensions plus rapidement, ce qui réduit les temps d'attente pour les joueurs les plus proches, mais diminue la qualité des parties pour tous les joueurs. Définissez expansionAgeSelection sur oldest.

"algorithm": { "expansionAgeSelection": "oldest", "strategy": "exhaustiveSearch" },

Déclarer les attributs du joueur

Dans cette section, listez les attributs individuels des joueurs à inclure dans les demandes de matchmaking. Vous pouvez déclarer les attributs d'un joueur dans un ensemble de règles pour deux raisons :

  • Lorsque l'ensemble de règles contient des règles qui dépendent des attributs du joueur.

  • Lorsque vous souhaitez transmettre un attribut de joueur à la session de jeu via la demande de match. Par exemple, vous souhaiterez peut-être transmettre les choix de personnages des joueurs à la session de jeu avant que chaque joueur ne se connecte.

Lorsque vous déclarez un attribut de joueur, incluez les informations suivantes :

  • nom (obligatoire) — Cette valeur doit être unique pour l'ensemble de règles.

  • type (obligatoire) — Type de données de la valeur de l'attribut. Les types de données valides sont number, string ou string map.

  • par défaut (facultatif) — Entrez une valeur par défaut à utiliser si une demande de matchmaking ne fournit pas de valeur d'attribut. Si aucune valeur par défaut n'est déclarée et qu'une demande ne contient pas de valeur, FlexMatch impossible de répondre à la demande.

Définissez les équipes de match

Décrivez la structure et la taille des équipes pour une partie. Chaque partie doit être associée à au moins une équipe. Le nombre total d'équipes n'est pas limité. Vos équipes peuvent avoir le même nombre de joueurs ou être asymétriques. Par exemple, vous pouvez définir une équipe d'une seule personne pour jouer le monstre face à une équipe de 10 joueurs comme chasseurs.

FlexMatch traite les demandes de mise en relation selon que la partie implique un nombre de joueurs faible ou élevé, comme défini dans l'ensemble de règles. Les matchs potentiels réunissant jusqu'à 40 joueurs sont des petits matchs, tandis que les matchs avec plus de 40 joueurs sont des matchs importants. Pour déterminer la taille d'une partie potentielle dans un ensemble de règles, ajoutez les paramètres maxPlayer pour toutes les équipes définies dans cet ensemble de règles.

  • nom (obligatoire) — Attribuez un nom unique à chaque équipe. Vous utilisez ce nom dans les règles et les extensions, ainsi que dans les FlexMatch références pour les données de matchmaking d'une session de jeu.

  • MaxPlayers (obligatoire) — Spécifiez le nombre maximum de joueurs à affecter à l'équipe.

  • MinPlayers (obligatoire) — Spécifiez le nombre minimum de joueurs à affecter à l'équipe.

  • quantité (facultatif) — Spécifiez le nombre d'équipes à former avec cette définition. Lorsqu'un match est FlexMatch créé, il donne à ces équipes le nom fourni avec un numéro ajouté. Par exemple Red-Team1Red-Team2, etRed-Team3.

FlexMatchessaie de remplir les équipes jusqu'à la taille maximale mais crée des équipes avec moins de joueurs. Si vous souhaitez que toutes les équipes de la partie soient de taille égale, vous pouvez créer une règle à cette fin. Consultez la FlexMatch exemples d'ensembles de règles rubrique pour un exemple de EqualTeamSizes règle.

Définissez des règles pour l'appariement des joueurs

Créez un ensemble d'énoncés de règles qui évaluent l'admissibilité des joueurs à un match. Les règles peuvent définir des exigences qui s'appliquent aux joueurs individuels, à des équipes ou à une partie entière. Lorsqu'Amazon GameLift traite une demande de match, elle part du joueur le plus âgé du groupe de joueurs disponibles et crée un match autour de ce joueur. Pour obtenir une aide détaillée sur la création de FlexMatch règles, consultezFlexMatchtypes de règles.

  • name (obligatoire) : nom significatif identifiant de manière unique la règle au sein d'un ensemble de règles. Les noms de règle sont également référencés dans les journaux des événements et les métriques qui suivent l'activité associée à cette règle.

  • description (facultatif) : utilisez cet élément pour joindre une description sous forme de texte libre.

  • type (obligatoire) — L'élément type identifie l'opération à utiliser lors du traitement de la règle. Chaque type de règle nécessite un ensemble de propriétés supplémentaires. Pour consulter la liste des types de règles et des propriétés valides, voir FlexMatchlangage des règles.

  • Propriété du type de règle (peut être obligatoire) : selon le type de règle défini, il se peut que vous deviez définir certaines propriétés de règle. Pour en savoir plus sur les propriétés et sur l'utilisation du langage d'expression des propriétés FlexMatch, voir FlexMatchlangage des règles.

Laissez les exigences s'assouplir au fil du temps

Les extensions vous permettent d'assouplir les critères des règles au fil du temps lorsque FlexMatch vous ne trouvez pas de correspondance. Cette fonctionnalité FlexMatch garantit la disponibilité d'un meilleur produit lorsqu'il n'est pas possible d'obtenir une correspondance parfaite. En assouplissant vos règles grâce à une extension, vous augmentez progressivement le nombre de joueurs qui correspondent à un match acceptable.

Les extensions commencent lorsque l'âge du ticket le plus récent d'un match incomplet correspond au délai d'attente d'une extension. Lorsque FlexMatch vous ajoutez un nouveau ticket au match, le temps d'attente de l'extension peut être réinitialisé. Vous pouvez personnaliser le début des extensions dans la algorithm section de l'ensemble de règles.

Voici un exemple d'extension qui augmente progressivement le niveau de compétence minimum requis pour le match. L'ensemble de règles utilise une règle de distance, nommée SkillDeltapour exiger que tous les joueurs participant à un match se situent à moins de 5 niveaux de compétence les uns des autres. Si aucun nouveau match n'est créé pendant quinze secondes, cette extension recherche une différence de niveau de compétence de 10, puis dix secondes plus tard, une différence de 20.

"expansions": [{ "target": "rules[SkillDelta].maxDistance", "steps": [{ "waitTimeSeconds": 15, "value": 10 }, { "waitTimeSeconds": 25, "value": 20 }] }]

Avec les systèmes de matchmaking qui ont activé le remplissage automatique, n'assouplissez pas trop rapidement vos exigences en matière de nombre de joueurs. Quelques secondes peuvent être nécessaire pour que la nouvelle session de jeu démarre et commence le remplissage automatique. Une meilleure approche consiste à démarrer votre extension une fois que le remblayage automatique a tendance à démarrer pour vos jeux. Le calendrier des extensions varie en fonction de la composition de votre équipe. Faites donc des tests pour trouver la meilleure stratégie d'extension pour votre jeu.