# Matchmaking

Commencez rapidement avec le matchmaking et explorez des scénarios d’exemple pour différents genres.

Suivez cette vidéo pour commencer à utiliser notre service Matchmaker :

{% embed url="<https://youtu.be/HxtvzvJ1FTk>" %}

## ✔️ Préparation

### Architecture du matchmaking

Ce guide se concentrera sur **l’API de matchmaking et l’API de backfill**.

<figure><img src="/files/b0cd9997f903da6e31360ce327dd0d965fb10c11" alt=""><figcaption></figcaption></figure>

Il existe quatre (4) flux de données importants lorsque le matchmaking est impliqué :

1. [API de matchmaking](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#matchmaking-api) **est utilisée par les clients de jeu pour communiquer avec Matchmaker :**
   1. pour la gestion des groupes, l’affectation des serveurs et la surveillance,
   2. pour la mesure du ping avec [Balises Ping](/docs.edgegap.com-fr/learn/orchestration/ping-beacons.md).
2. [Déploiements](/docs.edgegap.com-fr/learn/orchestration/deployments.md) l’API est utilisée pour déployer, dimensionner et gérer vos serveurs dédiés par Matchmaker.
3. [Transports Netcode](/docs.edgegap.com-fr/docs/sample-projects.md) sont utilisés pour communiquer entre les clients de jeu et les serveurs dédiés.
4. [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#backfill-match) **pour remplacer ou ajouter des joueurs à un serveur en cours d’exécution.**

{% hint style="info" %}
Après la mise en production, **votre matchmaker devra fonctionner 24 h/24 et 7 j/7** pour garantir que les joueurs du monde entier puissent rejoindre les serveurs.
{% endhint %}

## 🍀 Exemple simple

Commencez par un exemple simple et testez le flux de base des joueurs en matchmaking :

* création de l’instance du matchmaker sur le [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#hosting-cluster),
* définition des règles et paramètres dans votre matchmaker [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#configuration),
* test du flux des joueurs et gestion des tickets avec [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#matchmaking-api).

### 1. Configuration sur le niveau gratuit

☑️ [Inscrivez-vous pour votre compte Edgegap gratuit](https://app.edgegap.com/auth/register) et ouvrez la [page du tableau de bord Matchmaker](https://app.edgegap.com/matchmaker-management-v2/matchmakers/list).

☑️ Cliquez sur **Créer un Matchmaker** d’abord, puis saisissez :

* nom du matchmaker - pour votre propre référence, par ex. - `quickstart-dev` ,
* téléchargez notre configuration JSON d’exemple simple.

🍀 **Exemple simple (configuration minimale recommandée) :**

{% hint style="danger" %}
**Assurez-vous de changer le** **`nom`**  **et** **`la version`**  **pour correspondre à votre** [Applications et versions](/docs.edgegap.com-fr/learn/orchestration/application-and-versions.md).
{% endhint %}

<pre class="language-json"><code class="lang-json">{
  "version": "3.2.2",
  "inspect": true,
  "max_deployment_retry_count": 3,
  "profiles": {
    "simple-example": {
      "ticket_expiration_period": "5m",
      "ticket_removal_period": "1m",
      "group_inactivity_removal_period": "5m",
      "application": {
        "name": "<a data-footnote-ref href="#user-content-fn-1">my-game-server</a>",
        "version": "<a data-footnote-ref href="#user-content-fn-2">2024.01.30-16.23.00-UTC</a>"
      },
      "rules": {
        "initial": {
          "match_size": {
            "type": "player_count",
            "attributes": {
              "team_count": 1,
              "min_team_size": 2,
              "max_team_size": 2
            }
          },
          "beacons": {
            "type": "latencies",
            "attributes": {
              "difference": 100,
              "max_latency": 200
            }
          }
        },
        "expansions": {}
      }
    }
  }
}
</code></pre>

**Dépannage et FAQ :**

☑️ Si aucune erreur de validation n’apparaît, cliquez sur **Créer et démarrer** et attendez la fin du processus. Cela entraînera le démarrage d’un nouveau cluster gratuit, avec votre matchmaker Exemple simple.

✅ Vous pouvez maintenant passer à l’étape suivante.

### 2. Explorer la configuration

À mesure que nous publions des mises à jour de Matchmaker, chaque nouvelle version utilise [le versionnement sémantique](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#changelog) pour communiquer clairement l’impact des changements en interprétant le format `majeur.mineur.correctif`:

* 🔥 `majeur` les versions incluent des changements cassants et nécessitent une revue d’intégration,
* 🌟 `mineur` les versions incluent des améliorations substantielles compatibles avec les versions antérieures,
* 🩹 `correctif` les versions incluent des corrections de bugs et des améliorations mineures.

[Inspecter les tickets](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#matchmaking-api) pour mieux comprendre et déboguer les éventuels flux de matchmaking pendant le développement. Nous recommandons de désactiver l’API d’inspection pour votre matchmaker en production.

**Certaines** [**mises en production peuvent entraîner des erreurs**](https://docs.edgegap.com/docs.edgegap.com-fr/learn/pages/5d7a2f9e0583a99d78071f1c4b8a7892a518534a#id-4.-deployment-error)**.** Nous essayons d’y remédier en réessayant le déploiement jusqu’à `max_deployment_retry_count` fois automatiquement (sans confirmation du client).

Pour éviter que des plantages inattendus du client ou des tickets abandonnés persistent et consomment les ressources de votre matchmaker, les tickets sans correspondance seront annulés après `ticket_expiration_period` ce qui fera passer leur statut à `CANCELLED` puis supprimés définitivement après `ticket_removal_period` .

{% hint style="info" %}
[Découvrez comment Matchmaker maximise le taux de remplissage des matchs et réduit les temps de file d’attente à moins de 10 secondes.](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#find-match)
{% endhint %}

Le cœur de notre logique de matchmaking est configuré dans [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles). Chaque profil est une file d’attente de matchmaking complètement isolée, pointant vers [Applications et versions](/docs.edgegap.com-fr/learn/orchestration/application-and-versions.md#app-versions) avec une quantité prédéfinie de ressources CPU et mémoire (RAM) requises.

[Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#matchmaking-rules) dans l’ensemble de règles initial doit être respecté pour que les joueurs soient regroupés ensemble, chacune définie par trois propriétés :

* nom de votre choix, par ex. - `taille du match`,
* type de règle, également appelé opérateur, par ex. - `player_count`,
* et enfin les attributs de l’opérateur, par ex. `team_count` ou `max_team_size`.

**Règle du nombre de joueurs**

Il s’agit d’une règle spéciale définissant combien de joueurs doivent correspondre pour lancer l’affectation :

* `team_count` fait référence au nombre d’équipes, 1 équipe peut être utilisée pour des modes coopératifs ou chacun pour soi,
* `min_team_size` fait référence au nombre minimum de joueurs par équipe.
* `max_team_size` fait référence au nombre maximum de joueurs par équipe.

Notre exemple simple illustre un jeu coopératif avec 2 joueurs.

{% hint style="warning" %}
La règle du nombre de joueurs **est requise et ne peut être définie qu’une seule fois** dans les règles de votre configuration initiale.
{% endhint %}

**Règle des latences**

✅ Vous pouvez maintenant passer à l’étape suivante.

### 3. Examiner les détails de l’instance

☑️ Consultez les détails de votre nouveau matchmaker dans notre tableau de bord une fois qu’il est initialisé :

<figure><img src="/files/40361436d9cb4efb59a3435f457c53549eb9887a" alt=""><figcaption></figcaption></figure>

* **Statut** indique l’état de santé du service, peut être ONLINE, OFFLINE ou ERROR.
* **Identifiant** aide le personnel d’Edgegap à trouver rapidement votre matchmaker si vous avez besoin d’aide pour le dépannage.
* **Démarré le** peut être utile pour retrouver l’heure de la dernière mise à jour.
* **Taille** correspond à l’un de nos [niveaux de tarification](https://edgegap.com/resources/pricing#matchmaker).
* **URL API** sera utilisée par les clients de jeu et les serveurs de jeu pour communiquer avec votre matchmaker.
* **URL Swagger** est une interface pratique de spécification OpenAPI que nous fournissons pour explorer le schéma de l’API.
* **Jeton d’authentification** est un jeton secret unique utilisé par les clients de jeu et le serveur de jeu pour l’authentification.

{% hint style="danger" %}
**Le personnel d’Edgegap ne vous demandera jamais vos jetons. Régénérez votre jeton si vous soupçonnez une faille de sécurité.**
{% endhint %}

Pour tester votre nouveau matchmaker, **vous aurez besoin de l’URL Swagger, de l’URL API et du jeton d’authentification**.

✅ Vous pouvez maintenant passer à l’étape suivante.

{% hint style="info" %}
Pour mettre à jour les règles de votre matchmaker en développement, modifiez votre configuration et redémarrez-le.
{% endhint %}

{% hint style="success" %}
Voir [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#rolling-updates-and-ab-tests) pour les jeux en production et les mises à jour sans interruption.
{% endhint %}

### 4. Tester l’API des tickets

{% hint style="info" %}
**Veuillez patienter jusqu’à 5 minutes** après le démarrage de votre matchmaker pour permettre la propagation DNS.
{% endhint %}

☑️ D’abord, **ouvrez votre URL Swagger** pour inspecter votre schéma OpenAPI dans l’interface swagger :

<figure><img src="/files/00a60bb5f309cc7c33fad95f33cfd1a909da6b07" alt=""><figcaption></figcaption></figure>

☑️ Cliquez sur **Autoriser** 🔒, collez votre **Jeton d’authentification**et confirmez en cliquant sur **Autoriser**.

<figure><img src="/files/e871d0152012296c5409126091e24c2cf3bb3e1e" alt=""><figcaption></figcaption></figure>

☑️ Faites défiler jusqu’à **API des tickets** **- POST /tickets**, développez et cliquez sur **Essayez-le**.

<figure><img src="/files/28e74ffc5e1e03a3bb3cc8e2ff83f202c0ad3144" alt=""><figcaption></figcaption></figure>

☑️ Prévisualisez votre requête :

* remarquez `player_ip` défini sur `null` - cela amènera Matchmaker à utiliser automatiquement l’adresse IP ajoutée à votre requête (voir [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#server-to-server-api) pour des alternatives),
* `profile` fait référence à votre [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles),
* `attributes` inclut les valeurs de vos règles de matchmaking, dans ce cas pour la règle `latencies` ,
  * rule `player_count` est la seule règle qui ne nécessite aucun attribut dans les tickets des joueurs.

☑️ Cliquez sur **Exécuter** et examinez la réponse à votre demande de ticket joueur :

* `id` est l’identifiant unique de votre ticket de matchmaking, enregistrez-le pour vérifier votre ticket plus tard,
* `profile` confirmant le choix de [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles),
* `group_id` est un [identifiant de groupe unique attribué à chaque ticket, un joueur solo est représenté comme un groupe de 1](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#group-up),
* `team_id` est un identifiant d’équipe unique attribué à chaque joueur une fois que `TEAM_FOUND` le statut est atteint,
  * [chaque équipe peut contenir plusieurs groupes, sans dépasser la taille d’équipe configurée](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#matchmaking-rules),
* `player_ip` est l’adresse IP publique résolue du joueur, quelle que soit la méthode d’identification,
* `assignment` est défini sur `null` pour indiquer que le ticket n’a pas été jumelé ni affecté à un serveur,
* `created_at` fournit des informations sur la date de création du ticket joueur pour une utilisation dans l’interface de jeu,
* `status` indique le statut actuel du ticket, tous les tickets commencent en `SEARCHING` .

<figure><img src="/files/07a3ff95313395da59540c4e5c223cfcb2cb9faa" alt=""><figcaption></figcaption></figure>

☑️ Créez un deuxième ticket en cliquant sur **Exécuter** de nouveau, afin que nos deux joueurs soient mis en correspondance et qu’un serveur soit lancé.

☑️ Réduisez POST /tickets et ouvrez **GET /tickets/{ticketId}**, puis cliquez sur **Essayez-le**.

☑️ Saisissez l’ID du ticket à partir de la réponse à l’étape précédente et cliquez sur **Exécuter**.

<figure><img src="/files/3b574b44c5fb348b4cf991ec2b9804f8892ef7ee" alt=""><figcaption></figcaption></figure>

☑️ Examinez l’affectation mise à jour pour votre ticket joueur :

* le statut a changé à `MATCH_FOUND` d’abord, tout en conservant `assignment` défini sur `null` pour indiquer que les joueurs ont été mis en correspondance et qu’un serveur est en cours d’affectation,

<figure><img src="/files/c81c4b5fcd71678729e900253948cc53ac1a9db4" alt=""><figcaption></figcaption></figure>

☑️ Cliquez sur **Exécuter** à nouveau pour vérifier votre ticket, et examinez l’affectation mise à jour pour votre ticket :

* le statut a changé à `HOST_ASSIGNED` avec `assignment` contenant les détails du serveur affecté.

<figure><img src="/files/14d96ccb4b44a0d1fc2015813875a4ae3d40ae2e" alt=""><figcaption></figcaption></figure>

<details>

<summary>Dépannage et FAQ</summary>

Mon ticket est bloqué en `SEARCHING` .

* Veuillez vérifier que vous avez créé suffisamment de tickets avec des critères superposés conformes à votre configuration.

***

Mon ticket est bloqué en alternance entre `MATCH_FOUND` et `TEAM_FOUND` à plusieurs reprises.

* Les comptes du niveau gratuit sont limités à 1 déploiement à la fois. Veuillez envisager de passer à une offre supérieure ou d’arrêter votre déploiement actuel pour en lancer un nouveau.

***

Mon ticket passe directement à `CANCELLED`.

* Votre ticket a expiré. Recréez un nouveau ticket ou augmentez la période d’expiration dans votre configuration à des fins de test.

***

Je reçois une erreur HTTP 404 Not Found lors de la vérification de mon ticket.

* Votre ticket a été supprimé soit par une requête DELETE, soit en atteignant sa période de suppression (qui commence après l’expiration du ticket, définie dans votre configuration). Recréez un nouveau ticket ou augmentez les périodes d’expiration/suppression dans votre configuration à des fins de test.

</details>

☑️ [Inspectez votre nouveau déploiement dans notre tableau de bord](https://app.edgegap.com/deployment-management/deployments/list):

* remarquez que chaque déploiement est étiqueté avec tous les IDs de tickets et le profil pour une meilleure traçabilité.

<figure><img src="/files/3c22b9aed5101822c485b0ef8011b948caf49e40" alt=""><figcaption></figcaption></figure>

☑️ Essayez de vous connecter depuis votre client de jeu au serveur affecté.

{% hint style="warning" %}
Si vous constatez une latence élevée, votre intégration netcode peut être configurée pour simuler la latence réseau. **Désactivez le VPN lors des tests** pour des conditions plus réalistes et recevez un [déploiement à faible latence](/docs.edgegap.com-fr/learn/orchestration/deployments.md#server-placement).
{% endhint %}

☑️ Une fois que vous avez vérifié que vous pouvez vous connecter à votre déploiement sans problème et que vous avez terminé les tests, **Arrêtez votre déploiement** pour libérer de la capacité dans votre compte pour la prochaine build.

✅ Vous pouvez maintenant passer à l’étape suivante.

{% hint style="info" %}
Trouvez la spécification OpenAPI pour les tests à `{matchmaker-url}/swagger/v1/swagger.json`.
{% endhint %}

### 5. Intégration du jeu

Matchmaker s’intègre avec :

* **Client de jeu**, pour [gérer les groupes, les adhésions, les affectations et les tickets](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#group-up),
* **Serveur dédié**, pour [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#backfill-match) après qu’un joueur a quitté.

☑️ Dans **Client de jeu**, nous recommandons de fournir des mises à jour du statut des tickets aux joueurs à l’aide de l’interface en jeu pour une meilleure expérience joueur. Voir :

☑️ Dans **Client de jeu**, assurez-vous de gérer les `429 Too Many Requests`  erreurs réessayables avec un backoff exponentiel et une nouvelle tentative, afin de donner au matchmaker le temps de récupérer lors de pics soudains de trafic.

☑️ Dans **Client de jeu**, assurez-vous de gérer les erreurs non réessayables :

* `404 Not Found` - le ticket a été supprimé,
* `500 Internal Server Error` - panne temporaire du service.

☑️ Dans **Serveur de jeu**, lisez les préférences du joueur et le contexte initial du serveur :

1. [Variables injectées (Matchmaker)](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#injected-environment-variables) **pour récupérer les données de matchmaking initiales des joueurs.**
2. [Variables injectées (versions de l’application)](/docs.edgegap.com-fr/learn/orchestration/application-and-versions.md#other-parameters-optional) pour les paramètres de version, les réglages et les secrets.
3. [Variables injectées (déploiement)](/docs.edgegap.com-fr/learn/orchestration/deployments.md#injected-environment-variables) pour les informations de déploiement, l’IP, l’emplacement, etc...

☑️ Une fois que les joueurs se connectent, **le serveur de jeu et les clients de jeu** démarrent une scène de chargement - scène 3D, interface sociale de type lobby, ou écran de chargement avec barre de progression, afin d’indiquer que l’initialisation progresse.

☑️ Assurez-vous que votre [déploiement sera arrêté](https://docs.edgegap.com/docs/deployment#stop-a-deployment) correctement une fois le match terminé.

🙌 Félicitations, vous avez terminé l’intégration du matchmaking ! Pour en savoir plus, continuez la lecture.

## 🏁 Exemple avancé

Une configuration complète utilisant toutes les fonctionnalités de matchmaking, y compris [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles), [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#matchmaking-rules)et [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#rule-expansion) peut ressembler à ceci :

## 🎾 Salon personnalisé

Les salons personnalisés (salons privés, niveaux bac à sable) sont une option très populaire pour le multijoueur local et pour tester de nouvelles fonctionnalités dans les jeux avant qu’elles n’entrent dans les modes de jeu principaux. Ils nécessitent généralement le moins de restrictions, mais il faut viser à garantir que les joueurs puissent [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#group-up).

{% hint style="info" %}
Pour les salons privés sans accès public, définissez `"team_size": 1`  et faites en sorte que le propriétaire du groupe démarre le jeu seul. Le propriétaire peut partager les détails du groupe et de l’affectation d’hôte avec n’importe quel nombre de membres pour les rejoindre.
{% endhint %}

{% hint style="success" %}
Ajoutez `custom-lobby-example`  profile **dans votre matchmaker existant** pour prendre en charge les salons personnalisés.
{% endhint %}

## 🥛 Démonstration de backfill

En s’appuyant sur [#simple-example](#simple-example "mention"), cette configuration met en avant [le backfill](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#backfill-match) avec [les groupes](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#group-up).

## ⚔️ Jeux compétitifs

Les jeux compétitifs se concentrent sur des joueurs qui s’affrontent pour remporter la victoire, que ce soit individuellement (chacun pour soi) ou en équipe. Garantissez des matchs justes et équilibrés en associant des joueurs ou des équipes de niveaux de compétence similaires, et maintenez le rythme du jeu en trouvant rapidement des adversaires équitables.

Vous pouvez **définir plusieurs équipes avec 1 joueur ou plus chacune**, par exemple :

<table><thead><tr><th width="300">Mode de jeu</th><th>Nombre d’équipes</th><th>Taille de l’équipe</th><th>Nombre total de joueurs</th></tr></thead><tbody><tr><td>FPS 5v5</td><td>2</td><td>5</td><td><strong>10</strong></td></tr><tr><td>MOBA 5v5</td><td>2</td><td>5</td><td><strong>10</strong></td></tr><tr><td>Battle Royale 20x3</td><td>20</td><td>3</td><td><strong>60</strong></td></tr><tr><td>10 joueurs chacun pour soi</td><td>1</td><td>10</td><td><strong>10</strong></td></tr></tbody></table>

Définissez plusieurs [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles) pour des règles et paramètres spécifiques au mode de jeu, et [étendez selon les besoins](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#rule-expansion).

* **Pour tous les matchs :**
  * restreignez [la latence de matchmaking](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#ping-optimization) pour éviter de mettre en relation des joueurs trop éloignés,
  * [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#group-up) pour les groupes préformés et éviter de dépasser la taille des équipes,
  * assouplissez progressivement les restrictions de latence au fil du temps pour trouver plus de joueurs,
  * allouez plus de CPU ou de mémoire avec différents [Applications et versions](/docs.edgegap.com-fr/learn/orchestration/application-and-versions.md#app-versions) pour des profils spécifiques,
* **Pour les matchs occasionnels :**
  * omettez les restrictions de rang pour maximiser la vitesse de mise en relation et le taux de remplissage des matchs,
  * laissez les joueurs indiquer leurs préférences de carte pour trouver une carte adaptée à tout le monde,
  * spécifiez la taille du groupe de backfill pour remplacer les joueurs partis sans dépasser la taille des équipes,
  * supprimez les limitations de latence pour garantir un match après 3 minutes (180 s) de temps d’attente.
* **Pour les matchs compétitifs :**
  * restreignez le rang pour n’autoriser que des adversaires de niveau similaire,
  * utilisez des rangs de promotion ou de relégation pour mettre en correspondance des joueurs aux extrêmes du classement de la ligue.
* **Pour le top 1 % des matchs de haut niveau (challengers) :**
  * utilisez des notes de compétence numériques (ELO) pour obtenir un contrôle fin sur la distribution du niveau de compétence dans les matchs,
  * attendez plus longtemps avant d’assouplir les exigences de latence en raison d’un nombre plus faible de joueurs.

{% hint style="success" %}
L’utilisation de plusieurs profils pour **séparer les modes de jeu occasionnels, les modes de jeu compétitifs et les challengers de premier plan** vous permet de personnaliser les règles et les expansions pour chaque type de joueur séparément.
{% endhint %}

## 🤝 Jeux coopératifs

Les jeux coopératifs exigent des joueurs qu’ils travaillent ensemble en équipe vers un objectif commun, ou contre un adversaire IA. Alignez les joueurs ayant des préférences et des habitudes de jeu similaires. Remplacez les joueurs qui quittent, et améliorez [Balises Ping](/docs.edgegap.com-fr/learn/orchestration/ping-beacons.md#connection-quality) pour offrir une expérience joueur réactive.

Avec un nombre d’équipes de 1 et une taille maximale d’équipe de 4, **exigez jusqu’à 4 joueurs par match**.

Définissez plusieurs [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles) pour des règles et paramètres spécifiques au mode de jeu :

* commencez avec un minimum de 4 joueurs pour maintenir les joueurs en file d’attente et maximiser le taux de remplissage des matchs,
* restreignez [la latence de matchmaking](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#ping-optimization) pour éviter de mettre en relation des joueurs trop éloignés,
* laissez les joueurs choisir un niveau de difficulté particulier pour convenir au niveau de chacun,
* laissez les joueurs indiquer leurs préférences de carte pour trouver une carte adaptée à tout le monde,
* restreignez la différence de niveau des joueurs pour exiger un degré similaire de progression dans le jeu,
* spécifiez la taille du groupe de backfill pour remplacer les joueurs partis sans dépasser la capacité du serveur,
* utilisez des indicateurs de modération pour séparer les joueurs à faible karma et les tricheurs du reste de la population,
* [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#group-up) pour les groupes préformés et pour remplir les équipes sans dépasser la capacité du serveur,
* allouez plus de CPU ou de mémoire en utilisant différents [Applications et versions](/docs.edgegap.com-fr/learn/orchestration/application-and-versions.md#app-versions) pour d’autres profils.

Commencez avec les conditions idéales, et [élargissez les restrictions](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#rule-expansion) pour garantir des matchs rapides :

* assouplissez les restrictions de latence au fil du temps pour trouver plus de joueurs,
* augmentez la différence de niveau de joueur autorisée pour trouver plus de joueurs,
* réduisez la taille minimale de l’équipe pour nécessiter moins de joueurs et démarrer la partie plus tôt,
  * le serveur peut remplir les emplacements vides avec des coéquipiers IA,
  * ou [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#backfill-match) pour ajouter des joueurs plus tard,
* définissez la taille minimale de l’équipe à 1 pour lancer le jeu en solo après 150 s de temps d’attente

## 🎈 Jeux sociaux

Les jeux sociaux se concentrent sur la création de liens et de relations entre les joueurs grâce à la collaboration, la communication et l’expérience partagée. Prenez en charge un grand nombre de joueurs, maximisez le taux de remplissage des matchs et alignez les préférences des joueurs ainsi que leurs habitudes de jeu. Remplacez les joueurs qui quittent, et assurez un haut [Balises Ping](/docs.edgegap.com-fr/learn/orchestration/ping-beacons.md#connection-quality) pour offrir une expérience joueur réactive.

Avec un nombre d’équipes de 1 (chacun pour soi) et une taille maximale d’équipe de 50, **exigez jusqu’à 50 joueurs par match**.

Définissez [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#matchmaking-profiles) pour des règles et paramètres spécifiques au mode de jeu :

* restreignez [la latence de matchmaking](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#ping-optimization) pour éviter de mettre en relation des joueurs trop éloignés,
* laissez les joueurs indiquer leurs préférences de mode de jeu et trouvez un mode adapté à tout le monde,
* spécifiez la taille du groupe de backfill pour remplacer les joueurs partis sans dépasser la capacité du serveur,
* utilisez des indicateurs de modération pour séparer les joueurs à faible karma et les tricheurs du reste de la population,
* [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#group-up) pour les lobbies préformés ou pour remplir les équipes sans dépasser la capacité du serveur,
* allouez plus de CPU ou de mémoire en utilisant différents [Applications et versions](/docs.edgegap.com-fr/learn/orchestration/application-and-versions.md#app-versions) pour d’autres profils.

Commencez avec les conditions idéales, et [élargissez les restrictions](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#rule-expansion) pour garantir des matchs rapides :

* assouplissez les restrictions de latence au fil du temps pour trouver plus de joueurs,
* diminuez progressivement la taille minimale de l’équipe pour nécessiter moins de joueurs et démarrer la partie plus tôt,
  * le serveur peut remplir les emplacements vides avec des joueurs IA,
  * ou [Vue approfondie](/docs.edgegap.com-fr/learn/matchmaking/matchmaker-in-depth.md#backfill-match) pour ajouter des joueurs plus tard,
* définissez la taille minimale de l’équipe à 1 pour lancer le jeu en solo après 150 s de temps d’attente.

[^1]: remplacez par le nom de votre propre application

[^2]: remplacez par la version de votre propre application


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.edgegap.com/docs.edgegap.com-fr/learn/matchmaking.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
