Filtrage des sélecteurs

Les sélecteurs sont des filtres optionnels que vous pouvez inclure dans votre requête de création de session pour filtrer les déploiements qui seront considérés pour héberger la session. Pour faire simple, nous choisirons uniquement un déploiement pour héberger votre session qui possède toutes les balises spécifiées dans la requête. Vous pouvez également utiliser des balises pour ajouter dynamiquement des variables d’environnement à votre déploiement.

Quand vous devriez envisager les sélecteurs

Probablement toujours est la bonne réponse car tôt ou tard, vous pourriez avoir besoin de gérer différentes choses dans votre filtrage, comme les cartes, le type de jeu, les statistiques des joueurs, etc. Cependant, nous comprenons que parfois vous souhaitiez simplement tester rapidement. Voici donc quelques cas d’utilisation courants des sélecteurs :

  • Filtrer les déploiements avec des balises spécifiques pour héberger votre session.

  • Étiqueter votre session pour les identifier.

  • Injecter dynamiquement des variables d’environnement lors de l’utilisation de l’option autodeploy .

circle-check

Comment les utiliser

Ces concepts peuvent s’empiler les uns sur les autres, mais nous passerons en revue chacun d’eux dans sa propre section.

circle-info

Tout le filtrage sera appliqué dans la plage établie au début de la requête de session. Cela signifie que s’il existe un déploiement correspondant aux sélecteurs, mais qu’il n’est pas dans une plage appropriée, le déploiement ne sera pas choisi pour héberger la session.

L’ autodeploy option créera un nouveau déploiement dans le meilleur emplacement disponible. Vous pouvez en lire plus à ce sujet ici.

Filtrer par balises

Ajouter des balises à la liste des sélecteurs de cette façon fera en sorte que votre requête de session recherche un déploiement avec les balises Classé et Carte A. Si vous n’avez pas l’option autodeploy activée et qu’il n’y a pas de déploiements avec ces balises, votre requête de session sera définie sur un état intraitable . En revanche, si l’autodeploy est activé, nous créerons automatiquement un nouveau déploiement, le marquerons avec ces balises, puis le lierons à votre session.

circle-info

Un déploiement doit posséder toutes les balises spécifiées pour être considéré comme adapté à l’hébergement d’une session.

{
  "app_name": "demo",
  "version_name": "v1",
  "ip_list": ["1.2.3.4"],
  "selectors": [
    {
      "tag": "Classé"
    },
    {
      "tag": "Carte A"
    }
  ]
}

Ajouter dynamiquement des variables d’environnement

Cet exemple applique les mêmes concepts que ci-dessus, donc si aucun déploiement n’est trouvé avec les balises Carte A et que l’autodeploy est activé, nous créons un nouveau déploiement étiqueté. Mais nous avons ajouté la clé env à l’objet sélecteur, qui injectera la variable d’environnement MAP_ID avec une valeur de 1 dans le déploiement. Cette variable d’environnement sera disponible au sein du serveur.

circle-exclamation
circle-exclamation

Ajouter des balises à la session sans filtrage

Si vous voulez seulement ajouter des balises à vos sessions sans filtrer les déploiements, vous pouvez utiliser l’attribut tag_only dans votre requête de session. Cela vous permet d’ajouter des balises à la session sans réellement filtrer les déploiements.

Cependant, notez que vous ne pouvez pas utiliser tag_only en combinaison avec l’injection de variables d’environnement en utilisant l’attribut env.

Dans cet exemple, nous ajouterons la balise Europe à chaque session créée avec cette requête. La balise Europe n’est appliquée qu’à la session et non au déploiement. Elle n’affecte en rien le filtrage des déploiements.

Exemple complet

Nous avons une seule version d’application avec deux modes : Classé et Casual. L’autodeploy est activé. Nous avons deux cartes : Carte A et Carte B. Chaque mode peut utiliser chaque carte. Nous voulons étiqueter chaque partie avec Matchmaker #1234, indiquant la source de la requête. Nous voulons cette balise uniquement à des fins de suivi et elle n’affectera pas le filtrage des déploiements.

Le jeu charge les assets de la carte en fonction de la variable d’environnement injectée.

circle-check

Quelqu’un veut jouer un match classé dans la Carte A. Cette carte a l’ID 1. Nous ne voudrions pas mettre quelqu’un qui veut jouer dans la Carte A dans la Carte B, donc nous devons gérer cela correctement. Ceci serait une requête correcte :

Cette requête recherchera un déploiement étiqueté à la fois Classé et Carte A, et si elle n’en trouve aucun, elle en créera un nouveau et le marquera avec les deux balises. Dans les deux cas, la session sera étiquetée avec Matchmaker #1234.

Si nous envoyons une autre requête pour une partie casual sur la carte Carte B, la requête ressemblera à ceci. La carte Carte B a l’ID 2. Les résultats attendus sont les mêmes que pour l’autre requête.

Mis à jour

Ce contenu vous a-t-il été utile ?