
Comment ajouter le matchmaking à un jeu multijoueur hypercasual
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 hypercasual
-> Cet article est basé sur la documentation de Matchmaking. Si vous rencontrez des problèmes ou des divergences, veuillez vous référer au guide original, car il est mis à jour plus fréquemment.
L'exemple suivant vous aidera à tester le flux de joueurs matchmaking principal, à savoir :
Créer l'instance du matchmaker sur le cluster Hôte partagé,
Définir des règles et paramètres dans votre configuration de matchmaker,
Et enfin, tester le flux des joueurs et gérer les tickets des joueurs avec notre API.
Il y a cinq étapes pour implémenter notre matchmaker dans votre jeu :
La première étape est de créer un compte et d'utiliser notre exemple de jeu hypercasual. Voilà, vous êtes (techniquement) à mi-chemin ! Il vous suffira 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, 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 fonctionnalité des règles de matchmaking (« Explorer la Configuration »).
L'étape 3 (« Réviser les détails de l'instance ») couvre votre matchmaker personnel afin de s’assurer qu’il est déployé et fonctionne avec la conception de votre jeu.
L'étape 4, comme son nom l'indique (« Tester l'API Ticket »), consiste à tester que vos requêtes de matchmaking soient reçues par le matchmaker, appelées tickets.
L'étape 5 (« Intégrer Matchmaking dans votre jeu ») met en évidence comment intégrer le matchmaker dans le projet de votre moteur.
Si vous rencontrez des défis de dépannage, notre Centre d'apprentissage en profondeur propose des conseils supplémentaires en matière de dépannage.
1. Configurer la version gratuite
Enregistrez-vous pour votre compte Edgegap gratuit, et accédez à la page de tableau de bord du Matchmaker.
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 Hypercasual :
(rappel amical de bien vouloir s'assurer de changer le nom de l'application et la version pour correspondre à vos Applications et Versions!)
Si aucune erreur de validation n'apparaît, appuyez 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 matchmaker Exemple Simple.
Vous pouvez maintenant passer à l'étape suivante.
2. Explorer la Configuration
Règles de jeu hypercasual multijoueur uniques
Avec un nombre d'équipes de 1 et une taille d'équipe de 50, nécessitant 50 joueurs par partie (tous les joueurs sont dans la même équipe).
Spécifiquement pour les jeux sociaux, vous pouvez définir des 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 mode de jeu et de choisir un mode adapté à tous,
Rejoindre en Groupe pour des halls pré-établis ou pour remplir des équipes sans dépasser la taille des équipes,
ajouter une UI de sélection de région 🗺️ pour restreindre les adversaires à des régions spécifiées,
permettre une latence plus élevée pour préférer des parties plus rapides avec plus de joueurs,
allouer plus de CPU ou de mémoire en utilisant différentes versions d'application 🏷️ lorsque plus de joueurs sont autorisés.
Étendre les restrictions pour garantir des parties rapides :
assouplir rapidement les restrictions de latence pour trouver plus de joueurs,
réduire lentement la taille des équipes pour nécessiter moins de joueurs et démarrer la partie plus tôt,
le cas échéant, vous pouvez faire en sorte que le serveur remplisse les créneaux vides avec des joueurs AI,
si aucun coéquipier n'est trouvé, lancer la partie en solo et utiliser le Backfill pour ajouter des joueurs plus tard,
cela permettra aux joueurs de rejoindre des parties existantes plutôt que de nouvelles pour maximiser l'interaction sociale.
Versionnage Sémantique
Lorsque nous publions des mises à jour de Matchmaker, chaque nouvelle version utilise le Versionnage Sémantique pour communiquer clairement l'impact des changements en interprétant le format maj.minor.correctif :
les versions
majincluent des changements cassants et nécessitent une révision de l'intégration,les versions
minorcomprennent des améliorations substantielles compatibles avec les versions antérieures,les versions
correctifincluent des correctifs et des améliorations mineures.
Certaines déploiements peuvent entraîner des erreurs. Nous tentons de résoudre cela en réessayant automatiquement le déploiement jusqu'à nombre_max_retentative_de_déploiement fois (sans confirmation client).
Pour garantir qu’aucun plantage inattendu du client ou ticket abandonné ne persiste et n'occupe vos ressources de matchmaker, les tickets seront annulés après période_d_expiration_du_ticket entraînant un changement de statut vers ANNULÉ puis supprimé définitivement après période_de_suppression_du_ticket.
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 des versions d'application avec une quantité prédéfinie de ressources CPU et mémoire (RAM) requises.
Les Règles de Matchmaking dans le jeu de règles initial doivent être respectées pour que les joueurs soient regroupés, définis chacun 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. -
nombre_de_joueurs,et enfin, attributs de l'opérateur, par ex.
nombre_d'équipesoutaille_d'équipe.
Règle de Nombre de Joueurs
Ceci 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 les modes coopératifs ou tous contre tous,taille_d'équipefait 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 "Nombre de Joueurs" est obligatoire et ne peut être définie qu'une fois dans vos règles de configuration initiales.
Règle des 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 toutes les balises disponibles, Gen2 ne prendra en compte que les matchs dans une différence spécifique aux valeurs de ping, mesurée contre les Balises de Ping. Cela présente une solution « douce » pour diviser votre base de joueurs, permettant de correspondre avec les régions voisines, améliorant particulièrement la vitesse de match pour les régions moins peuplées. Utilisez latence_maximalepour empêcher les correspondances avec des joueurs éloignés.
Vous pouvez maintenant passer à l'étape suivante.
Notre exemple balises de règle ci-dessus avec "différence" : 50, "latence_maximale" : 200initalement :
Alice et Bob feront un match, puisque Beijing est rejeté (>200) et le reste est à intérieur | A-B | < 50 :
Alice {Montréal : 12.3, Newark : 45.6, Dallas : 59.9, Beijing : 264.4} ; et
Bob {Montréal : 27.3, Newark : 32.4, Dallas : 23.1, Beijing : 252.2}.
Charlie et Dave ne se rencontreront pas, puisque | C-D | > 50 pour la balise Dallas :
Alice {Montréal : 5.7 Newark : 44.2, Dallas : 59.5, Beijing : 263.2} ; et
Bob {Montréal : 57.8, Newark : 32.0, Dallas : 24.2, Beijing : 272.3}.
Veuillez noter que les "Règles des Latences" ne peuvent être définies qu'une seule fois dans vos règles de configuration initiales.
3. Réviser les détails de l'instance
Révisez les détails de votre nouveau matchmaker dans notre tableau de bord une fois qu'il est initialisé :

Le statut indique l'état de santé du service, il peut être EN LIGNE, HORS LIGNE ou ERREUR.
L'identifiant aide le personnel d'Edgegap à retrouver rapidement votre matchmaker si vous avez besoin d'aide pour le dépannage.
Commencé à peut être utile pour suivre la dernière heure de mise à jour.
Taille correspond à l'un de nos paliers de prix.
URL de l'API sera utilisée par les clients de jeux et les serveurs de jeux pour communiquer avec Gen2.
URL Swagger est une interface utilisateur de spécification openAPI pratique que nous fournissons pour explorer le schéma de l'API.
Jeton d'authentification est un jeton secret unique utilisé par les clients de jeux et le serveur de jeux 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 Tickets
D'abord, ouvrez votre URL Swagger pour inspecter votre schéma openAPI dans l'interface utilisateur Swagger
Cliquez sur l'URL /...swagger.json sous le titre « Matchmaker » pour ouvrir le schéma JSON brut :

Enregistrez cette page en tant que 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 de paramètres en Exemple.
Confirmez l'importation, cela entraînera l'apparition d'une nouvelle collection dans la liste de Collections à gauche, intitulée Matchmaker.

Voir plus d'actions, ouvrir l'onglet Autorisation et choisir:
Type Auth - Clé API,
Clé - «Autorisation»
Valeur - insérez votre valeur AuthToken ici,
Ajouter à - En-tête.
Une fois terminé, appuyez sur (CTRL/CMD+S) ou l'icône Save pour enregistrer les modifications. Le point orange dans votre onglet Postman devrait disparaître.
Dans votre collection Matchmaker, sélectionnez tickets et Créez un ticket de matchmaking, en ouvrant un nouvel onglet.
Sélectionnez l'onglet Corps pour prévisualiser votre requête de ticket joueur :
remarquez ip_joueur défini sur null - cela permettra d'utiliser l'adresse IP automatiquement ajoutée à votre requête (voir Intégration Serveur à Serveur pour les alternatives),
profilse réfère à vos Profils de Matchmaking,attributsincluent les valeurs pour vos règles de matchmaker, dans ce cas pour lalatencesrègle,règle
nombre_de_joueursest la seule règle qui ne nécessite aucun attribut dans les tickets de joueurs.
REMARQUE : Assurez-vous de vous référer à l’importation du configuration Swagger.
Cliquez sur Envoyer et examinez la réponse à votre requête de ticket joueur :
idest votre ID unique de ticket de matchmaking, conservez-le pour vérifier votre ticket plus tard,profilconfirmant le choix des Profils de Matchmaking,id_groupeest un ID de groupe unique émis à chaque ticket, un joueur solo est représenté comme un groupe de 1,voir Rejoindre en Groupe pour le matchmaking avec vos amis ou des halls,
ip_joueurest l'adresse IP publique résolue du joueur, quelle que soit la méthode d'identification utilisée,assignationest définie sur null pour indiquer que le ticket n'a pas encore été jumelé ou affecté à un serveur,créé_àfournit des informations sur la date de création du ticket pour l'utilisation de l'interface utilisateur du jeu,statutindique le statut actuel du ticket, tous les tickets commencent enCHERCHE(voir Processus de Matchmaking pour plus de détails).
Créez un deuxième ticket en appuyant à nouveau sur Envoyer, afin que nos deux joueurs matchent et qu’un serveur soit démarré.
Dans votre collection Matchmaker, sélectionnez {ticketId} et Lisez un ticket de matchmaking.
Saisissez l'ID de ticket de la réponse dans l'étape précédente et cliquez sur Envoyer.

Examinez l'attribution mise à jour pour votre ticket de joueur :
le statut a changé en
MATCH_TROUVÉd'abord, tout en gardantassignationdéfinie surnullpour indiquer que les joueurs ont été jumelés et qu'un serveur est en cours d'attribution,

Cliquez à nouveau sur Envoyer pour vérifier votre ticket, et examiner l'attribution mise à jour pour votre ticket de joueur :
le statut a changé en
HÔTE_ATTRIBUÉavecassignationcontenant des détails sur le serveur attribué.
Inspectez votre nouveau déploiement dans notre tableau de bord :
remarquez que chaque déploiement est étiqueté avec tous les IDs de tickets 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 capable 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 version.
Vous pouvez maintenant passer à l'étape suivante.
5. Intégrer le Matchmaker dans votre jeu
Le matchmaking Edgegap s'intègre :
avec le client de jeu, pour gérer les tickets des joueurs,
avec le serveur de jeu, pour :
traiter les préférences des joueurs transmises via leurs tickets,
facultativement pour prendre en charge le Backfill pour ajouter ou remplacer des joueurs après le démarrage.
Dans le client de jeu, nous recommandons de fournir des mises à jour de l’état des tickets tout au long du processus de matchmaking aux joueurs en utilisant l'interface utilisateur en jeu pour la meilleure expérience utilisateur. Voir :
Edgegap - SDK Gen2 Matchmaking Unity,
importez un exemple simple et personnalisez-le selon vos besoins,
Betide Studio - Kit d'intégration Edgegap Unreal Engine,
téléchargez un projet exemple et personnalisez-le selon vos besoins.
Dans le client de jeu, assurez-vous de gérer les erreurs non réessayables :
HTTP 404 Non Trouvé- le ticket a été supprimé,HTTP 500 Erreur Interne du Serveur- interruption temporaire du service.
Dans le serveur de jeu, traitez les préférences des joueurs et le contexte serveur initial. Aucune intégration API n'est requise :
Lisez les variables d'environnement injectées (Gen2) pour récupérer les données de matchmaking initiales des joueurs.
Lisez les variables d'environnement injectées (Versions d'applications) pour obtenir des paramètres spécifiques à la version, des paramètres (capacité des joueurs) et des secrets.
Lisez les variables d'environnement injectées (Déploiement) pour obtenir des informations sur le déploiement, telles que l'adresse IP, l'emplacement ou plus.
Une fois les joueurs connectés, le serveur de jeu et les clients de jeu commencent une scène de chargement pour effectuer les étapes de synchronisation (par exemple, sélectionner et charger une carte/scène/niveau). Nous recommandons une scène 3D entièrement réalisée, une interface utilisateur sociale type hall, 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 chargent/voyagent vers la scène principale de jeu.
Facultativement, le serveur de jeu peut créer et gérer le Backfill et la capacité des joueurs (ajouter ou remplacer des joueurs qui partent).
Assurez-vous que votre déploiement sera arrêté correctement en utilisant le DELETE_URL injecté, si :
aucun joueur ne rejoint la partie,
tous les joueurs ont quitté la partie,
la partie se conclut correctement.
Félicitations, vous avez terminé l'intégration de Edgegap Matchmaker ! Si vous souhaitez en savoir plus, lisez tout à ce sujet dans notre Centre d'apprentissage.
Écrit par
l'équipe Edgegap








