
Comment ajouter un système de matchmaking à un jeu Metaverse
Le matchmaker 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 décontracté.
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 nécessaire, nos guides d'intégration vous accompagnent à chaque étape.
Lorsque votre jeu est en ligne, étant donné que notre système de matchmaking est entièrement géré, vous n'avez pas besoin de gérer l'infrastructure, les bogues, les pannes, l'évolutivité 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 dans le Métavers
-> Cet article est basé sur la documentation de Matchmaking. Si vous rencontrez des problèmes ou des désaccords, 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 principal de matchmaking du joueur, à savoir :
Créer l'instance de matchmaker sur le groupe d'hébergement partagé,
Définir les règles et les paramètres dans votre Configuration du matchmaker,
Et enfin, tester le flux des joueurs et gérer les billets des joueurs avec notre API.
Il y a cinq étapes pour implémenter notre matchmaker dans votre jeu :
La première étape consiste à créer un compte et à utiliser notre exemple de jeu métavers. 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 explique la fonction de chaque fonction des règles de matchmaking (« Explorer la configuration »).
L'étape 3 (« Examiner les détails de l'instance ») concerne votre matchmaker personnel spécifique afin de garantir qu'il est déployé et fonctionne avec la conception de votre jeu.
Étape 4, comme son nom l'indique (« 4. Tester l'API des tickets »), concerne les tests de vos demandes de matchmaking des joueurs reçus par le matchmaker, appelés tickets.
L'étape 5 (« Intégrer le Matchmaking dans votre jeu ») met en lumière l'intégration du matchmaker dans le projet de votre moteur.
Si vous rencontrez des problèmes de dépannage, notre Centre d'apprentissage approfondi propose des conseils supplémentaires de dépannage.
1. Configuration du niveau gratuit
Inscrivez-vous pour votre compte Edgegap gratuit, et naviguez vers la page du tableau de bord de Matchmaker.
À partir de là, cliquez d'abord sur Créer un Matchmaker, puis saisissez :
Un nom pour votre matchmaker - qui est purement pour votre propre référence, par exemple
quickstart-dev,Ensuite, téléchargez l'exemple simple suivant en tant que configuration JSON ci-dessous pour votre jeu métavers :
(Rappel bienveillant de bien vouloir s'assurer de changer le nom et la version de l'application pour correspondre à vos application et versions!)
Si aucune erreur de validation n'apparaît, cliquez sur Créer et démarrer et attendez que le processus se termine. Cela entraînera le démarrage d'un nouveau cluster gratuit, avec votre exemple simple de matchmaker.
Vous pouvez maintenant passer à l'étape suivante.
2. Explorez la configuration
Règles uniques du jeu multijoueur métavers
Les salons personnalisés (salons privés, niveaux de bac à sable) sont une option très populaire pour le multijoueur sur canapé, mais aussi pour tester de nouvelles fonctionnalités dans des jeux compétitifs ou coopératifs avant qu'elles n'entrent dans les modes de jeu principaux. Ces jeux nécessitent généralement le moins de restrictions, mais visent à garantir que les joueurs peuvent Rejoindre en tant que groupe.
Les tickets de remplissage peuvent utiliser des profils de salon personnalisé pour soutenir l'invitation de vos amis de manière fiable, tant que les tickets de remplissage sont valides.
Conseil: Ajoutez le profil
exemple-lobby-personnaliséà votre configuration en plus de vos autres profils pour prendre en charge des lobbies personnalisés.
Versionnage sémantique
À mesure que nous publions des mises à jour pour Matchmaker, chaque nouvelle version utilise le versionnage sémantique pour communiquer clairement l'impact des changements en interprétant le format majeur.mineur.patch :
les versions
majeuresincluent des modifications qui cassent et nécessitent un examen de l'intégration,les versions
mineuresincluent des améliorations substantielles rétrocompatibles,les versions
correctivesincluent des correctifs et des améliorations mineures.
Certaines déploiements peuvent provoquer 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 crashs inattendus du client ou les tickets abandonnés ne restent pas et n’occupent pas vos ressources de matchmaker, les tickets seront annulés après ticket_expiration_period ce qui provoque leur changement de statut en ANNULÉ puis supprimés définitivement 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 complètement isolée, pointant vers Versions d'application avec une quantité prédéfinie de ressources CPU et mémoire (RAM) nécessaires.
Les Règles de matchmaking dans l'ensemble de règles initiales doivent être respectées pour que les joueurs soient regroupés ensemble, chacune définie par trois propriétés :
nom de votre choix, par exemple -
taille du match,type de règle, également connu sous le nom d'opérateur, par exemple -
compte_joueur,et enfin, attributs de l'opérateur, par exemple
nombre d'équipesoutaille d'équipe.
Règle de nombre de joueurs
C'est une règle spéciale définissant combien de joueurs doivent correspondre pour initier l'attribution :
nombre d'équipesse réfère au nombre d'équipes, 1 équipe peut être utilisée pour des modes coopératifs ou chacun pour soi,taille d'équipese réfère au nombre de joueurs par équipe.
Notre exemple simple démontre un jeu coopératif avec 2 joueurs.
Veuillez noter que la règle "Nombre de joueurs" est requise et ne peut être définie qu'une seule fois dans vos règles de configuration initiales.
Règle de latences
Utilisez cette règle pour offrir le ping le plus bas possible à tous les joueurs. Une fois que les clients mesurent et soumettent leur temps de trajet aller-retour (ping) contre tous les balises disponibles, Gen2 ne prendra en compte que des matchs dans une différence spécifique de valeurs de ping, mesurée par rapport aux Balises de Ping. Cela présente une solution «souple» pour diviser votre base de joueurs, permettant de faire correspondre avec des régions voisines, améliorant notamment la vitesse de matchmaking pour les régions moins peuplées. Utilisez latence_maximale pour empêcher de faire correspondre avec des joueurs situés loin.
Vous pouvez maintenant passer à l'étape suivante.
Notre exemple de règle balises ci-dessus avec "difference": 50, "max_latency": 200 initialement :
Alice et Bob correspondra, étant donné que Pékin est écarté (>200) et que le reste est dans | 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 correspondra pas, car | 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. Passez en revue les détails de l'instance
Examinez les détails de votre nouveau matchmaker sur notre tableau de bord une fois qu'il est initialisé :

