Comment ajouter un matchmaking à un jeu multijoueur COOP

Comment ajouter le matchmaking à un jeu multijoueur en COOP
Comment ajouter le matchmaking à un jeu multijoueur en COOP
Comment ajouter le matchmaking à un jeu multijoueur en COOP

Principales informations

Principales informations

Principales informations

Le systeme de matchmaking d'Edgegap est un système de matchmaking entièrement géré et infiniment personnalisable qui regroupe de manière optimale les joueurs du monde entier – et son utilisation est gratuite pendant le développement de votre jeu multijoueur COOP.

C'est également le seul système de matchmaking (à notre connaissance) avec des règles de matchmaking basées sur la latence pour offrir l'expérience multijoueur en ligne idéale pour votre jeu, quel que soit le moteur (Unity, Unreal, etc.) ou les services de jeu (EOS, UGS, PlayFab, Heroic Labs Nakama, Braincloud, etc.).

Comme notre système de matchmaking est basé sur des paramètres, il n'est pas nécessaire d'écrire du code. L'intégration est donc très facile et si nécessaire, nos guides d'intégration vous accompagnent à chaque étape.

Lorsque votre jeu est en ligne, comme notre système de matchmaking est entièrement géré, vous n'avez pas besoin de gérer l'infrastructure, les bogues, les pannes, la scalabilité ou la gestion de base de données. Nous nous occupons de tout pour vous. Réduisant votre charge de travail DevOps à presque zéro.

Comment intégrer le matchmaking à votre jeu multijoueur COOP

-> Cet article est basé sur la documentation de matchmaking. Si vous rencontrez des problèmes ou des divergences, veuillez vous assurer de vous référer au guide original, car ils sont plus souvent mis à jour.

L'exemple suivant vous aidera à tester le flux principal des joueurs matchmaking , à savoir :

