
Comment ajouter un système de matchmaking à un jeu de Battle Royale
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, Battle Royale.
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 du processus.
Lorsque votre jeu est en ligne, comme notre système de matchmaking est entièrement géré, vous n'avez pas besoin de gérer l'infrastructure, les bugs, les pannes, la scalabilité ou la gestion de la 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 Battle Royale
-> Cet article est basé sur la documentation Matchmaking. Si vous rencontrez des problèmes ou des divergences, assurez-vous de vous référer au guide original, car ils sont plus fréquemment mis à jour.
L'exemple suivant vous aidera à tester le flux principal des matchmaking joueurs, à savoir :
Création de l'instance du matchmaker sur le Cluster d'Hébergement partagé,
Définition des règles et paramètres dans votre Configuration de matchmaker,
Et enfin, test du flux de joueurs et gestion des Tickets de 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 BR. Voilà, vous avez (techniquement) déjà parcouru la moitié du chemin ! Vous n'auriez 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. L'étape 2 (« Explorer la Configuration ») est notre guide « comment lire » qui explique en détail la fonction de chaque Matchmaking fonctions des règles (« Explorer la Configuration »).
L'étape 3 (« Examiner les Détails de l'Instance ») couvre votre matchmaker personnel et spécifique pour s'assurer qu'il est déployé et fonctionne avec la conception de votre jeu.
L'étape 4, comme son nom l'indique (« 4. Tester l'API des Tickets »), est entièrement consacrée au test de vos demandes de matchmaking envoyées par les joueurs reçues par le matchmaker, appelées tickets.
L'étape 5 (« Intégrer le Matchmaking dans votre Jeu ») met en évidence comment intégrer le matchmaker au sein de votre projet moteur.
Si vous avez des défis de dépannage, notre Centre d'Apprentissage approfondi propose des conseils supplémentaires pour la résolution des problèmes.
1. Configurer le Niveau Gratuit
Inscrivez-vous pour obtenir votre compte Edgegap gratuit, et naviguez vers la page du tableau de bord du Matchmaker.
De là, cliquez d'abord sur Créer un Matchmaker puis entrez :
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 ci-dessous au format configuration JSON pour votre jeu BR :
(petit rappel : assurez-vous de changer le nom et la version de l'application pour correspondre à votre Application et Versions !)
Si aucune erreur de validation ne s'affiche, cliquez sur Créer et Démarrer et attendez que le processus soit terminé. 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 Uniques du Jeu BR
Spécifiquement pour les jeux Battle Royale, vous pouvez définir plusieurs Profils de Matchmaking pou règles et paramètres spécifiques aux modes de jeu :
restreindre le rang dans une différence entre deux joueurs pour des jeux plus décontractés,
restreindre la différence de rang pour n'autoriser que des adversaires avec le même rang pour les jeux classés,
permettre aux joueurs de fournir leurs préférences de carte et choisir une carte convenant à tout le monde,
ajouter UI de Sélection de Hub pour restreindre les adversaires aux Balises de Ping spécifiques,
restreindre latence de matchmaking à un seuil maximal pour éviter d'apparier des joueurs éloignés,
restreindre latence de matchmaking à une différence maximale pour maximiser l'équité du ping,
attribuer plus de CPU ou de mémoire en utilisant différentes Versions d’Applications lorsque plus de joueurs sont autorisés,
Rejoindre en Groupe pour des lobbies préformés ou pour remplir des équipes sans dépasser les tailles d'équipe.
Commencez avec les conditions idéales, et élargissez les restrictions pour assurer des matchs rapides :
détendez lentement les restrictions de latence au fil du temps pour trouver davantage de joueurs,
augmentez lentement la différence de rang autorisée pour trouver davantage de joueurs,
augmentez le temps entre les expansions pour les plus hauts rangs (défis), car moins de joueurs sont disponibles.
Créez des tickets avec un rang plus élevé pour des matchs de promotion, afin d’affronter des adversaires plus coriaces.
Définissez des profils de tricheurs séparés pour s'assurer que les tricheurs signalés ou les joueurs avec un grand nombre de rapports de modération n'impactent pas négativement l'expérience des joueurs légitimes dans les matchs classés.
Versionnage Sémantique
Chaque nouvelle version utilise le Versionnage Sémantique pour communiquer clairement l'impact des changements en interprétant le format major.minor.patch :
les versions
majorincluent des changements de rupture et nécessitent une révision d'intégration,les versions
minorincluent des améliorations substantielles rétrocompatibles,les versions
patchincluent des corrections de bugs et quelques améliorations mineures.
Certaines déploiements peuvent entraîner des Erreurs. Nous essayons 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 plantages inattendus du client ou les tickets abandonnés ne perdurent pas et ne monopolisent pas vos ressources de matchmaker, les tickets seront annulés après ticket_expiration_period changeant leur statut à 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 des Versions d’Applications avec une quantité prédéfinie de ressources CPU et mémoire (RAM) nécessaires.
Règles de Matchmaking dans l'ensemble de règles initial doivent être remplies pour que les joueurs soient regroupés ensemble, chacun défini par trois propriétés :
nom de votre choix, par ex. -
taille du match,type de règle, également connu sous le nom d'opérateur, par ex. -
nombre_joueurs,et enfin les attributs de l'opérateur, par ex.
nombre d'équipesoutaille de l'équipe.
Règle de Nombre de Joueurs
C'est une règle spéciale définissant combien de joueurs doivent correspondre pour débuter l'affectation :
nombre d'équipesse réfère au nombre d'équipes, 1 équipe peut être utilisée pour les modes coopératifs ou en solo,taille de l'é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ègles de Latence
Utilisez cette règle pour offrir le ping le plus bas possible à tous les joueurs. Une fois que les clients ont mesuré et soumis leur temps aller-retour (ping) contre toutes les balises disponibles, Gen2 ne considérera que les matchs dans une différence de valeurs de ping, mesurée contre les Balises de Ping. Cela présente une solution « douce » pour diviser votre base de joueurs, permettant de matcher avec des régions voisines, améliorant particulièrement la vitesse des matchs pour les régions moins peuplées. Utilisez latence_maxpour éviter de matcher des joueurs situés très loin.
Vous pouvez maintenant passer à l'étape suivante.
Notre exemple de règle balises ci-dessus avec "différence": 50, "latence_max": 200 initialement :
Alice et Bob matcheront, car Beijing est écarté (>200) et le reste est dans | 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 matcheront pas, car | C-D | > 50 pour la Balise de 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 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 dans notre tableau de bord une fois initialisé :

Statut indique la santé du service, peut être EN LIGNE, HORS LIGNE ou ERREUR.
Identifiant aide le personnel d'Edgegap à retrouver rapidement votre matchmaker si vous avez besoin d'aide au dépannage.
Démarré à peut être utile pour suivre l'heure de la dernière mise à jour.
Taille correspond à l'un de nos Paliers Tarifaires.
URL de l'API sera utilisée par les Clients de Jeu et les Serveurs de Jeu pour communiquer avec Gen2.
URL Swagger est une spécification openAPI GUI facile à utiliser que nous fournissons pour explorer le schéma API.
Jeton 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 Swagger, de l'URL API et du Jeton d'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 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 Afficher les Paramètres d'Importation et changez le paramètre Génération de Paramètres en Exemple.
Confirmez l’importation, cela se traduira par 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 Auth - Clé API,
Clé - «Autorisation»
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 afficher votre demande de ticket de joueur :
notez que player_ip est défini sur null - cela va entraîner 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 des valeurs pour vos règles de matchmaker, dans ce cas pour lalatenciesrule,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 joueur :
idest votre identifiant unique de ticket de matchmaking, conservez-le enregistré pour vérifier votre ticket plus tard,profilconfirme le choix de Profils de Matchmaking,group_idest un identifiant de groupe unique attribué à chaque ticket, un joueur en solo est représenté comme un groupe de 1,voir Rejoindre en Groupe pour le matchmaking avec vos amis ou lobbies,
player_ipest l'adresse IP publique résolue du joueur, quel que soit le mode d'identification utilisé,assignmentest configuré sur null pour indiquer que le ticket n'a pas encore été associé ou assigné à un serveur,created_atfournit des informations sur le moment où le ticket de joueur a été créé pour l'utilisation de l'interface utilisateur de jeu,statutindique le statut actuel du ticket, tous les tickets commencent àEN RECHERCHE(voir Processus de Matchmaking pour plus de détails).
Créez un second ticket en cliquant de nouveau sur Envoyer pour que nos deux joueurs s'apparient 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 à partir de la réponse dans l'étape précédente et cliquez sur Envoyer.

Examinez l'affectation mise à jour pour votre ticket joueur :
le statut change en
MATCH_TROUVÉd'abord, tout en maintenantassignmentsurnullpour indiquer que les joueurs ont été appariés et qu'un serveur est en cours d'affectation,

Cliquez sur Envoyer de nouveau pour vérifier votre ticket, et examinez l'affectation mise à jour pour votre ticket joueur :
le statut change en
HÔTE_ASSIGNÉavecassignmentcontenant les détails du serveur assigné.
Inspectez votre nouveau déploiement dans notre tableau de bord :
notez que chaque déploiement est étiqueté avec tous les identifiants de tickets et le profil pour une traçabilité accrue.

Essayez de vous connecter à partir de votre client de jeu au serveur assigné.
Une fois que vous avez vérifié que vous pouvez vous connecter à votre déploiement sans problème et que vous avez terminé vos tests, 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
L'intégration d'Edgegap de matchmaking :
avec le Client de Jeu, pour gérer les Tickets de Joueurs,
avec le Serveur de Jeu, pour :
traiter les préférences des joueurs transmises à travers leurs tickets,
optionnellement pour prendre en charge Remplissage pour ajouter ou remplacer des joueurs après le lancement.
Pour dans Client de Jeu, nous recommandons de fournir des mises à jour du statut du ticket tout au long du Processus de Matchmaking aux joueurs en utilisant l'interface utilisateur dans le jeu pour la meilleure expérience de jeu. Voir :
Edgegap - SDK Matchmaking Unity Gen2,
importer un exemple simple et personnaliser selon vos besoins,
Betide Studio - Kit d'Intégration Edgegap pour 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- panne de service temporaire.
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 de l'Application) 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 obtenir des informations sur le déploiement, telles que l'adresse IP, la localisation, 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 UI 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 principale de jeu.
En option, le Serveur de Jeu peut créer et gérer Remplissage et la capacité des joueurs (ajouter ou remplacer des joueurs qui partent).
Assurez-vous que votre déploiement sera correctement arrêté 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








