
Comment ajouter un système de matchmaking à un jeu multijoueur de tir à la troisième personne (TPS)
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 de tir à la troisième personne.
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 simple et si besoin, nos guides d'intégration vous accompagnent à chaque étape.
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, l'évolutivité ou la gestion de bases 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 tir à la troisième personne (TPS)
-> Cet article est basé sur la documentation de 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 de matchmaking pour les joueurs, à savoir :
Créer l'instance du matchmaker sur le Cluster d'Hébergement partagé,
Définir les règles et les paramètres dans votre Configuration de matchmaker,
Et enfin, tester le flux de joueurs et gérer les Tickets de Joueurs avec notre API.
Il y a cinq étapes pour intégrer notre matchmaker à votre jeu :
La première étape est de créer un compte et d'utiliser notre exemple de jeu TPS. Voilà, vous avez (techniquement) fait la moitié du chemin ! Il vous suffirait 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, et il est donc fortement recommandé d'adapter les règles ci-dessus à votre jeu. L'étape 2 (« Explorer la Configuration ») est notre « comment lire » qui détaille le fonctionnement de chaque fonction des règles de Matchmaking (« 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 déployé et fonctionne avec le design de votre jeu.
L'étape 4, comme son nom l'indique (« 4. Tester l'API de Ticket »), consiste à tester que vos demandes de matchmaking des joueurs 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 le matchmaker dans le projet de votre moteur.
Si vous rencontrez des difficultés de dépannage, notre Centre d'Apprentissage approfondi contient des conseils supplémentaires de dépannage.
1. Configurer le Palier Gratuit
Inscrivez-vous pour votre compte Edgegap gratuit, et allez à la page du tableau de bord Matchmaker.
De là, cliquez d'abord sur Créer un Matchmaker ensuite, 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 comme configuration JSON ci-dessous pour votre jeu TPS :
(Rappel gentil de bien vouloir vous assurer de changer le nom de l'application et laversion pour correspondre à votre Application et Versions !)
S'il n'apparaît pas d'erreurs de validation, appuyez 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 Simple Example.
Vous pouvez maintenant passer à l'étape suivante.
2. Explorer la Configuration
Règles Uniques pour Jeu TPS
Spécifiquement pour les jeux de tir à la troisième personne, vous pouvez définir de multiples Profils de Matchmaking pour des règles et des paramètres spécifiques aux modes de jeu :
restreindre le rang dans une différence entre deux joueurs pour les jeux plus décontractés,
restreindre la différence de rang pour n'autoriser que les adversaires du même rang pour les jeux classés,
permettre aux joueurs de fournir leurs préférences de carte et de choisir une carte convenant à tous,
ajouter UI de Sélection du Hub pour restreindre les adversaires aux Balises de Ping spécifiées,
restreindre latence de matchmaking à un seuil maximum pour éviter de mettre en correspondance des joueurs éloignés,
restreindre latence de matchmaking à une différence maximum pour maximiser l'équité des pings,
allouer plus de CPU ou de mémoire à l'aide de différentes Versions d'App lorsque plus de joueurs sont autorisés,
Rejoindre en Groupe pour des lobbies préfabriqués ou remplir des équipes sans dépasser les tailles d'équipe.
Commencez avec les conditions idéales, et élargissez les restrictions pour garantir des correspondances rapides :
détendez lentement les restrictions de latence au fil du temps pour trouver plus de joueurs,
augmentez lentement la différence de rang autorisée pour trouver plus de joueurs,
augmentez le temps entre les expansions pour les rangs les plus élevés (contestants), car moins de joueurs sont disponibles.
Créez des tickets avec un rang plus élevé pour des matchs de promotion, pour correspondre à des adversaires plus coriaces.
Définir 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'affectent pas négativement l'expérience des joueurs légitimes dans les matchs classés.
Versionnage Sémantique
Chaque nouvelle version utilise Versionnage Sémantique pour communiquer clairement l'impact des changements en interprétant le format major.minor.patch :
les versions
majeuresincluent des changements de rupture et nécessitent un examen de l'intégration,les versions
mineuresincluent des améliorations substantielles rétrocompatibles,les versions
correctivesincluent des corrections de bugs 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 client).
Pour s'assurer que les plantages clients imprévus ou les tickets abandonnés ne persistent pas et n'occupent pas vos ressources de matchmaker, les tickets seront annulés après ticket_expiration_period entraînant un changement de statut à ANNULÉ et ensuite 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 d'App 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 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 appelé opérateur, par ex. -
nombre_de_joueurs,et enfin attributs d'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 une attribution :
nombre_d'équipesse réfère au nombre d'équipes, 1 équipe peut être utilisée pour des modes coopératifs ou chacun pour soi,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 "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 Latences
Utilisez cette règle pour fournir la latence la plus faible possible pour tous les joueurs. Une fois que les clients mesurent et soumettent leur temps aller-retour (ping) contre toutes les balises disponibles, Gen2 ne prendra en compte que les correspondances dans une différence spécifique dans les valeurs de ping, mesurée contre Balises de Ping. Cela présente une solution « douce » pour diviser votre base de joueurs, permettant de faire correspondre avec des régions voisines, améliorant surtout la vitesse des matchs pour les régions moins peuplées. Utilisez latence_maximumpour éviter de faire correspondre des joueurs situés loin.
Vous pouvez maintenant passer à l'étape suivante.
Notre règle d'balises exemple ci-dessus avec "différence": 50, "latence_maximum": 200 initialement :
Alice et Bob se correspondront, car Pékin est supprimé (>200) et le reste est dans les limites 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 se correspondront pas, car | C-D | > 50 pour la Balise 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 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 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 résoudre un problème.
Commencé à peut être utile pour suivre l'heure de la dernière mise à jour.
Taille correspond à l'un de nos Niveaux de Tarification.
URL de l'API sera utilisé par les Clients de Jeu et les Serveurs de Jeu pour communiquer avec Gen2.
URL Swagger est une interface graphique openAPI que nous fournissons pour explorer le schéma API.
Jeton 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 en utilisant l'API, vous aurez besoin de l'URL Swagger, de l'URL de l'API et du Jeton 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 graphique swagger
Cliquez sur l'URL /...swagger.json sous le titre “Matchmaker” pour ouvrir le schéma JSON brut :

Enregistrez cette page comme 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é,
sélectionnez Voir les Paramètres Importés et changez le paramètre Génération de Paramètres à Exemple.
Confirmez l'importation, cela entraînera une nouvelle collection apparaissant 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 Sauvegarder 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 requête de ticket de joueur :
notez ip_joueur défini à null- cela provoquera l'utilisation de l'adresse IP automatiquement ajoutée à votre demande (voir Intégration Serveur à Serveur pour des alternatives),
profilse réfère à vos Profils de Matchmaking,attributscomprennent des valeurs pour vos règles du matchmaker, dans ce cas pour lalatencesrègle,la règle
nombre_de_joueursest la seule règle qui ne nécessite aucun attribut dans les tickets de joueurs.
NOTE : Assurez-vous de vous référer à la configuration d'importation Swagger de l'échantillon.
Cliquez sur Envoyer et examinez la réponse à votre requête de ticket de joueur :
idest votre identifiant unique de ticket de matchmaking, gardez cet élément en sécurité pour vérifier votre ticket plus tard,profilconfirmant le choix de Profils de Matchmaking,groupe_idest un identifiant de groupe unique attribué à chaque ticket, un joueur solo est représenté comme un groupe de 1,voir Rejoindre en Groupe pour du matchmaking avec vos amis ou des lobbies,
ip_joueurest l'adresse IP publique résolue du joueur, quelle que soit la méthode d'identification utilisée,attributionest défini à null pour indiquer que le ticket n'a pas encore été mis en correspondance ou attribué à un serveur,créé_àfournit des informations sur le moment où le ticket de joueur a été créé pour l'utilisation de l'interface utilisateur du jeu,statutindique le statut actuel du ticket, tous les tickets commencent enRECHERCHE(voir Processus de Matchmaking pour les détails).
Créez un deuxième ticket en appuyant sur Envoyer à nouveau, afin que nos deux joueurs correspondent et qu'un serveur soit démarré.
Dans votre collection Matchmaker, sélectionnez {ticketId} et Lire un ticket de matchmaking.
Saisissez l'ID du ticket depuis la réponse à l'étape précédente et cliquez sur Envoyer.

Examinez l'attribution mise à jour pour votre ticket de joueur :
le statut a changé pour
MATCH_TROUVÉen premier, tout en gardantattributionfixé ànullpour indiquer que des joueurs ont été mis en correspondance et qu'un serveur est en cours d'attribution,

Cliquez sur Envoyer à nouveau pour vérifier votre ticket, et examinez l'attribution mise à jour pour votre ticket de joueur :
le statut a changé pour
HÔTE_ATTRIBUÉavecattributionincluant les détails du serveur attribué.
Inspectez votre nouveau déploiement dans notre tableau de bord :
notez que chaque déploiement est étiqueté avec tous les IDs de tickets et le profil pour une traçabilité accrue.

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ème et avez terminé les 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 Edgegap s'intègre :
avec Client de Jeu pour gérer Tickets de Joueurs,
avec Serveur de Jeu pour :
traiter les préférences de joueur transmises par leurs tickets,
facultativement pour supporter le Remplissage pour ajouter ou remplacer des joueurs après le début.
Pour dans Client de Jeu, nous recommandons de fournir des mises à jour de statut 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 - SDK de Matchmaking Unity Gen2,
importer un exemple simple et personnaliser à vos besoins,
Betide Studio - Kit d'Intégration Edgegap Unreal Engine,
télécharger le projet exemple et personnaliser à vos besoins.
Dans Client de Jeu, assurez-vous de gérer les erreurs non-réessayables :
HTTP 404 Pas Trouvé- le ticket a été supprimé,HTTP 500 Erreur Interne du Serveur- interruption de service temporaire.
Dans Serveur de Jeu, traitez les préférences de 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 initial des joueurs.
Lire Variables d'Environnement Injectées (App Versions) pour les paramètres et paramètres spécifiques à la version (capacité des joueurs) et les secrets.
Lire Variables d'Environnement Injectées (Déploiement) pour des 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 démarrent une scène de chargement pour effectuer des é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 complètement chargés, les joueurs chargent/voyagent vers la scène principale du jeu.
Facultativement, Serveur de Jeu peut créer et gérer du Remplissage 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 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.