Il y a cinq étapes pour intégrer notre générateur de matchs à votre jeu :

  1. La première étape est de créer un compte et d'utiliser notre exemple de jeu COOP. Voilà, vous êtes (techniquement) à mi-chemin ! Il vous suffit d'intégrer le générateur de matchs dans votre jeu (voir étape 5).

  2. Maintenant, vous ne devez jamais suivre aveuglément un exemple JSON trouvé sur Internet, et il est donc fortement recommandé d'adapter les règles ci-dessus à votre jeu au tour par tour. L'étape 2 (“Explorer la configuration”) est notre “comment lire” qui se penche sur la fonction de chacune des règles du matchmaking (“Explorer la configuration”).

  3. L'étape 3 (“Examiner les détails de l'instance”) couvre votre générateur de matchs personnel et spécifique pour s'assurer qu'il est déployé et fonctionne avec le design de votre jeu.

  4. L'étape 4, comme son nom l'indique (“4. Tester l'API des billets”), concerne le test de vos demandes de matchmaking des joueurs reçues par le générateur de matchs, appelées billets.

  5. L'étape 5 (“Intégrer le matchmaking dans votre jeu”) souligne comment intégrer le générateur de matchs dans le projet de votre moteur.

Si vous rencontrez des problèmes de dépannage, notre Centre d'apprentissage propose des conseils supplémentaires de dépannage.

1. Configuration du niveau gratuit

Inscrivez-vous pour votre compte Edgegap gratuit, et accédez à la page du tableau de bord Matchmaker.

À partir de là, cliquez d'abord sur Créer un générateur de matchs ensuite saisissez :

  • Un nom pour votre générateur de matchs – qui est purement pour votre propre référence, par ex. quickstart-dev,

  • Ensuite, téléchargez l'exemple simple suivant en tant que configuration JSON ci-dessous pour votre jeu COOP :

{
  "version": "2.1.0",
  "inspect": true,
  "max_deployment_retry_count": 3,
  "ticket_expiration_period": "5m",
  "ticket_removal_period": "1m",
  "profiles": {
    "cooperative-example": {
      "application": {
        "name": "my-game-server=>CHANG-THIS-HERE",
        "version": "2024.01.30-16.23.00-UTC=>CHANG-THIS-HERE"
      },
      "rules": {
        "initial": {
          "match_size": {
            "type": "player_count",
            "attributes": {
              "team_count": 1,
              "team_size": 4
            }
          },
          "beacons": {
            "type": "latencies",
            "attributes": {
              "difference": 60,
              "max_latency": 60
            }
          },
          "selected_map": {
            "type": "intersection",
            "attributes": {
              "overlap": 1
            }
          },
          "selected_difficulty": {
            "type": "string_equality"
          },
          "player_level": {
            "type": "number_difference",
            "attributes": {
              "max_difference": 10
            }
          }
        },
        "expansions": {
          "5": {
            "beacons": {
              "difference": 80,
              "max_latency": 80
            }
          },
          "10": {
            "player_level": {
              "max_difference": 20
            }
          },
          "20": {
            "match_size": {
              "team_count": 1,
              "team_size": 3
            },
            "beacons": {
              "difference": 100,
              "max_latency": 100
            }
          },
          "30": {
            "match_size": {
              "team_count": 1,
              "team_size": 2
            },
            "beacons": {
              "max_latency": 200
            }
          },
          "60": {
            "match_size": {
              "team_count": 1,
              "team_size": 1
            }
          }
        }
      }
    }
  }
}

(un petit rappel pour s'assurer de modifier le nom et version de l'application pour qu'ils correspondent à votre Application et Versions!)

Si aucune erreur de validation n'apparaît, appuyez sur Créer et démarrez et attendez que le processus soit terminé. Cela entraînera le démarrage d'un nouveau cluster gratuit, avec votre générateur de matchs simple exemple.

Vous pouvez maintenant passer à l'étape suivante.

2. Explorer la configuration

Règles uniques pour les jeux multijoueurs COOP

Spécifiquement pour les jeux COOP, vous pouvez définir plusieurs Profils de matchmaking pour les règles et paramètres spécifiques aux modes de jeu :

  • permettre aux joueurs de fournir leurs préférences de carte et de choisir une carte adaptée à tous,

  • permettre aux joueurs de choisir une difficulté de jeu particulière adaptée au niveau de compétence de chacun,

  • restrict la différence de niveau des joueurs pour aligner les joueurs ayant un degré similaire de progression dans le jeu,

  • Rejoindre en groupe pour des lobbies préfabriqués ou pour remplir des équipes sans dépasser les tailles d'équipe,

  • permettre une latence plus élevée pour privilégier des matchs plus rapides avec de meilleures préférences granulaires des joueurs,

  • allouer plus de CPU ou de mémoire en utilisant différentes 🏷️ Versions de l'application quand plus de joueurs sont autorisés.

Commencez avec les conditions idéales, et élargissez les restrictions pour garantir des matchs rapides :

  • assouplir les restrictions de latence au fil du temps pour trouver davantage de joueurs,

  • réduire progressivement la taille de l'équipe pour nécessiter moins de joueurs et commencer le jeu plus tôt,

    • facultativement, vous pouvez avoir le serveur remplir les emplacements vides avec des coéquipiers IA,

  • augmenter lentement la différence de niveau des joueurs autorisée pour trouver plus de joueurs,

  • si aucun coéquipier n'est trouvé, lancez le jeu en solo et utilisez Backfill pour ajouter des joueurs plus tard.

Versionnement sémantique

Lorsque nous publions des mises à jour pour le générateur de matchs, chaque nouvelle version utilise le versionnement sémantique pour communiquer clairement l'impact des changements en interprétant le format major.minor.patch :

  • major les versions incluent des changements majeurs et nécessitent une révision de l'intégration,

  • minor les versions incluent des améliorations substantielles compatibles avec les versions antérieures,

  • patch les versions incluent des corrections de bugs et des améliorations mineures.

Certaines déploiements peuvent entraîner des erreurs. Nous tentons de résoudre cela en réessayant le déploiement jusqu'à max_deployment_retry_count fois automatiquement (sans confirmation du client).

Pour garantir que les plantages inattendus des clients ou les billets abandonnés ne persistent pas et n'utilisent pas vos ressources de générateur de matchs, les billets seront annulés après ticket_expiration_period changent leur statut en CANCELLED et sont ensuite définitivement supprimés après ticket_removal_period.

Le cœur de notre logique de matchmaking est configuré dans Profils de matchmaking. Chaque profil est une file d'attente de matchmaking totalement isolée, pointant vers Versions d'application avec une quantité prédéfinie de ressources CPU et mémoire (RAM) requises.

Règles de matchmaking dans l'ensemble de règles initial doivent être respectées pour que les joueurs soient regroupés, chacune définie par trois propriétés :

  • nom de votre choix, par ex. - taille de match,

  • type de règle, également connu sous le nom d'opérateur, par ex. - player_count,

  • et enfin, les attributs de l'opérateur, par ex. team_count ou team_size.

Règle du nombre de joueurs

C'est une règle spéciale définissant combien de joueurs doivent se rencontrer pour initier l'attribution :

  • team_count fait référence au nombre d'équipes, 1 équipe peut être utilisée pour des modes coopératifs ou en free-for-all,

  • team_size fait référence au nombre de joueurs par équipe.

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

Veuillez noter que la règle

Écrit par

l'équipe Edgegap