Statut indique la santé du service, peut être EN LIGNE, HORS LIGNE, ou ERREUR.
Identifiant aide le personnel Edgegap à trouver rapidement votre matchmaker si vous avez besoin d'aide pour le dépannage.
Démarré à peut être utile pour suivre la dernière heure de mise à jour.
Taille correspond à l'un de nos niveaux de tarification.
URL API sera utilisé par les Clients et Serveurs de Jeu pour communiquer avec Gen2.
URL Swagger est une interface graphique OpenAPI pratique que nous fournissons pour explorer le schéma API.
Jeton Auth est un jeton secret unique utilisé par les Clients de Jeu et le Serveur de Jeu pour l'authentification.
Pour tester votre nouveau matchmaker en utilisant l'API, vous aurez besoin de l'URL Swagger, de l'URL API et du jeton Auth.
Vous pouvez maintenant passer à l'étape suivante.
4. Tester l'API des tickets
Tout d'abord, ouvrez votre URL Swagger pour inspecter votre schéma openAPI dans l’interface Swagger
Cliquez sur l'URL /...swagger.json sous le titre « Matchmaker » pour ouvrir le schéma JSON brut :

Enregistrez cette page sous forme de fichier sur votre disque (CTRL/CMD+S).
Ouvrez votre application Postman et connectez-vous à votre compte gratuit.
Importez votre fichier swagger.json du précédant étape :
gardez Collection Postman sélectionné,
sélectionnez Afficher les paramètres d'importation et changez le réglage Génération de paramètres à Par exemple.
Confirmez l'importation, cela se traduira par une nouvelle collection apparaissant dans la liste des Collections sur la gauche, intitulée Matchmaker.

