
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 du matchmaking. Si vous rencontrez des problèmes ou des incohérences, veuillez vous assurer de vous référer au guide original, car il est régulièrement mis à jour.
L'exemple suivant vous aidera à tester le flux de joueurs matchmaking principal, à savoir :
Créer l'instance du matchmaker sur le Cluster d'Hébergement partagé,
Définir des règles et des paramètres dans la configuration de votre matchmaker,
Et enfin, tester le flux des joueurs et gérer les Tickets Joueurs avec notre API.
Il y a Cinq étapes pour mettre en œuvre 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) presque à mi-chemin ! Vous n'aurez qu'à intégrer le matchmaker dans votre jeu (voir étape 5).
Maintenant, vous ne devez 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 règles de matchmaking (“Explorer la configuration”).
L'étape 3 (“Réviser les détails de l'instance”) couvre votre matchmaker personnel et spécifique pour s'assurer qu'il est déployé et fonctionne avec le design de votre jeu.
L'étape 4, comme son nom l'indique (“4. Tester l'API des tickets”), concerne le test de vos demandes de matchmaking de joueurs reçues par le matchmaker, appelées tickets.
L'étape 5 (“Intégrer le matchmaking dans votre jeu”) met en lumière comment intégrer le matchmaker au sein du projet de votre moteur.
Si vous avez des problèmes de dépannage, notre Centre d'apprentissage approfondi contient des conseils supplémentaires pour le dépannage.
1. Configuration de la version gratuite
Inscrivez-vous pour obtenir votre compte Edgegap gratuit, et naviguez vers la page du tableau de bord du matchmaker.
À partir de là, cliquez d'abord sur Créer le matchmaker ensuite saisissez :
Un nom pour votre matchmaker – qui est uniquement pour votre propre référence, par ex.
quickstart-dev
,Ensuite, téléchargez l'exemple simple suivant en tant que configuration JSON ci-dessous pour votre jeu Hypercasual :
(petit rappel pour s'assurer de changer le nom
de l'application et le version
pour correspondre à votre 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 matchmaker d'exemple simple.
Vous pouvez maintenant passer à l'étape suivante.
2. Explorer la configuration
Règles de jeu multijoueur hypercasual uniques
Avec un nombre d'équipes de 1 et une taille d'équipe de 50, nécessitant 50 joueurs par jeu (tous les joueurs sont dans la même équipe).
Spécifiquement pour les jeux sociaux, vous pouvez définir Profils de matchmaking pour les règles et paramètres spécifiques aux modes de jeu :
laisser les joueurs fournir leurs préférences de mode de jeu et choisir un mode adapté à tous,
Rejoindre en tant que groupe pour les lobbies pré-créés ou pour compléter les équipes sans dépasser la taille des équipes,
ajouter 🗺️ Interface de sélection de région pour restreindre les adversaires à des régions spécifiées,
permettre une latence plus élevée pour privilégier des matchs plus rapides avec plus de joueurs,
allouer plus de CPU ou de mémoire en utilisant différentes 🏷️ Versions de l'application lorsque plus de joueurs sont autorisés.
Élargir les restrictions pour garantir des matchs rapides :
détendre rapidement les restrictions de latence pour trouver plus de joueurs,
réduire lentement la taille des équipes pour nécessiter moins de joueurs et commencer le jeu plus tôt,
en option, vous pouvez laisser le serveur remplir les places vides avec des joueurs IA,
si aucun coéquipier n'est trouvé, lancez le jeu en solo et utilisez Backfill pour ajouter des joueurs plus tard,
cela permettra aux joueurs de rejoindre des matchs existants plutôt que de nouveaux pour maximiser l'interaction sociale.
Versionnage sémantique
À mesure que nous publions des mises à jour pour le matchmaker, chaque nouvelle version utilise le versionnage sémantique pour communiquer clairement l'impact des changements en interprétant le format majeur.minor.patch
:
Les versions
majeur
incluent des changements majeurs et nécessitent une révision de l'intégration,Les versions
mineur
incluent des améliorations substantielles rétrocompatibles,Les versions
patch
incluent des corrections de bogues et des améliorations mineures.
Certains 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 garantir que les pannes inattendues du client ou les tickets abandonnés ne trainent pas et n'occupent pas vos ressources de matchmaking, les tickets seront annulés après ticket_expiration_period
modifiant leur statut en ANNULÉ
et ensuite supprimés définitivement 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 des Versions d'application avec une quantité pré-définie de CPU et de ressources mémoire (RAM) requises.
Les règles de matchmaking dans l'ensemble de règles initiale doivent être respectées pour que les joueurs soient regroupés, chacune définie par trois propriétés :
nom de votre choix, par ex. -
taille du match
,type de règle, également connu comme opérateur, par ex. -
nombre_de_joueurs
,et enfin, les attributs de l'opérateur, par ex.
nombre_d'équipes
outaille_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'équipes
fait référence au nombre d'équipes, 1 équipe peut être utilisée pour des modes coopératifs ou de tous contre tous,taille_d'équipe
fait 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 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 réponse (ping) par rapport à tous les beacons disponibles, Gen2 ne considérera que les matchs dans une différence
spécifique des valeurs de ping, mesurée par rapport aux Beacons Ping. Cela représente une solution "douce" pour diviser votre base de joueurs, permettant de se synchroniser avec des régions voisines, améliorant surtout la vitesse des matchs pour les régions moins peuplées. Utilisez max_latency
pour empêcher le matchmaking avec des joueurs situés loin.
Vous pouvez maintenant passer à l'étape suivante.
Notre exemple règles des beacons
ci-dessus avec "différence": 50, "max_latency": 200
initialement :
Alice et Bob s'associeront, car Pékin est écarté (>200) et le reste est à l'intérieur de | 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 s'associeront pas, car | C-D | > 50 pour le beacon 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 latence" 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
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 d'Edgegap à trouver rapidement votre matchmaker si vous avez besoin d'aide pour le dépannage.
Démarré à peut être utile pour retrouver la dernière heure de mise à jour.
Taille correspond à l'un de nos Niveaux de tarification.
API URL sera utilisé par les clients de jeu et les serveurs de jeu pour communiquer avec Gen2.
URL de Swagger est une interface utilisateur pratique pour spécification 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 le serveur de jeu pour l'authentification.
Pour tester votre nouveau matchmaker en utilisant l'API, vous aurez besoin de l'URL de Swagger, de l'API URL et du jeton d'authentification.
Vous pouvez maintenant passer à l'étape suivante.
4. Tester l'API de tickets
Tout d'abord, ouvrez votre URL de Swagger pour inspecter votre schéma openAPI dans l'interface utilisateur 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
de l'étape précédente :
gardez Postman Collection séléctionné,
séléctionnez Voir les paramètres 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'auth - Clé API,
Clé - “Authorization”
Valeur - insérez ici votre Jeton d'Auth valeur,
Ajouter à - Header.
Pressez (CTRL/CMD+S
) ou l'icône de sauvegarde pour sauvegarder les changements. Le point orange dans votre onglet Postman devrait disparaître.
Dans votre collection de 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 :
remarquer player_ip
défini à null
- cela entraînera l'utilisation de l'adresse IP automatiquement ajoutée à votre demande (voir Intégration Serveur à Serveur pour des alternatives),
profil
fait référence à vos Profils de Matchmaking,attributs
incluent des valeurs pour vos règles de matchmaker, dans ce cas pour larègle de latence
,la règle
nombre_de_joueurs
est la seule règle qui ne nécessite aucun attribut dans les tickets des joueurs.
NOTE: Assurez-vous de vous référer à la configuration d'importation de l'échantillon de Swagger.
Cliquez sur Envoyer et examinez la réponse à votre demande de ticket joueur :
id
est votre ID unique de ticket de matchmaking, gardez ceci sauvegardé pour vérifier votre ticket plus tard,profil
confirmant le choix des Profils de Matchmaking,group_id
est 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 lobbys,
player_ip
est l'adresse IP publique résolue du joueur, quelle que soit la méthode d'identification utilisée,assignment
est défini sur null pour indiquer que le ticket n'a pas encore été associé ou attribué à un serveur,created_at
fournit des informations sur le moment où le ticket joueur a été créé pour l'utilisation dans l'interface utilisateur du jeu,status
indique l'état actuel du ticket, tous les tickets commencent enSEARCHING
(voir Processus de matchmaking pour plus de détails).
Créez un second ticket en cliquant à nouveau sur Envoyer de sorte que nos deux joueurs s'associent et qu'un serveur soit lancé.
Dans votre collection de Matchmaker, sélectionnez {ticketId} et Lire un ticket de matchmaking.
Entrez l'ID du ticket de la réponse de l'étape précédente et cliquez sur Envoyer.

Examinez l'attribution mise à jour pour votre ticket joueur :
le statut change en
MATCH_FOUND
au début, tout en maintenantassignment
défini surnull
pour 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 examiner l'attribution mise à jour pour votre ticket joueur :
le statut change en
HOST_ASSIGNED
avecassignment
contenant les détails du serveur attribué.
Inspectez votre nouveau déploiement dans notre tableau de bord :
remarquez que chaque déploiement est étiqueté avec tous les ID de tickets et profils pour une meilleure traçabilité.

Essayez de vous connecter depuis votre client de jeu au serveur attribué.
Une fois que vous vérifiez que vous pouvez vous connecter à votre déploiement sans problèmes et que vous avez terminé les tests, Arrêtez votre déploiement pour libérer de la capacité sur votre compte pour la prochaine version.
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,
éventuellement pour supporter Backfill pour ajouter ou remplacer des joueurs après le démarrage.
Pour le Client de jeu, nous recommandons de fournir des mises à jour sur l'état des tickets tout au long du Processus de matchmaking aux joueurs en utilisant l'interface utilisateur du jeu pour la meilleure expérience joueur. Voir :
Edgegap - Unity Gen2 SDK de matchmaking,
importez un exemple simple et personnalisez-le selon vos besoins,
Betide Studio - Kit d'intégration Edgegap pour Unreal Engine,
téléchargez un projet exemple et personnalisez-le selon vos besoins.
Dans Client de jeu, assurez-vous de gérer les erreurs non récupérables :
HTTP 404 Not Found
- le ticket a été supprimé,HTTP 500 Internal Server Error
- panne temporaire du service.
Dans Serveur de jeu, traitez les préférences des joueurs et le contexte initial du serveur. Aucune intégration API n'est requise :
Lire Variables d'environnement injectées (Gen2) pour récupérer les données de matchmaking des joueurs initiales.
Lire Variables d'environnement injectées (Versions d'application) pour les paramètres spécifiques à la version, les réglages (capacité des joueurs), et les secrets.
Lire 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, Serveur de jeu et Clients de jeu commencent une scène de chargement pour effectuer des étapes de synchronisation (par ex. sélectionner et charger une carte/scène/niveau). Nous recommandons une scène 3D complète, une interface utilisateur sociale façon lobby, ou une scène de chargement avec une barre de progression, pour indiquer que l'initialisation progresse.
Une fois que les Clients de jeu sont complètement chargés, les joueurs chargent/voyagent vers la scène de jeu principale.
Éventuellement, 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 à l'aide de Injected DELETE_URL, 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
