
Comment ajouter un système de matchmaking à un jeu multijoueur de survie
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 dans votre jeu multijoueur de survie
-> 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 matchmaking des joueurs, notamment :
Créer l'instance du matchmaker sur le Cluster d'Hébergement partagé,
Définir des règles et des paramètres dans votre Configuration de matchmaker,
Et enfin, tester le flux des joueurs 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 créer un compte et utiliser notre exemple de jeu de survie. Voilà, vous avez (techniquement) terminé à moitié ! Il ne vous reste qu'à 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 de règles de matchmaking (« Explorer la Configuration »).
L'étape 3 (« Vérifier les Détails de l'Instance ») couvre votre matchmaker personnel, spécifique, afin de s'assurer qu'il est déployé et fonctionne avec le design de votre jeu.
L'étape 4, comme l'indique le nom (« 4. Tester l'API Ticket »), est entièrement consacrée au test de vos demandes de matchmaking provenant des joueurs qui sont reçues par le matchmaker, appelées tickets.
L'étape 5 (« Intégrer le Matchmaking dans votre Jeu ») met en évidence comment intégrer la survie 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. Configurer le Forfait Gratuit
Inscrivez-vous pour votre compte Edgegap gratuit, et accédez à la boîte de réception page du tableau de bord du Matchmaker.
À partir de là, cliquez d'abord sur Créer Matchmaker puis saisissez :
Un nom pour votre matchmaker – qui est uniquement pour votre référence, par exemple
quickstart-dev,Ensuite, téléchargez l'exemple simple suivant sous forme de configuration JSON ci-dessous pour votre jeu de survie :
(rappel aimable de s'assurer de modifier le nom et la version de l'application 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 entraînera le démarrage d'un nouveau cluster gratuit avec votre matchmaker d'Exemple Simple.
Vous pouvez maintenant passer à l'étape suivante.
2. Explorer la Configuration
Règles uniques pour le jeu multijoueur de survie
Les lobbies personnalisés (lobbies privés, niveaux sandbox) sont une option très populaire pour les jeux multijoueurs sur canapé, mais aussi pour tester de nouvelles fonctionnalités dans des jeux compétitifs ou coopératifs avant leur entrée dans les modes de jeu principaux. Ces jeux nécessitent généralement le moins de restrictions, mais visent à s'assurer que les joueurs peuvent Se Joindre en Groupe.
Les tickets de Remplissage peuvent utiliser les profils de Lobby Personnalisé pour inviter des 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 soutenir les 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 modifications en interprétant le format major.minor.patch :
les versions
majorincluent des modifications qui cassent la compatibilité et nécessitent une révision de l'intégration,les versions
minorincluent des améliorations substantielles compatibles avec les versions antérieures,les versions
patchincluent des corrections de bogues 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 s'assurer que les plantages clients inattendus ou les tickets abandonnés ne s'attardent pas et ne consomment pas vos ressources de matchmaker, les tickets seront annulés après ticket_expiration_period faisant passer leur statut à CANCELLED 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 de l'Appli avec une quantité prédéfinie de ressources CPU et mémoire (RAM) requises.
Règles de Matchmaking dans le jeu de règles initial doit être respecté pour que les joueurs soient regroupés, chacun défini 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 du Nombre de Joueurs
C'est une règle spéciale définissant combien de joueurs doivent correspondre pour initier l'attribution :
nombre_d'équipesréfère au nombre d'équipes, 1 équipe peut être utilisée pour des modes coopératifs ou tous contre tous,taille_d'équiperé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 des Latences
Utilisez cette règle pour fournir le ping le plus bas possible pour tous les joueurs. Une fois que les clients ont mesuré et soumis leur temps de trajet aller-retour (ping) contre toutes les balises disponibles, Gen2 ne considérera les matchs que dans une différence spectre spécifique dans les valeurs de ping, mesurées contre Balises Ping. Cela représente une solution « douce » pour partager votre base de joueurs, permettant le matchmaking avec des régions voisines, améliorant ainsi la vitesse des matchs pour les régions moins peuplées. Utilisez max_latencypour empêcher l'association avec des joueurs éloignés.
Vous pouvez maintenant passer à l'étape suivante.
Notre exemple de balises ci-dessus avec "difference": 50, "max_latency": 200 initialement :
Alice et Bob s'associeront, car Pékin est éliminé (>200) et 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 seront pas associés, car | C-D | > 50 pour la Balise 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. Vérifier 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 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 le dernier temps de mise à jour.
Taille correspond à l'un de nos Niveaux de Tarification.
URL de l'API sera utilisée par les Clients de Jeu et les Serveurs de Jeu pour communiquer avec Gen2.
URL de Swagger est une interface graphique pratique de spécification openAPI que nous fournissons pour explorer le schéma de l'API.
Token d'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 à l'aide de l'API, vous aurez besoin de l'URL de Swagger, l'URL de l'API et du Token d'Auth.
Vous pouvez maintenant passer à l'étape suivante.
4. Tester l'API Tickets
D'abord, ouvrez votre URL de Swagger pour inspecter votre schéma openAPI dans l'interface graphique de 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'lectionnez Réglages d'Importation et changez le paramètre Génération de Paramètres à 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 Autorisation et choisissez :
Type d'autorisation - Clé API,
Clé - «Authorization»
Valeur - insérez votre valeur AuthToken ici,
Ajouter à - En-Tête.
Appuyez sur (CTRL/CMD+S) ou sur 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, ouvrant un nouvel onglet.
Sélectionnez l'onglet Corps pour prévisualiser votre demande de ticket de joueur:
remarquez que le player_ip est défini sur null - cela utilisera l'adresse IP automatiquement ajoutée à votre demande (voir Intégration Serveur à Serveur pour des alternatives),
profilefait référence à vos Profils de Matchmaking,attributesincluent les valeurs pour vos règles de matchmaker, dans ce cas pour la règlelatencies,règle
player_countest 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 de joueur :
idest votre ID de ticket unique de matchmaking, gardez-le enregistré pour vérifier votre ticket plus tard,profileconfirmant le choix des Profils de Matchmaking,group_idest un identifiant de groupe unique attribué à chaque ticket, un joueur solo est représenté comme un groupe de 1,voir Se Joindre en 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é associé ou attribué à un serveur,created_atfournit des informations sur le moment de la 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 enSEARCHING(voir Processus de Matchmaking pour plus de détails).
Créez un deuxième ticket en appuyant de nouveau sur Envoyer, afin 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'attribution mise à jour de votre ticket de joueur :
le statut est passé à
MATCH_FOUNDd'abord, tout en gardantassignmentdéfini surnullpour indiquer que les joueurs ont été associés et qu'un serveur est en cours d'attribution,

Cliquez de nouveau sur Envoyer pour vérifier votre ticket, et examinez l'attribution mise à jour de votre ticket de joueur :
le statut a changé pour
HOST_ASSIGNEDavecassignmentcontenant des détails sur le serveur assigné.
Inspectez votre nouveau déploiement dans notre tableau de bord :
remarquez que chaque déploiement est étiqueté avec tous les IDs 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 avez vérifié que vous êtes en mesure de vous connecter à votre déploiement sans problèmes et que vous avez terminé vos 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égrer le Matchmaker dans votre Jeu
Le matchmaking d'Edgegap s'intègre :
avec le Client de Jeu, pour gérer les Tickets Joueurs,
avec le Serveur de Jeu, pour :
traiter les préférences des joueurs transmises via leurs tickets,
facultativement pour prendre en charge le Remplissage pour ajouter ou remplacer les joueurs après le début.
Pour le Client de Jeu, nous recommandons de fournir des mises à jour de statut de ticket tout au long du Processus de Matchmaking aux joueurs via une interface utilisateur en jeu pour la meilleure expérience possible. Voir :
Edgegap - Unity Gen2 Matchmaking SDK,
importer l'exemple simple et personnalisez-le selon vos besoins,
Betide Studio - Kit d'Intégration d'Edgegap pour Unreal Engine,
télécharger le projet exemple et personnalisez-le selon vos besoins.
Dans le Client de Jeu, assurez-vous de traiter les erreurs non réessayables :
HTTP 404 Non Trouvé- le ticket a été supprimé,HTTP 500 Erreur Interne du Serveur- interruption de service temporaire.
Dans le Serveur de Jeu, traitez les préférences des joueurs et le contexte initial du serveur. Aucune intégration de l'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 Appli) pour les paramètres spécifiques à la version (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.
Une fois les joueurs connectés, le Serveur de Jeu et les Clients de Jeu lancent une scène de chargement pour effectuer des étapes de synchronisation (par exemple, sélectionner et charger une carte/une scène/un niveau). Nous recommandons une scène 3D complète, une interface utilisateur sociale de type hall ou un écran de chargement avec une barre de progression, pour indiquer l’avancement de l'initialisation.
Une fois les Clients de Jeu entièrement chargés, les joueurs chargent/voyagent vers la scène principale du jeu.
En option, le Serveur de Jeu peut créer et gérer le Remplissage et la capacité des joueurs (ajouter ou remplacer les joueurs qui partent).
Assurez-vous que votre déploiement sera arrêté correctement en utilisant l'URL DELETE 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 complété l'intégration du Matchmaker Edgegap ! Si vous souhaitez en savoir plus, lisez tout à ce sujet dans notre Centre d'Apprentissage.
Écrit par
l'équipe Edgegap








