
Comment ajouter un matchmaking à un jeu MMORPG
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 MMORPG multijoueur
-> 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 ils sont mis à jour plus fréquemment.
L'exemple suivant vous aidera à tester le flux principal de joueur pour matchmaking , à savoir :
Créer l'instance de matchmaker sur le Cluster d'Hébergement partagé,
Définir les règles et paramètres dans votre Configuration de matchmaker,
Et enfin, tester le flux de joueur et gérer les Tickets 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 MMORPG. Voilà, vous avez (techniquement) fait la moitié du chemin ! Il vous suffirait d'intégrer le matchmaker dans votre jeu (voir étape 5).
Ensuite, 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 de règles de matchmaking (« Explorer la Configuration »).
L'étape 3 (« Examiner les Détails de l'Instance ») couvre votre matchmaker personnel et spécifique afin de s'assurer qu'il est déployé et fonctionne avec le design de votre jeu.
Étape 4, comme son nom l'indique (« 4. Tester l'API Ticket »), concerne le test des demandes de matchmaking des joueurs qui sont reçues par le matchmaker, appelés tickets.
L'étape 5 (« Intégrer le Matchmaking dans votre Jeu ») explique comment intégrer le matchmaker dans le projet de votre moteur.
Si vous avez des difficultés de dépannage, notre Centre d'Apprentissage approfondi dispose de conseils de dépannage supplémentaires.
1. Configurer le Palier Gratuit
Inscrivez-vous pour votre compte Edgegap gratuit, et accédez à la page de tableau de bord de Matchmaker.
À partir de là, cliquez sur Créer un Matchmaker d'abord, puis entrez :
Un nom pour votre matchmaker – qui est purement pour votre propre référence, par exemple
quickstart-dev,Ensuite, chargez l'exemple simple suivant en tant que configuration JSON ci-dessous pour votre jeu MMORPG :
(rappel amical de bien vouloir s'assurer de changer l'application nom et version pour correspondre à votre Application 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 déclenchera 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 pour le jeu multijoueur MMORPG
Les lobbies personnalisés (lobbies privés, niveaux sandbox) sont une option très populaire pour les jeux en canapé multijoueur, mais aussi pour tester de nouvelles fonctionnalités dans les jeux compétitifs ou coopératifs avant qu'ils n'entrent dans les principaux modes de jeu. Ces jeux nécessitent généralement le moins de restrictions possible, mais visent à s'assurer que les joueurs peuvent Rejoindre en Groupe.
Les tickets Backfill peuvent utiliser les profils de Lobby Personnalisé pour garantir une invitation des amis de manière fiable, tant que les tickets Backfill sont valides.
Astuce: Ajoutez le profil
custom-lobby-exampleà votre configuration en plus de vos autres profils pour prendre en charge les lobbies personnalisés.
Versionnement Sémantique
Lorsque nous publions des mises à jour de Matchmaker, chaque nouvelle version utilise le Versionnement Sémantique pour communiquer clairement l'impact des modifications en interprétant le format majeur.mineur.patch :
majeureles versions incluent des changements breaking et nécessitent une révision d'intégration,les versions
mineuresincluent des améliorations substantiellement rétrocompatibles,les versions
patchincluent des corrections de bugs et des améliorations mineures.
Certaines mises en œuvre peuvent entraîner des Erreurs. Nous nous efforçons de résoudre ce problème en réessayant le déploiement jusqu'à max_deployment_retry_count de fois automatiquement (sans confirmation du client).
Pour garantir que les crashs inattendus des clients 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 entraîne le changement de leur statut en ANNULE puis une suppression permanente 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 Versions d'Applications avec quantité prédéfinie de ressources CPU et mémoire (RAM) requises.
Les Règles de Matchmaking dans le premier ensemble de règles doivent être respectées pour que les joueurs soient regroupés, 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 -
nombre_de_joueurs,et enfin les 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'assignation :
nombre_d'équipesse réfère au nombre d'équipes, 1 équipe peut être utilisée pour les modes coopératifs ou « free-for-all »,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 de « Nombre de Joueurs » 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 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, la Gen2 ne considérera que les correspondances dans une différence spécifique des valeurs de ping, mesurée contre les Balises de Ping. Cela présente une solution « douce » pour diviser votre base de joueurs, permettant la correspondance avec les régions voisines, améliorant notamment la vitesse de correspondance pour les régions moins peuplées. Utilisez latence_maximalepour empêcher la correspondance contre des joueurs situés trop loin.
Vous pouvez maintenant passer à l'étape suivante.
Notre exemple de règle balises ci-dessus avec "différence": 50, "latence_maximale": 200 initialement :
Alice et Bob se rencontreront, car Pékin est écarté (>200) et le reste est dentro | 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 se rencontreront pas, car | C-D | > 50 pour la Balise Dallas :
Charlie {Montréal : 5.7 Newark : 44.2, Dallas : 59.5, Pékin : 263.2} ; et
Dave {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 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 d'Edgegap à trouver votre matchmaker rapidement si vous avez besoin d'aide pour le dépannage.
Démarré le peut être utile pour suivre le dernier temps de mise à jour.
Taille correspond à l'un de nos Niveaux de Tarification.
URL API sera utilisé par les Clients de Jeu et Serveurs de Jeu pour communiquer avec Gen2.
URL Swagger est une interface GUI openAPI pratique que nous fournissons pour explorer le schéma de l'API.
Jeton Auth est un jeton secret unique utilisé par les Clients de Jeu et 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 API et du Jeton Auth.
Vous pouvez maintenant passer à l'étape suivante.
4. Tester l'API 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 :

Sauvegardez 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électionnez Voir les Paramètres d'Importation et changez le paramètre Génération de Paramètres en Exemple.
Confirmez l'importation, cela aura pour résultat l'apparition d'une nouvelle collection dans la liste des Collections à gauche, intitulée Matchmaker.

Voir plus d'actions, ouvrez l'onglet Autorisation et choisissez :
Type d'Auth - Clé API,
Clé - « Autorisation »
Valeur - insérez votre valeur de Jeton Auth ici,
Ajouter à - En-tête.
Appuyez sur (CTRL/CMD+S) ou l'icône de sauvegarde pour sauvegarder 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 Corps pour prévisualiser votre demande de ticket joueur:
notez player_ip défini sur null - cela entraînera l'utilisation de l'adresse IP automatiquement ajoutée à votre demande (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,la règle
nombre_de_joueursest la seule règle qui ne nécessite pas d'attributs dans les tickets joueurs.
REMARQUE : Assurez-vous de vous référer à la configuration d'importation de Swagger de l'échantillon.
Cliquez sur Envoyer et examinez la réponse à votre demande de ticket joueur :
idest votre identifiant de ticket de matchmaking unique, gardez-le enregistré pour vérifier votre ticket plus tard,profilconfirmant le choix de 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 en lobbies,
player_ipest l'adresse IP publique résolue du joueur, indépendamment de 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 la date de création du ticket joueur pour un usage dans l'interface utilisateur du jeu,statusindique le statut actuel du ticket, tous les tickets commencent avecRECHERCHE(voir Processus de Matchmaking pour plus de détails).
Créez un second ticket en cliquant de nouveau sur Envoyer, afin que nos deux joueurs se rencontrent et qu'un serveur soit démarré.
Dans votre collection Matchmaker, sélectionnez {ticketId} et Lire un ticket de matchmaking.
Saisissez l'identifiant du ticket dans la réponse de l'étape précédente et cliquez sur Envoyer.

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

Cliquez de nouveau sur Envoyer pour vérifier votre ticket, et examinez l'assignation mise à jour pour votre ticket 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 :
notez que chaque déploiement est étiqueté avec tous les IDs de tickets et profils pour plus de traçabilité.

Essayez de vous connecter à partir de votre client de jeu au serveur attribué.
Une fois que vous avez vérifié que vous pouvez vous connecter à votre Déploiement sans problèmes et que vos tests sont terminés, 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égrer le Matchmaker dans votre Jeu
Le matchmaking d'Edgegap s'intègre :
avec Client de Jeu, pour gérer les Tickets Joueurs,
avec Serveur de Jeu, pour :
traiter les préférences des joueurs transmises par leurs tickets,
facultativement pour supporter Backfill pour ajouter ou remplacer des joueurs après le début.
Pour Client de Jeu, nous recommandons de fournir des mises à jour de statut de ticket tout au long du Processus de Matchmaking aux joueurs en utilisant l'interface utilisateur du jeu pour une meilleure expérience joueur. Voir :
Edgegap - SDK de Matchmaking Unity Gen2,
importer l'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 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 Serveur de Jeu, traitez les préférences des joueurs et le contexte initial du serveur. Aucune intégration API 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 les paramètres spécifiques à la version, les réglages (capacité du joueur) 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 sont connectés, Serveur de Jeu et 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 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 chargent/voyagent vers la scène de jeu principale.
Optionnellement, Serveur de Jeu peut créer et gérer Backfill et la capacité des joueurs (ajouter ou remplacer des joueurs qui quittent).
Assurez-vous que votre déploiement sera correctement arrêté en utilisant DELETE_URL Injectée, 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 Edgegap Matchmaker ! Si vous souhaitez en savoir plus, lisez tout à ce sujet dans notre Centre d'Apprentissage.
Écrit par
l'équipe Edgegap