Voir plus d'actions, ouvrez l'onglet Autorisation et choisissez :
Type d'authentification - Clé API,
Clé - « Authorization »
Valeur - insérez votre valeur AuthToken ici,
Ajouter à - En-tête.
Pressez (CTRL/CMD+S) ou l'icône Enregistrer 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, en ouvrant un nouvel onglet.
Sélectionnez l'onglet Corps pour prévisualiser votre demande de ticket de joueur :
remarquez player_ip défini sur null - cela entraînera l'utilisation de l'adresse IP automatiquement ajoutée à votre demande (voir Intégration de serveur à serveur pour des alternatives),
profilfait référence à vos Profils de Matchmaking,attributscomprennent des valeurs pour vos règles de matchmaker, dans ce cas pour la règlelatences,la règle
compte_joueurest la seule règle qui ne nécessite aucun attribut dans les billets des joueurs.
REMARQUE: Assurez-vous de vous référer à la configuration d'importation du Swagger du modèle.
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,groupe_idest un ID de groupe unique attribué à chaque ticket, un joueur solo est représenté comme un groupe de 1,voir Rejoindre en tant que groupe pour le matchmaking avec vos amis ou des lobbies,
player_ipest l'adresse IP publique résolue du joueur, quelle que soit la méthode d'identification utilisée,assignmentest défini sur null pour indiquer que le ticket n'a pas encore été apparié ou attribué à un serveur,created_atfournit des informations sur le moment où le ticket de joueur a été créé pour l'utilisation de l'interface utilisateur du jeu,statusindique l'état actuel du ticket, tous les tickets commencent enEN RECHERCHE(voir Processus de Matchmaking pour plus de détails).
Créez un deuxième ticket en appuyant à nouveau sur Envoyer, pour que nos deux joueurs se rencontrent et qu'un serveur soit lancé.
Dans votre collection Matchmaker, sélectionnez {ticketId} et Lire un ticket de matchmaking.
Saisissez l'ID du ticket à partir 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 a changé en
MISE EN RELATION TROUVÉEen premier, tout en maintenantassignmentdéfini ànullpour indiquer que les joueurs ont été appariés et qu'un serveur est en cours d'attribution,

Cliquez sur Envoyer à nouveau pour vérifier votre ticket, et examinez l'affectation mise à jour de votre ticket de joueur :
le statut a changé en
HÔTE ATTRIBUÉavecassignmentcontenant les détails du serveur attribué.
Inspectez votre nouveau déploiement sur notre tableau de bord :
remarquez que chaque déploiement est étiqueté avec tous les IDs de ticket et le profil pour une meilleure traçabilité.

Essayez de vous connecter depuis votre client de jeu au serveur attribué.
Une fois que vous avez vérifié que vous êtes en mesure de vous connecter à votre déploiement sans problème et que vous avez terminé le test, arrêtez votre déploiement pour libérer de la capacité dans votre compte pour la prochaine construction.
Vous pouvez maintenant passer à l'étape suivante.
5. Intégrez le Matchmaker dans votre jeu
Le matchmaking d'Edgegap s'intègre :
avec le Client de Jeu, pour gérer les Billets des joueurs,
avec le Serveur de Jeu, pour :
traiter les préférences des joueurs transmises via leurs billets,
facultativement pour prendre en charge le Rembobinage pour ajouter ou remplacer des joueurs après le démarrage.
Pour le Client de jeu, nous recommandons de fournir des mises à jour de statut de billet tout au long du Processus de Matchmaking aux joueurs via l'interface utilisateur en jeu pour la meilleure expérience de joueur. Voir :
Edgegap - SDK de matchmaking Unity Gen2,
importez l'exemple simple et personnalisez-le selon vos besoins,
Betide Studio - Kit d'Intégration Unreal Engine Edgegap,
téléchargez le projet exemple et personnalisez-le selon vos besoins.
Dans le Client de Jeu, assurez-vous de gérer les erreurs non récupérables :
HTTP 404 Non Trouvé- le billet a été supprimé,HTTP 500 Erreur Interne du Serveur- panne de service temporaire.
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 les Variables d'Environnement Injectées (Gen2) pour récupérer les données initiales de matchmaking des joueurs.
Lisez les Variables d'Environnement Injectées (Versions de l'Appli) pour les paramètres spécifiques à la version, les paramètres (capacité des joueurs) et les secrets.
Lisez les Variables d'Environnement Injectées (Déploiement) pour les informations de déploiement, telles que l'adresse IP, l'emplacement, ou plus encore.
Une fois que les joueurs se connectent, les Serveur de Jeu et 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 entièrement développée, une interface utilisateur sociale de type lobby, ou un écran de chargement avec une barre de progression, pour indiquer que l'initialisation est en cours.
Unefois les Clients de Jeu complètement chargés, les joueurs chargent/voyagent vers la scène de jeu principale.
Optionnellement, le Serveur de Jeu peut créer et gérer des Rembobinages et la capacité des joueurs (ajouter ou remplacer des joueurs qui partent).
Assurez-vous que votre déploiement sera arrêté correctement 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 terminé l'intégration du Matchmaker d'Edgegap ! Si vous souhaitez en savoir plus, lisez tout à ce sujet dans notre Centre d'apprentissage.
Écrit par
l'équipe Edgegap








