
Comment ajouter le matchmaking à un jeu multijoueur en équipe
Le matchmaker d'Edgegap est un système de matchmaking entièrement géré et infini personnalisable qui groupe de manière optimale les joueurs du monde entier – et son utilisation est gratuite pendant le développement de votre jeu multijoueur Party.
C'est également le seul système de matchmaking (à notre connaissance) avec des règles de matchmaking basées sur la latence pour fournir 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 matchmaker 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 besoin, 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 ainsi votre charge de travail DevOps à presque zéro.
Comment intégrer le matchmaking à votre jeu multijoueur Party
-> Cet article est basé sur la documentation de Matchmaking. Si vous rencontrez des problèmes ou des divergences, assurez-vous de vous référer au guide original, car ils sont mis à jour plus fréquemment.
L'exemple suivant vous aidera à tester le flux de joueurs de base de matchmaking , à savoir :
Créer l'instance du matchmaker sur le Cluster d'Hébergement partagé,
Définir les règles et les paramètres dans votre Configuration du matchmaker,
Et enfin, tester le flux de joueurs et gérer les Tickets des Joueurs avec notre API.
Il y a cinq étapes pour intégrer notre matchmaker à votre jeu :
La première étape est de créer un compte et d'utiliser notre exemple de jeu Party. Voilà, vous êtes (techniquement) à mi-chemin! Vous n'auriez besoin que d'intégrer le matchmaker dans votre jeu (voir étape 5).
Maintenant, vous ne devriez 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 entre dans la fonction de chaque fonction des règles de matchmaking («Explorer la Configuration»).
L'étape 3 («Examine les Détails de l'Instance») couvre votre matchmaker personnel et spécifique pour garantir qu'il est déployé et fonctionne avec la conception de votre jeu.
L'étape 4, comme le nom l'indique («4. Tester l'API des Tickets»), concerne entièrement le test de vos demandes de matchmaking des joueurs, appelées tickets, sont reçues par le matchmaker.
L'étape 5 («Intégrer le Matchmaking dans votre Jeu») met en évidence comment intégrer le matchmaker dans votre projet moteur.
Si vous rencontrez des problèmes de dépannage, notre Centre d'Apprentissage possède des conseils de dépannage supplémentaires.
1. Configuration du Niveau Gratuit
Inscrivez-vous à votre compte Edgegap gratuit, et naviguez vers la page du tableau de bord du Matchmaker.
À partir de là, cliquez sur Créer un Matchmaker et entrez :
Un nom pour votre matchmaker - qui est purement à titre de référence, par exemple
quickstart-dev,Puis, téléchargez l'exemple simple suivant comme configuration JSON ci-dessous pour votre jeu Party :
(Rapport amical pour s'assurer de changer le name de l'application et version pour correspondre à vos Applications et Versions!)
S'il n'apparaît pas d'erreurs de validation, cliquez sur Créer et Démarrer et attendez que le processus se termine. Cela engendrera le démarrage d'un nouveau cluster gratuit, avec votre matchmaker Exemple Simple.
Vous pouvez maintenant passer à l'étape suivante.
2. Explorer la Configuration
Règles uniques de jeu multijoueur Party
Spécifiquement pour les jeux Party, vous pouvez définir plusieurs Profils de Matchmaking pour des modes de jeu spécifiques, des règles et des paramètres :
laisser les joueurs fournir leurs préférences de carte et choisir une carte adaptée à tout le monde,
laisser les joueurs choisir une difficulté particulière pour convenir au niveau de compétence de tout le monde,
limiter la différence de niveau entre les joueurs pour aligner les joueurs avec un degré similaire de progression du 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 de joueur granulaires,
allouer plus de CPU ou mémoire en utilisant différentes 🏷️ Versions d'Appli lorsque plus de joueurs sont autorisés.
Commencez avec les conditions idéales, et étendre les restrictions pour assurer des matchs rapides :
détendre les restrictions de latence au fil du temps pour trouver plus de joueurs,
réduire lentement la taille des équipes pour nécessiter moins de joueurs et démarrer le jeu plus tôt,
éventuellement, le serveur peut remplir les places vides avec des coéquipiers IA,
augmenter lentement la différence de niveau des joueurs pour trouver plus de joueurs,
si aucun coéquipier n'est trouvé, lancez le jeu en solo et utilisez Backfill pour ajouter des joueurs par la suite.
Versionnage Sémantique
À mesure que nous publions des mises à jour du Matchmaker, chaque nouvelle version utilise le Versionnage Sémantique pour communiquer clairement l'impact des changements en interprétant le format major.minor.patch :
les versions
majorincluent des changements rompus et nécessitent une révision d'intégration,les versions
minorincluent des améliorations substantielles rétrocompatibles,les versions
patchincluent des corrections de bugs et des améliorations mineures.
Certaines déploiements peuvent entraîner des Erreurs. Nous essayons 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 du client ou les tickets abandonnés ne persistent pas et n'occupent pas vos ressources de matchmaker, les tickets seront annulés après ticket_expiration_period et leur statut changera en CANCELLED puis seront définitivement supprimés après ticket_removal_period.
Le cœur de notre logique de matchmaking est configuré dans les Profils de Matchmaking. Chaque profil est une file d'attente de matchmaking complètement isolée, pointant vers les Versions d'Appli avec une quantité prédéfinie de CPU requis et de ressources mémoire (RAM).
Les Règles de Matchmaking qui doivent être respectées dans le jeu sont définies par trois propriétés :
nom de votre choix, par exemple -
taille de match,le type de règle, aussi appelé opérateur, par exemple -
player_count,et enfin les attributs de l'opérateur, par exemple
team_countouteam_size.
Règle de Compte de Joueurs
C'est une règle spéciale qui définit combien de joueurs doivent correspondre pour démarrer l'affectation :
team_countse réfère au nombre d'équipes, 1 équipe peut être utilisée pour les modes coopératifs ou tous contre tous.team_sizese réfère au nombre de joueurs par équipe.
Notre exemple simple montre un jeu coopératif avec 2 joueurs.
Veuillez noter que la règle "Player Count" est requise et ne peut être définie qu'une seule fois dans vos règles de configuration initiales.
Règle des Latences
Utilisez cette règle pour fournir le ping le plus bas possible pour tous les joueurs. Une fois que les clients mesurent et soumettent leur temps de retour (ping) contre tous les balises disponibles, Gen2 ne considérera que les matchs dans une difference spécifique des valeurs ping, mesurée contre les Balises de Ping. Cela offre une solution «douce» pour diviser votre base de joueurs, permettant un matching avec les régions voisines, améliorant particulièrement la vitesse de matching pour les régions moins peuplées. Utilisez max_latency pour éviter le matching contre les joueurs éloignés.
Vous pouvez maintenant passer à l'étape suivante.
Notre exemple balises ci-dessus avec "difference": 50, "max_latency": 200 initialement :
Alice et Bob seront associés, puisque Pékin est ignoré (>200) et le reste est tel que | A-B | < 50 :
Alice {Montréal: 12.3, Newark: 45.6, Dallas: 59.9, Pékin: 264.4}; et
Bob {Montréal: 27.3, Newark: 32.4, Dallas: 23.1, Pékin: 252.2}.
Charlie et Dave ne seront pas associés, puisque | C-D | > 50 pour la balise de Dallas :
Alice {Montréal: 5.7 Newark: 44.2, Dallas: 59.5, Pékin: 263.2}; et
Bob {Montréal: 57.8, Newark: 32.0, Dallas: 24.2, Pékin: 272.3}.
Veuillez noter que les "Règles de Latences" ne peuvent être définies qu'une seule fois dans vos règles de configuration initiales.
3. Examiner les Détails de l'Instance
Examinez les détails de votre nouveau matchmaker dans notre tableau de bord une fois qu'il est initialisé :

Statut indique l'état du service, peut être EN LIGNE, HORS LIGNE, ou ERREUR.
Identifiant aide le personnel d'Edgegap à trouver votre matchmaker rapidement si vous avez besoin d'aide pour dépanner.
Commencé à peut être utile pour suivre l'heure de mise à jour la plus récente.
Taille correspond à l'un de nos Paliers de Tarification.
URL de l'API sera utilisée par les clients de jeu et les serveurs de jeu pour communiquer avec Gen2.
URL Swagger est une interface graphique 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 les serveurs de jeu pour l'authentification.
Pour tester votre nouveau matchmaker en utilisant l'API, vous aurez besoin de l'URL Swagger, de l'URL de l'API et du Jeton d'Authentification.
Vous pouvez maintenant passer à l'étape suivante.
4. Tester l'API des Tickets
Tout d'abord, ouvrez votre URL Swagger pour explorer votre schéma openAPI dans l'interface graphique Swagger
Cliquez sur l'URL /...swagger.json sous le titre «Matchmaker» pour ouvrir le schéma JSON brut :

Enregistrez cette page comme fichier sur votre disque (CTRL/CMD+S).
Ouvrez votre application Postman et connectez-vous à votre compte gratuit.
Importez votre swagger.json fichier de l'étape précédente :
gardez Collection Postman sélectionnée,
séléctionnez Voir les Paramètres d'Importation et changez le paramètre Génération des paramètres en Exemple.
Confirmez l'importation, cela entraînera l'apparition d'une nouvelle collection dans la liste des Collections à gauche, intitulée Matchmaker.

Voir plus d'actions, ouvrez l'onglet Authorization et choisissez :
Type d'authentification - Clé d'API,
Clé - «Authorization»
Valeur - insérez la valeur de votre AuthToken ici,
Ajoutez à - En-tête.
Appuyez (CTRL/CMD+S) ou l'icône de sauvegarde pour enregistrer les modifications. Le point orange dans votre onglet Postman devrait disparaître.
Dans votre collection Matchmaker, sélectionnez tickets et Créer un ticket de matchmaking, ouvrant un nouvel onglet.
Sélectionnez l'onglet Body pour prévisualiser votre demande de ticket de joueur:
notez que player_ip est défini sur nul - cela causera l'utilisation de l'adresse IP automatiquement ajoutée à votre demande (voir Intégration Serveur à Serveur pour des alternatives),
profilse réfère à vos Profils de Matchmaking,attributsincluent des valeurs pour vos règles de matchmaker, dans ce cas pour la règle deslatencies,la règle
player_countest la seule règle qui ne nécessite pas d'attributs dans les tickets de joueur.
REMARQUE: Assurez-vous de vous référer à la configuration d'importation Swagger de l'exemple.
Cliquez sur Envoyer et examinez la réponse à votre demande de ticket de joueur :
idest votre ID de ticket de matchmaking unique, gardez-le enregistré pour vérifier votre ticket plus tard,profilconfirmant le choix des Profils de Matchmaking,group_idest un ID de groupe unique attribué à chaque ticket, un joueur solo est représenté comme un groupe de 1,voir Rejoindre en Groupe pour le matchmaking avec vos amis ou lobbies,
player_ipest l'adresse IP publique résolue du joueur, quels que soient la méthode d'identification utilisée,assignmentest défini sur nul pour indiquer que le ticket n'a pas été assujetti à un serveur encore,created_atfournit des informations sur la date de création du ticket de joueur pour l'utilisation de l'interface utilisateur du jeu,statusindique le statut actuel du ticket, tous les tickets commencent parRECHERCHE EN COURS(voir Processus de Matchmaking pour les détails).
Créez un deuxième ticket en appuyant sur Envoyer de nouveau, ainsi nos deux joueurs se rencontreront et un serveur sera démarré.
Dans votre collection Matchmaker, sélectionnez {ticketId} et Lire un ticket de matchmaking.
Saisissez l'ID de ticket de la réponse à l'étape précédente et cliquez sur Envoyer.

Examinez l'affectation mise à jour de votre ticket de joueur :
le statut est passé à
MATCH_FOUNDtout d'abord, tout en maintenantassignmentànulpour indiquer que les joueurs ont été associés et qu'un serveur est en cours d'attribution,

Cliquez sur Envoyer de nouveau pour vérifier votre ticket, et examinez l'affectation mise à jour de votre ticket de joueur :
le statut est passé à
HOST_ASSIGNEDavecassignmentcontenant des détails du serveur attribué.
Inspectez votre nouveau déploiement dans notre tableau de bord :
notez que chaque déploiement est étiqueté avec tous les ID de ticket et profil pour une traçabilité accrue.

Essayez de vous connecter depuis votre client de jeu au serveur attribué.
Une fois que vous vous assurez de pouvoir vous connecter à votre Déploiement sans problème et que vous avez terminé les tests, Arrêtez votre Déploiement pour libérer la capacité de votre compte pour la prochaine construction.
Vous pouvez maintenant passer à l'étape suivante.
5. Intégrez le Matchmaker dans votre Jeu
L'Intégration de Matchmaking Edgegap :
avec le Client de Jeu, pour gérer les Tickets de Joueurs,
avec le Serveur de Jeu, pour :
traiter les préférences des joueurs passées par leurs tickets,
optionnellement pour prendre en charge Backfill pour ajouter ou remplacer des joueurs après le démarrage.
Pour le Client de Jeu, nous recommandons de fournir des mises à jour du statut des tickets à travers le Processus de Matchmaking à vos joueurs utilisant l'interface utilisateur du jeu pour une meilleure expérience de joueur. Voir :
Edgegap - SDK de Matchmaking Unity Gen2,
importer exemple simple et personnaliser selon vos besoins,
Betide Studio - Kit d'Intégration Edgegap Unreal Engine,
télécharger le projet exemple et personnaliser selon vos besoins.
Dans le Client de Jeu, assurez-vous de gérer les erreurs non retraitables :
HTTP 404 Not Found- le ticket a été supprimé,HTTP 500 Internal Server Error- panne temporaire du service.
Dans le Serveur de Jeu, traitez les préférences des joueurs et le contexte initial du serveur. Aucune intégration API n'est requise :
Lisez Variables d'Environnement Injectées (Gen2) pour récupérer les données de matchmaking initiales des joueurs.
Lisez Variables d'Environnement Injectées (Versions d'Appli) pour les paramètres spécifiques à la version, les paramètres (capacité des joueurs), et les secrets.
Lisez Variables d'Environnement Injectées (Déploiement) pour les informations de déploiement, telles que l'adresse IP, l'emplacement, ou plus.
Une fois que les joueurs se connectent, le Serveur de Jeu et les Clients de Jeu commencent une scène de chargement pour effectuer des étapes de synchronisation (par exemple, sélectionner et charger une carte/ scène/ niveau). Nous recommandons une scène 3D complète, une interface sociale de type lobby, ou un écran de chargement avec une barre de progression, pour indiquer que l'initialisation est en cours.
Une fois que les Clients de Jeu sont complètement chargés, les joueurs naviguent/voyagent vers la scène de jeu principale.
Optionnellement, le Serveur de Jeu peut créer et gérer Backfill et la capacité des joueurs (ajouter ou remplacer des joueurs qui partent).
Assurez-vous que votre déploiement sera arrêté sans problème en utilisant DELETE_URL Injecté, si :
aucun joueur ne rejoint le match,
tous les joueurs ont quitté le match,
le match se termine correctement.
Félicitations, vous avez complété l'intégration Edgegap Matchmaker! Si vous souhaitez en savoir plus, lisez tout à ce sujet dans notre Centre d'Apprentissage.
Écrit par
l'équipe Edgegap








