
Découvrez comment fonctionne Edgegap
Découvrez comment fonctionne Edgegap
Comment ajouter un système de matchmaking à un jeu Roguelike multijoueur
Publié
Publié
Publié

Points Clés
Points Clés
Points Clés
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 roguelike multijoueur
-> Cet article est basé sur la documentation du Matchmaking. Si vous rencontrez des problèmes ou des divergences, veuillez vous référer au guide original, car il est mis à jour plus régulièrement.
L'exemple suivant vous aidera à tester le flux de joueurs principal du matchmaking, à savoir :
Créer l'instance du matchmaker sur le Cluster d'hébergement partagé,
Définir les règles et les paramètres dans la Configuration de votre matchmaker,
Et enfin, tester le flux de joueurs et gérer les Tickets de joueur avec notre API.
Il y a cinq étapes pour implémenter notre matchmaker dans votre jeu :
La première étape consiste à créer un compte et à utiliser notre exemple de jeu roguelike. Voilà, vous avez (techniquement) fait la moitié du chemin ! Il ne vous reste plus 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 guide de lecture 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 afin de 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 »), vise à vérifier que les demandes de matchmaking de vos joueurs, appelées tickets, sont bien reçues par le matchmaker.
L'étape 5 (« Intégrer le Matchmaking dans votre jeu ») explique comment intégrer le matchmaker dans le projet de votre moteur.
Si vous rencontrez des difficultés de dépannage, notre Centre d'apprentissage complet propose des conseils de dépannage supplémentaires.
1. Configuration de l'offre gratuite
Inscrivez-vous pour obtenir votre compte Edgegap gratuit et accédez à la page du tableau de bord du Matchmaker.
À partir de là, cliquez d'abord sur Create Matchmaker, puis saisissez :
Un nom pour votre matchmaker – qui sert uniquement de référence pour vous, par ex.
quickstart-dev,Ensuite, téléversez l'exemple simple suivant sous forme de configuration JSON ci-dessous pour votre jeu roguelike :
{ "version": "2.1.0", "inspect": true, "max_deployment_retry_count": 3, "ticket_expiration_period": "5m", "ticket_removal_period": "1m", "profiles": { "custom-lobby-example": { "application": { "name": "my-game-server", "version": "2024.01.30-16.23.00-UTC" }, "rules": { "initial": { "match_size": { "type": "player_count", "attributes": { "team_count": 1, "team_size": 4 } }, "lobby_id": { "type": "string_equality" } }, "expansions": {} } } } }
(rappel amical : assurez-vous de modifier le name et la version de l'application pour qu'ils correspondent à vos Applications et versions !)
Si aucune erreur de validation n'apparaît, cliquez sur Create and Start et attendez la fin du processus. 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 le jeu roguelike multijoueur
Les salons personnalisés (salons privés, niveaux bac à sable) sont une option très populaire pour le multijoueur local, mais aussi pour tester de nouvelles fonctionnalités dans les jeux compétitifs ou coopératifs avant leur intégration dans les modes de jeu principaux. Ces jeux nécessitent généralement le moins de restrictions possible, mais visent à garantir que les joueurs puissent Rejoindre en groupe.
Les tickets de Backfill peuvent utiliser les profils Custom Lobby pour permettre d'inviter des amis de manière fiable, tant que les tickets de Backfill sont valides.
Astuce : Ajoutez le profil
custom-lobby-exampleà votre configuration en plus de vos autres profils pour prendre en charge les salons personnalisés.
Gestion sémantique de version
À mesure que nous publions des mises à jour pour le Matchmaker, chaque nouvelle version utilise le Versionnage sémantique pour communiquer clairement l'impact des modifications en interprétant le format majeur.mineur.correctif :
les versions
majorincluent des changements majeurs incompatibles et nécessitent une révision de l'intégration,les versions
minorincluent des améliorations substantielles rétrocompatibles,les versions
patchincluent des corrections de bugs et des améliorations mineures.
Certains déploiements peuvent entraîner des erreurs. Nous tentons de résoudre ce problème en réessayant automatiquement le déploiement jusqu'à max_deployment_retry_count fois (sans confirmation du client).
Pour vous assurer que les plantages inattendus de clients ou les tickets abandonnés ne persistent pas et ne consomment pas les ressources de votre matchmaker, les tickets seront annulés après ticket_expiration_period, ce qui fait passer leur statut à CANCELLED, puis définitivement supprimés 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 de l'application avec une quantité prédéfinie de ressources processeur (CPU) et mémoire (RAM) requises.
Les Règles de Matchmaking du jeu de règles initial doivent être respectées pour que les joueurs soient regroupés, chacune étant définie par trois propriétés :
le nom de votre choix, par ex. -
match size,le type de règle, également appelé opérateur, par ex. -
player_count,et enfin les attributs de l'opérateur, par ex.
team_countouteam_size.
Règle du nombre de joueurs (Player Count)
Il s'agit d'une règle spéciale définissant le nombre de joueurs nécessaires pour déclencher l'attribution :
team_countfait référence au nombre d'équipes, 1 équipe pouvant être utilisée pour les modes coopératifs ou chacun pour soi,team_sizefait référence au nombre de joueurs par équipe.
Notre exemple simple illustre un jeu coopératif à 2 joueurs.
Veuillez noter que la règle « Player Count » est obligatoire et ne peut être définie qu'une seule fois dans vos règles de configuration initiales.
Règle des latences (Latencies)
Utilisez cette règle pour offrir le ping le plus bas possible à tous les joueurs. Dès que les clients mesurent et transmettent leur temps de trajet aller-retour (ping) par rapport à toutes les balises disponibles, Gen2 ne prendra en compte que les correspondances situées dans une plage de difference spécifique des valeurs de ping, mesurées par rapport aux Balises de ping. Cela offre une solution « douce » pour diviser votre base de joueurs, permettant des correspondances avec les régions voisines, améliorant particulièrement la vitesse de recherche de partie pour les régions moins peuplées. Utilisez max_latency pour éviter les correspondances avec des joueurs situés trop loin.
Vous pouvez maintenant passer à l'étape suivante.
Notre exemple de règle beacons ci-dessus avec "difference": 50, "max_latency": 200 initialement :
Alice et Bob seront mis en correspondance, car Pékin est ignoré (>200) et le reste se situe 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 mis en correspondance, 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
Consultez les détails de votre nouveau matchmaker dans notre tableau de bord une fois qu'il est initialisé :

Le Status indique l'état du service, qui peut être ONLINE, OFFLINE ou ERROR.
L'Identifier aide le personnel d'Edgegap à trouver rapidement votre matchmaker si vous avez besoin d'aide pour le dépannage.
Started at peut être utile pour suivre l'heure de la dernière mise à jour.
La Size correspond à l'un de nos Niveaux de tarification.
L'API URL sera utilisée par les clients et serveurs de jeu pour communiquer avec Gen2.
La Swagger URL est une interface graphique pratique de spécification openAPI que nous fournissons pour explorer le schéma de l'API.
L'Auth Token est un jeton secret unique utilisé par les clients et serveurs de jeu pour l'authentification.
Pour tester votre nouveau matchmaker à l'aide de l'API, vous aurez besoin de la Swagger URL, de l'API URL et de l'Auth Token.
Vous pouvez maintenant passer à l'étape suivante.
4. Tester l'API des tickets
Tout d'abord, ouvrez votre Swagger URL pour inspecter votre schéma openAPI dans l'interface utilisateur Swagger
Cliquez sur l'URL /...swagger.json sous le titre « Matchmaker » pour ouvrir le schéma JSON brut :

Enregistrez cette page sous forme de fichier sur votre disque (CTRL/CMD+S).
Ouvrez votre application Postman et connectez-vous à votre compte gratuit.
Importez votre fichier swagger.json de l'étape précédente :
gardez Postman Collection sélectionné,
sélectionnez View Import Settings et modifiez le paramètre Parameter generation sur Example.
Confirmez l'importation, ce qui fera apparaître une nouvelle collection dans la liste des collections sur la gauche, intitulée Matchmaker.

Affichez plus d'actions, ouvrez l'onglet Authorization et choisissez :
Auth Type - API Key,
Key - « Authorization »
Value - insérez votre valeur AuthToken ici,
Add to - Header.
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 Create a matchmaking ticket, ce qui ouvrira un nouvel onglet.
Sélectionnez l'onglet Body pour prévisualiser votre demande de ticket de joueur :
remarquez que player_ip est défini sur null - cela entraînera l'utilisation de l'adresse IP automatiquement ajoutée à votre demande (voir Intégration de serveur à serveur pour les alternatives),
profilefait référence à vos Profils de Matchmaking,attributescomprend des valeurs pour les règles de votre matchmaker, dans ce cas pour la règlelatencies,la règle
player_countest la seule règle qui ne nécessite aucun attribut dans les tickets de joueur.
REMARQUE : Assurez-vous de vous référer à la configuration d'importation Swagger de l'échantillon.
Cliquez sur Send et examinez la réponse à votre demande de ticket de joueur :
idest l'identifiant unique de votre ticket de matchmaking, conservez-le précieusement pour vérifier votre ticket ultérieurement,profileconfirme le choix des Profils de Matchmaking,group_idest un identifiant de groupe unique attribué à chaque ticket, un joueur solo étant représenté comme un groupe de 1,voir Rejoindre en groupe pour le matchmaking avec vos amis ou des salons,
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é mis en correspondance ou assigné à un serveur,created_atfournit des informations sur le moment où le ticket de joueur a été créé pour l'interface du jeu,statusindique le statut actuel du ticket, tous les tickets commençant à l'étatSEARCHING(voir Processus de Matchmaking pour plus de détails).
Créez un deuxième ticket en cliquant à nouveau sur Send, afin que nos deux joueurs soient associés et qu'un serveur soit démarré.
Dans votre collection Matchmaker, sélectionnez {ticketId} et Read a matchmaking ticket.
Saisissez l'ID de ticket obtenu dans la réponse de l'étape précédente et cliquez sur Send.

Vérifiez la nouvelle affectation pour votre ticket de joueur :
le statut est d'abord passé à
MATCH_FOUND, tout en maintenantassignmentànullpour indiquer que les joueurs ont été mis en correspondance et qu'un serveur est en cours d'attribution,

Cliquez à nouveau sur Send pour vérifier votre ticket et examiner la nouvelle attribution pour votre ticket de joueur :
le statut est passé à
HOST_ASSIGNEDavecassignmentcontenant 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 identifiants de ticket et le profil pour une meilleure traçabilité.

Essayez de vous connecter depuis 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é sur votre compte pour le prochain build.
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 de joueur,
avec le Serveur de jeu, pour :
traiter les préférences des joueurs transmises via leurs tickets,
prendre en charge éventuellement le Backfill afin d'ajouter ou de remplacer des joueurs après le démarrage.
Pour le Client de jeu, nous vous recommandons de fournir aux joueurs des mises à jour sur le statut des tickets tout au long du Processus de Matchmaking à l'aide de l'interface utilisateur en jeu pour une meilleure expérience utilisateur. Voir :
Edgegap - SDK Unity Gen2 Matchmaking,
importer l'exemple simple et le personnaliser selon vos besoins,
Betide Studio - Kit d'intégration Edgegap pour Unreal Engine,
télécharger le projet d'exemple et le personnaliser selon vos besoins.
Dans le Client de jeu, veillez à gérer les erreurs non réessayables :
HTTP 404 Not Found- le ticket a été supprimé,HTTP 500 Internal Server Error- panne temporaire du service.
Dans le Serveur de jeu, traitez les préférences des joueurs et le contexte initial du serveur. Aucune intégration d'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 de l'application) pour les paramètres spécifiques à la version, les configurations (capacité de 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, l'emplacement ou autres.
Une fois les joueurs connectés, le Serveur de jeu et les Clients de jeu lancent 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 salon ou un écran de chargement avec une barre de progression, pour indiquer que l'initialisation est en cours.
Une fois les Clients de jeu entièrement chargés, les joueurs chargent/basculent vers la scène principale du jeu.
Facultativement, le Serveur de jeu peut créer et gérer le Backfill et la capacité des joueurs (ajouter ou remplacer les joueurs qui quittent).
Assurez-vous que votre déploiement sera arrêté correctement à l'aide de l'DELETE_URL injectée, si :
aucun joueur ne rejoint la partie,
tous les joueurs ont quitté la partie,
la partie se termine correctement.
Félicitations, vous avez terminé l'intégration d'Edgegap Matchmaker ! Si vous souhaitez en savoir plus, découvrez tous les détails dans notre Centre d'apprentissage.
Comment intégrer le matchmaking à votre jeu roguelike multijoueur
-> Cet article est basé sur la documentation du Matchmaking. Si vous rencontrez des problèmes ou des divergences, veuillez vous référer au guide original, car il est mis à jour plus régulièrement.
L'exemple suivant vous aidera à tester le flux de joueurs principal du matchmaking, à savoir :
Créer l'instance du matchmaker sur le Cluster d'hébergement partagé,
Définir les règles et les paramètres dans la Configuration de votre matchmaker,
Et enfin, tester le flux de joueurs et gérer les Tickets de joueur avec notre API.
Il y a cinq étapes pour implémenter notre matchmaker dans votre jeu :
La première étape consiste à créer un compte et à utiliser notre exemple de jeu roguelike. Voilà, vous avez (techniquement) fait la moitié du chemin ! Il ne vous reste plus 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 guide de lecture 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 afin de 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 »), vise à vérifier que les demandes de matchmaking de vos joueurs, appelées tickets, sont bien reçues par le matchmaker.
L'étape 5 (« Intégrer le Matchmaking dans votre jeu ») explique comment intégrer le matchmaker dans le projet de votre moteur.
Si vous rencontrez des difficultés de dépannage, notre Centre d'apprentissage complet propose des conseils de dépannage supplémentaires.
1. Configuration de l'offre gratuite
Inscrivez-vous pour obtenir votre compte Edgegap gratuit et accédez à la page du tableau de bord du Matchmaker.
À partir de là, cliquez d'abord sur Create Matchmaker, puis saisissez :
Un nom pour votre matchmaker – qui sert uniquement de référence pour vous, par ex.
quickstart-dev,Ensuite, téléversez l'exemple simple suivant sous forme de configuration JSON ci-dessous pour votre jeu roguelike :
{ "version": "2.1.0", "inspect": true, "max_deployment_retry_count": 3, "ticket_expiration_period": "5m", "ticket_removal_period": "1m", "profiles": { "custom-lobby-example": { "application": { "name": "my-game-server", "version": "2024.01.30-16.23.00-UTC" }, "rules": { "initial": { "match_size": { "type": "player_count", "attributes": { "team_count": 1, "team_size": 4 } }, "lobby_id": { "type": "string_equality" } }, "expansions": {} } } } }
(rappel amical : assurez-vous de modifier le name et la version de l'application pour qu'ils correspondent à vos Applications et versions !)
Si aucune erreur de validation n'apparaît, cliquez sur Create and Start et attendez la fin du processus. 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 le jeu roguelike multijoueur
Les salons personnalisés (salons privés, niveaux bac à sable) sont une option très populaire pour le multijoueur local, mais aussi pour tester de nouvelles fonctionnalités dans les jeux compétitifs ou coopératifs avant leur intégration dans les modes de jeu principaux. Ces jeux nécessitent généralement le moins de restrictions possible, mais visent à garantir que les joueurs puissent Rejoindre en groupe.
Les tickets de Backfill peuvent utiliser les profils Custom Lobby pour permettre d'inviter des amis de manière fiable, tant que les tickets de Backfill sont valides.
Astuce : Ajoutez le profil
custom-lobby-exampleà votre configuration en plus de vos autres profils pour prendre en charge les salons personnalisés.
Gestion sémantique de version
À mesure que nous publions des mises à jour pour le Matchmaker, chaque nouvelle version utilise le Versionnage sémantique pour communiquer clairement l'impact des modifications en interprétant le format majeur.mineur.correctif :
les versions
majorincluent des changements majeurs incompatibles et nécessitent une révision de l'intégration,les versions
minorincluent des améliorations substantielles rétrocompatibles,les versions
patchincluent des corrections de bugs et des améliorations mineures.
Certains déploiements peuvent entraîner des erreurs. Nous tentons de résoudre ce problème en réessayant automatiquement le déploiement jusqu'à max_deployment_retry_count fois (sans confirmation du client).
Pour vous assurer que les plantages inattendus de clients ou les tickets abandonnés ne persistent pas et ne consomment pas les ressources de votre matchmaker, les tickets seront annulés après ticket_expiration_period, ce qui fait passer leur statut à CANCELLED, puis définitivement supprimés 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 de l'application avec une quantité prédéfinie de ressources processeur (CPU) et mémoire (RAM) requises.
Les Règles de Matchmaking du jeu de règles initial doivent être respectées pour que les joueurs soient regroupés, chacune étant définie par trois propriétés :
le nom de votre choix, par ex. -
match size,le type de règle, également appelé opérateur, par ex. -
player_count,et enfin les attributs de l'opérateur, par ex.
team_countouteam_size.
Règle du nombre de joueurs (Player Count)
Il s'agit d'une règle spéciale définissant le nombre de joueurs nécessaires pour déclencher l'attribution :
team_countfait référence au nombre d'équipes, 1 équipe pouvant être utilisée pour les modes coopératifs ou chacun pour soi,team_sizefait référence au nombre de joueurs par équipe.
Notre exemple simple illustre un jeu coopératif à 2 joueurs.
Veuillez noter que la règle « Player Count » est obligatoire et ne peut être définie qu'une seule fois dans vos règles de configuration initiales.
Règle des latences (Latencies)
Utilisez cette règle pour offrir le ping le plus bas possible à tous les joueurs. Dès que les clients mesurent et transmettent leur temps de trajet aller-retour (ping) par rapport à toutes les balises disponibles, Gen2 ne prendra en compte que les correspondances situées dans une plage de difference spécifique des valeurs de ping, mesurées par rapport aux Balises de ping. Cela offre une solution « douce » pour diviser votre base de joueurs, permettant des correspondances avec les régions voisines, améliorant particulièrement la vitesse de recherche de partie pour les régions moins peuplées. Utilisez max_latency pour éviter les correspondances avec des joueurs situés trop loin.
Vous pouvez maintenant passer à l'étape suivante.
Notre exemple de règle beacons ci-dessus avec "difference": 50, "max_latency": 200 initialement :
Alice et Bob seront mis en correspondance, car Pékin est ignoré (>200) et le reste se situe 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 mis en correspondance, 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
Consultez les détails de votre nouveau matchmaker dans notre tableau de bord une fois qu'il est initialisé :

Le Status indique l'état du service, qui peut être ONLINE, OFFLINE ou ERROR.
L'Identifier aide le personnel d'Edgegap à trouver rapidement votre matchmaker si vous avez besoin d'aide pour le dépannage.
Started at peut être utile pour suivre l'heure de la dernière mise à jour.
La Size correspond à l'un de nos Niveaux de tarification.
L'API URL sera utilisée par les clients et serveurs de jeu pour communiquer avec Gen2.
La Swagger URL est une interface graphique pratique de spécification openAPI que nous fournissons pour explorer le schéma de l'API.
L'Auth Token est un jeton secret unique utilisé par les clients et serveurs de jeu pour l'authentification.
Pour tester votre nouveau matchmaker à l'aide de l'API, vous aurez besoin de la Swagger URL, de l'API URL et de l'Auth Token.
Vous pouvez maintenant passer à l'étape suivante.
4. Tester l'API des tickets
Tout d'abord, ouvrez votre Swagger URL pour inspecter votre schéma openAPI dans l'interface utilisateur Swagger
Cliquez sur l'URL /...swagger.json sous le titre « Matchmaker » pour ouvrir le schéma JSON brut :

Enregistrez cette page sous forme de fichier sur votre disque (CTRL/CMD+S).
Ouvrez votre application Postman et connectez-vous à votre compte gratuit.
Importez votre fichier swagger.json de l'étape précédente :
gardez Postman Collection sélectionné,
sélectionnez View Import Settings et modifiez le paramètre Parameter generation sur Example.
Confirmez l'importation, ce qui fera apparaître une nouvelle collection dans la liste des collections sur la gauche, intitulée Matchmaker.

Affichez plus d'actions, ouvrez l'onglet Authorization et choisissez :
Auth Type - API Key,
Key - « Authorization »
Value - insérez votre valeur AuthToken ici,
Add to - Header.
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 Create a matchmaking ticket, ce qui ouvrira un nouvel onglet.
Sélectionnez l'onglet Body pour prévisualiser votre demande de ticket de joueur :
remarquez que player_ip est défini sur null - cela entraînera l'utilisation de l'adresse IP automatiquement ajoutée à votre demande (voir Intégration de serveur à serveur pour les alternatives),
profilefait référence à vos Profils de Matchmaking,attributescomprend des valeurs pour les règles de votre matchmaker, dans ce cas pour la règlelatencies,la règle
player_countest la seule règle qui ne nécessite aucun attribut dans les tickets de joueur.
REMARQUE : Assurez-vous de vous référer à la configuration d'importation Swagger de l'échantillon.
Cliquez sur Send et examinez la réponse à votre demande de ticket de joueur :
idest l'identifiant unique de votre ticket de matchmaking, conservez-le précieusement pour vérifier votre ticket ultérieurement,profileconfirme le choix des Profils de Matchmaking,group_idest un identifiant de groupe unique attribué à chaque ticket, un joueur solo étant représenté comme un groupe de 1,voir Rejoindre en groupe pour le matchmaking avec vos amis ou des salons,
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é mis en correspondance ou assigné à un serveur,created_atfournit des informations sur le moment où le ticket de joueur a été créé pour l'interface du jeu,statusindique le statut actuel du ticket, tous les tickets commençant à l'étatSEARCHING(voir Processus de Matchmaking pour plus de détails).
Créez un deuxième ticket en cliquant à nouveau sur Send, afin que nos deux joueurs soient associés et qu'un serveur soit démarré.
Dans votre collection Matchmaker, sélectionnez {ticketId} et Read a matchmaking ticket.
Saisissez l'ID de ticket obtenu dans la réponse de l'étape précédente et cliquez sur Send.

Vérifiez la nouvelle affectation pour votre ticket de joueur :
le statut est d'abord passé à
MATCH_FOUND, tout en maintenantassignmentànullpour indiquer que les joueurs ont été mis en correspondance et qu'un serveur est en cours d'attribution,

Cliquez à nouveau sur Send pour vérifier votre ticket et examiner la nouvelle attribution pour votre ticket de joueur :
le statut est passé à
HOST_ASSIGNEDavecassignmentcontenant 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 identifiants de ticket et le profil pour une meilleure traçabilité.

Essayez de vous connecter depuis 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é sur votre compte pour le prochain build.
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 de joueur,
avec le Serveur de jeu, pour :
traiter les préférences des joueurs transmises via leurs tickets,
prendre en charge éventuellement le Backfill afin d'ajouter ou de remplacer des joueurs après le démarrage.
Pour le Client de jeu, nous vous recommandons de fournir aux joueurs des mises à jour sur le statut des tickets tout au long du Processus de Matchmaking à l'aide de l'interface utilisateur en jeu pour une meilleure expérience utilisateur. Voir :
Edgegap - SDK Unity Gen2 Matchmaking,
importer l'exemple simple et le personnaliser selon vos besoins,
Betide Studio - Kit d'intégration Edgegap pour Unreal Engine,
télécharger le projet d'exemple et le personnaliser selon vos besoins.
Dans le Client de jeu, veillez à gérer les erreurs non réessayables :
HTTP 404 Not Found- le ticket a été supprimé,HTTP 500 Internal Server Error- panne temporaire du service.
Dans le Serveur de jeu, traitez les préférences des joueurs et le contexte initial du serveur. Aucune intégration d'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 de l'application) pour les paramètres spécifiques à la version, les configurations (capacité de 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, l'emplacement ou autres.
Une fois les joueurs connectés, le Serveur de jeu et les Clients de jeu lancent 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 salon ou un écran de chargement avec une barre de progression, pour indiquer que l'initialisation est en cours.
Une fois les Clients de jeu entièrement chargés, les joueurs chargent/basculent vers la scène principale du jeu.
Facultativement, le Serveur de jeu peut créer et gérer le Backfill et la capacité des joueurs (ajouter ou remplacer les joueurs qui quittent).
Assurez-vous que votre déploiement sera arrêté correctement à l'aide de l'DELETE_URL injectée, si :
aucun joueur ne rejoint la partie,
tous les joueurs ont quitté la partie,
la partie se termine correctement.
Félicitations, vous avez terminé l'intégration d'Edgegap Matchmaker ! Si vous souhaitez en savoir plus, découvrez tous les détails dans notre Centre d'apprentissage.
Comment intégrer le matchmaking à votre jeu roguelike multijoueur
-> Cet article est basé sur la documentation du Matchmaking. Si vous rencontrez des problèmes ou des divergences, veuillez vous référer au guide original, car il est mis à jour plus régulièrement.
L'exemple suivant vous aidera à tester le flux de joueurs principal du matchmaking, à savoir :
Créer l'instance du matchmaker sur le Cluster d'hébergement partagé,
Définir les règles et les paramètres dans la Configuration de votre matchmaker,
Et enfin, tester le flux de joueurs et gérer les Tickets de joueur avec notre API.
Il y a cinq étapes pour implémenter notre matchmaker dans votre jeu :
La première étape consiste à créer un compte et à utiliser notre exemple de jeu roguelike. Voilà, vous avez (techniquement) fait la moitié du chemin ! Il ne vous reste plus 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 guide de lecture 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 afin de 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 »), vise à vérifier que les demandes de matchmaking de vos joueurs, appelées tickets, sont bien reçues par le matchmaker.
L'étape 5 (« Intégrer le Matchmaking dans votre jeu ») explique comment intégrer le matchmaker dans le projet de votre moteur.
Si vous rencontrez des difficultés de dépannage, notre Centre d'apprentissage complet propose des conseils de dépannage supplémentaires.
1. Configuration de l'offre gratuite
Inscrivez-vous pour obtenir votre compte Edgegap gratuit et accédez à la page du tableau de bord du Matchmaker.
À partir de là, cliquez d'abord sur Create Matchmaker, puis saisissez :
Un nom pour votre matchmaker – qui sert uniquement de référence pour vous, par ex.
quickstart-dev,Ensuite, téléversez l'exemple simple suivant sous forme de configuration JSON ci-dessous pour votre jeu roguelike :
{ "version": "2.1.0", "inspect": true, "max_deployment_retry_count": 3, "ticket_expiration_period": "5m", "ticket_removal_period": "1m", "profiles": { "custom-lobby-example": { "application": { "name": "my-game-server", "version": "2024.01.30-16.23.00-UTC" }, "rules": { "initial": { "match_size": { "type": "player_count", "attributes": { "team_count": 1, "team_size": 4 } }, "lobby_id": { "type": "string_equality" } }, "expansions": {} } } } }
(rappel amical : assurez-vous de modifier le name et la version de l'application pour qu'ils correspondent à vos Applications et versions !)
Si aucune erreur de validation n'apparaît, cliquez sur Create and Start et attendez la fin du processus. 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 le jeu roguelike multijoueur
Les salons personnalisés (salons privés, niveaux bac à sable) sont une option très populaire pour le multijoueur local, mais aussi pour tester de nouvelles fonctionnalités dans les jeux compétitifs ou coopératifs avant leur intégration dans les modes de jeu principaux. Ces jeux nécessitent généralement le moins de restrictions possible, mais visent à garantir que les joueurs puissent Rejoindre en groupe.
Les tickets de Backfill peuvent utiliser les profils Custom Lobby pour permettre d'inviter des amis de manière fiable, tant que les tickets de Backfill sont valides.
Astuce : Ajoutez le profil
custom-lobby-exampleà votre configuration en plus de vos autres profils pour prendre en charge les salons personnalisés.
Gestion sémantique de version
À mesure que nous publions des mises à jour pour le Matchmaker, chaque nouvelle version utilise le Versionnage sémantique pour communiquer clairement l'impact des modifications en interprétant le format majeur.mineur.correctif :
les versions
majorincluent des changements majeurs incompatibles et nécessitent une révision de l'intégration,les versions
minorincluent des améliorations substantielles rétrocompatibles,les versions
patchincluent des corrections de bugs et des améliorations mineures.
Certains déploiements peuvent entraîner des erreurs. Nous tentons de résoudre ce problème en réessayant automatiquement le déploiement jusqu'à max_deployment_retry_count fois (sans confirmation du client).
Pour vous assurer que les plantages inattendus de clients ou les tickets abandonnés ne persistent pas et ne consomment pas les ressources de votre matchmaker, les tickets seront annulés après ticket_expiration_period, ce qui fait passer leur statut à CANCELLED, puis définitivement supprimés 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 de l'application avec une quantité prédéfinie de ressources processeur (CPU) et mémoire (RAM) requises.
Les Règles de Matchmaking du jeu de règles initial doivent être respectées pour que les joueurs soient regroupés, chacune étant définie par trois propriétés :
le nom de votre choix, par ex. -
match size,le type de règle, également appelé opérateur, par ex. -
player_count,et enfin les attributs de l'opérateur, par ex.
team_countouteam_size.
Règle du nombre de joueurs (Player Count)
Il s'agit d'une règle spéciale définissant le nombre de joueurs nécessaires pour déclencher l'attribution :
team_countfait référence au nombre d'équipes, 1 équipe pouvant être utilisée pour les modes coopératifs ou chacun pour soi,team_sizefait référence au nombre de joueurs par équipe.
Notre exemple simple illustre un jeu coopératif à 2 joueurs.
Veuillez noter que la règle « Player Count » est obligatoire et ne peut être définie qu'une seule fois dans vos règles de configuration initiales.
Règle des latences (Latencies)
Utilisez cette règle pour offrir le ping le plus bas possible à tous les joueurs. Dès que les clients mesurent et transmettent leur temps de trajet aller-retour (ping) par rapport à toutes les balises disponibles, Gen2 ne prendra en compte que les correspondances situées dans une plage de difference spécifique des valeurs de ping, mesurées par rapport aux Balises de ping. Cela offre une solution « douce » pour diviser votre base de joueurs, permettant des correspondances avec les régions voisines, améliorant particulièrement la vitesse de recherche de partie pour les régions moins peuplées. Utilisez max_latency pour éviter les correspondances avec des joueurs situés trop loin.
Vous pouvez maintenant passer à l'étape suivante.
Notre exemple de règle beacons ci-dessus avec "difference": 50, "max_latency": 200 initialement :
Alice et Bob seront mis en correspondance, car Pékin est ignoré (>200) et le reste se situe 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 mis en correspondance, 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
Consultez les détails de votre nouveau matchmaker dans notre tableau de bord une fois qu'il est initialisé :

Le Status indique l'état du service, qui peut être ONLINE, OFFLINE ou ERROR.
L'Identifier aide le personnel d'Edgegap à trouver rapidement votre matchmaker si vous avez besoin d'aide pour le dépannage.
Started at peut être utile pour suivre l'heure de la dernière mise à jour.
La Size correspond à l'un de nos Niveaux de tarification.
L'API URL sera utilisée par les clients et serveurs de jeu pour communiquer avec Gen2.
La Swagger URL est une interface graphique pratique de spécification openAPI que nous fournissons pour explorer le schéma de l'API.
L'Auth Token est un jeton secret unique utilisé par les clients et serveurs de jeu pour l'authentification.
Pour tester votre nouveau matchmaker à l'aide de l'API, vous aurez besoin de la Swagger URL, de l'API URL et de l'Auth Token.
Vous pouvez maintenant passer à l'étape suivante.
4. Tester l'API des tickets
Tout d'abord, ouvrez votre Swagger URL pour inspecter votre schéma openAPI dans l'interface utilisateur Swagger
Cliquez sur l'URL /...swagger.json sous le titre « Matchmaker » pour ouvrir le schéma JSON brut :

Enregistrez cette page sous forme de fichier sur votre disque (CTRL/CMD+S).
Ouvrez votre application Postman et connectez-vous à votre compte gratuit.
Importez votre fichier swagger.json de l'étape précédente :
gardez Postman Collection sélectionné,
sélectionnez View Import Settings et modifiez le paramètre Parameter generation sur Example.
Confirmez l'importation, ce qui fera apparaître une nouvelle collection dans la liste des collections sur la gauche, intitulée Matchmaker.

Affichez plus d'actions, ouvrez l'onglet Authorization et choisissez :
Auth Type - API Key,
Key - « Authorization »
Value - insérez votre valeur AuthToken ici,
Add to - Header.
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 Create a matchmaking ticket, ce qui ouvrira un nouvel onglet.
Sélectionnez l'onglet Body pour prévisualiser votre demande de ticket de joueur :
remarquez que player_ip est défini sur null - cela entraînera l'utilisation de l'adresse IP automatiquement ajoutée à votre demande (voir Intégration de serveur à serveur pour les alternatives),
profilefait référence à vos Profils de Matchmaking,attributescomprend des valeurs pour les règles de votre matchmaker, dans ce cas pour la règlelatencies,la règle
player_countest la seule règle qui ne nécessite aucun attribut dans les tickets de joueur.
REMARQUE : Assurez-vous de vous référer à la configuration d'importation Swagger de l'échantillon.
Cliquez sur Send et examinez la réponse à votre demande de ticket de joueur :
idest l'identifiant unique de votre ticket de matchmaking, conservez-le précieusement pour vérifier votre ticket ultérieurement,profileconfirme le choix des Profils de Matchmaking,group_idest un identifiant de groupe unique attribué à chaque ticket, un joueur solo étant représenté comme un groupe de 1,voir Rejoindre en groupe pour le matchmaking avec vos amis ou des salons,
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é mis en correspondance ou assigné à un serveur,created_atfournit des informations sur le moment où le ticket de joueur a été créé pour l'interface du jeu,statusindique le statut actuel du ticket, tous les tickets commençant à l'étatSEARCHING(voir Processus de Matchmaking pour plus de détails).
Créez un deuxième ticket en cliquant à nouveau sur Send, afin que nos deux joueurs soient associés et qu'un serveur soit démarré.
Dans votre collection Matchmaker, sélectionnez {ticketId} et Read a matchmaking ticket.
Saisissez l'ID de ticket obtenu dans la réponse de l'étape précédente et cliquez sur Send.

Vérifiez la nouvelle affectation pour votre ticket de joueur :
le statut est d'abord passé à
MATCH_FOUND, tout en maintenantassignmentànullpour indiquer que les joueurs ont été mis en correspondance et qu'un serveur est en cours d'attribution,

Cliquez à nouveau sur Send pour vérifier votre ticket et examiner la nouvelle attribution pour votre ticket de joueur :
le statut est passé à
HOST_ASSIGNEDavecassignmentcontenant 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 identifiants de ticket et le profil pour une meilleure traçabilité.

Essayez de vous connecter depuis 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é sur votre compte pour le prochain build.
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 de joueur,
avec le Serveur de jeu, pour :
traiter les préférences des joueurs transmises via leurs tickets,
prendre en charge éventuellement le Backfill afin d'ajouter ou de remplacer des joueurs après le démarrage.
Pour le Client de jeu, nous vous recommandons de fournir aux joueurs des mises à jour sur le statut des tickets tout au long du Processus de Matchmaking à l'aide de l'interface utilisateur en jeu pour une meilleure expérience utilisateur. Voir :
Edgegap - SDK Unity Gen2 Matchmaking,
importer l'exemple simple et le personnaliser selon vos besoins,
Betide Studio - Kit d'intégration Edgegap pour Unreal Engine,
télécharger le projet d'exemple et le personnaliser selon vos besoins.
Dans le Client de jeu, veillez à gérer les erreurs non réessayables :
HTTP 404 Not Found- le ticket a été supprimé,HTTP 500 Internal Server Error- panne temporaire du service.
Dans le Serveur de jeu, traitez les préférences des joueurs et le contexte initial du serveur. Aucune intégration d'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 de l'application) pour les paramètres spécifiques à la version, les configurations (capacité de 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, l'emplacement ou autres.
Une fois les joueurs connectés, le Serveur de jeu et les Clients de jeu lancent 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 salon ou un écran de chargement avec une barre de progression, pour indiquer que l'initialisation est en cours.
Une fois les Clients de jeu entièrement chargés, les joueurs chargent/basculent vers la scène principale du jeu.
Facultativement, le Serveur de jeu peut créer et gérer le Backfill et la capacité des joueurs (ajouter ou remplacer les joueurs qui quittent).
Assurez-vous que votre déploiement sera arrêté correctement à l'aide de l'DELETE_URL injectée, si :
aucun joueur ne rejoint la partie,
tous les joueurs ont quitté la partie,
la partie se termine correctement.
Félicitations, vous avez terminé l'intégration d'Edgegap Matchmaker ! Si vous souhaitez en savoir plus, découvrez tous les détails dans notre Centre d'apprentissage.
Comment intégrer le matchmaking à votre jeu roguelike multijoueur
-> Cet article est basé sur la documentation du Matchmaking. Si vous rencontrez des problèmes ou des divergences, veuillez vous référer au guide original, car il est mis à jour plus régulièrement.
L'exemple suivant vous aidera à tester le flux de joueurs principal du matchmaking, à savoir :
Créer l'instance du matchmaker sur le Cluster d'hébergement partagé,
Définir les règles et les paramètres dans la Configuration de votre matchmaker,
Et enfin, tester le flux de joueurs et gérer les Tickets de joueur avec notre API.
Il y a cinq étapes pour implémenter notre matchmaker dans votre jeu :
La première étape consiste à créer un compte et à utiliser notre exemple de jeu roguelike. Voilà, vous avez (techniquement) fait la moitié du chemin ! Il ne vous reste plus 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 guide de lecture 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 afin de 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 »), vise à vérifier que les demandes de matchmaking de vos joueurs, appelées tickets, sont bien reçues par le matchmaker.
L'étape 5 (« Intégrer le Matchmaking dans votre jeu ») explique comment intégrer le matchmaker dans le projet de votre moteur.
Si vous rencontrez des difficultés de dépannage, notre Centre d'apprentissage complet propose des conseils de dépannage supplémentaires.
1. Configuration de l'offre gratuite
Inscrivez-vous pour obtenir votre compte Edgegap gratuit et accédez à la page du tableau de bord du Matchmaker.
À partir de là, cliquez d'abord sur Create Matchmaker, puis saisissez :
Un nom pour votre matchmaker – qui sert uniquement de référence pour vous, par ex.
quickstart-dev,Ensuite, téléversez l'exemple simple suivant sous forme de configuration JSON ci-dessous pour votre jeu roguelike :
{ "version": "2.1.0", "inspect": true, "max_deployment_retry_count": 3, "ticket_expiration_period": "5m", "ticket_removal_period": "1m", "profiles": { "custom-lobby-example": { "application": { "name": "my-game-server", "version": "2024.01.30-16.23.00-UTC" }, "rules": { "initial": { "match_size": { "type": "player_count", "attributes": { "team_count": 1, "team_size": 4 } }, "lobby_id": { "type": "string_equality" } }, "expansions": {} } } } }
(rappel amical : assurez-vous de modifier le name et la version de l'application pour qu'ils correspondent à vos Applications et versions !)
Si aucune erreur de validation n'apparaît, cliquez sur Create and Start et attendez la fin du processus. 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 le jeu roguelike multijoueur
Les salons personnalisés (salons privés, niveaux bac à sable) sont une option très populaire pour le multijoueur local, mais aussi pour tester de nouvelles fonctionnalités dans les jeux compétitifs ou coopératifs avant leur intégration dans les modes de jeu principaux. Ces jeux nécessitent généralement le moins de restrictions possible, mais visent à garantir que les joueurs puissent Rejoindre en groupe.
Les tickets de Backfill peuvent utiliser les profils Custom Lobby pour permettre d'inviter des amis de manière fiable, tant que les tickets de Backfill sont valides.
Astuce : Ajoutez le profil
custom-lobby-exampleà votre configuration en plus de vos autres profils pour prendre en charge les salons personnalisés.
Gestion sémantique de version
À mesure que nous publions des mises à jour pour le Matchmaker, chaque nouvelle version utilise le Versionnage sémantique pour communiquer clairement l'impact des modifications en interprétant le format majeur.mineur.correctif :
les versions
majorincluent des changements majeurs incompatibles et nécessitent une révision de l'intégration,les versions
minorincluent des améliorations substantielles rétrocompatibles,les versions
patchincluent des corrections de bugs et des améliorations mineures.
Certains déploiements peuvent entraîner des erreurs. Nous tentons de résoudre ce problème en réessayant automatiquement le déploiement jusqu'à max_deployment_retry_count fois (sans confirmation du client).
Pour vous assurer que les plantages inattendus de clients ou les tickets abandonnés ne persistent pas et ne consomment pas les ressources de votre matchmaker, les tickets seront annulés après ticket_expiration_period, ce qui fait passer leur statut à CANCELLED, puis définitivement supprimés 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 de l'application avec une quantité prédéfinie de ressources processeur (CPU) et mémoire (RAM) requises.
Les Règles de Matchmaking du jeu de règles initial doivent être respectées pour que les joueurs soient regroupés, chacune étant définie par trois propriétés :
le nom de votre choix, par ex. -
match size,le type de règle, également appelé opérateur, par ex. -
player_count,et enfin les attributs de l'opérateur, par ex.
team_countouteam_size.
Règle du nombre de joueurs (Player Count)
Il s'agit d'une règle spéciale définissant le nombre de joueurs nécessaires pour déclencher l'attribution :
team_countfait référence au nombre d'équipes, 1 équipe pouvant être utilisée pour les modes coopératifs ou chacun pour soi,team_sizefait référence au nombre de joueurs par équipe.
Notre exemple simple illustre un jeu coopératif à 2 joueurs.
Veuillez noter que la règle « Player Count » est obligatoire et ne peut être définie qu'une seule fois dans vos règles de configuration initiales.
Règle des latences (Latencies)
Utilisez cette règle pour offrir le ping le plus bas possible à tous les joueurs. Dès que les clients mesurent et transmettent leur temps de trajet aller-retour (ping) par rapport à toutes les balises disponibles, Gen2 ne prendra en compte que les correspondances situées dans une plage de difference spécifique des valeurs de ping, mesurées par rapport aux Balises de ping. Cela offre une solution « douce » pour diviser votre base de joueurs, permettant des correspondances avec les régions voisines, améliorant particulièrement la vitesse de recherche de partie pour les régions moins peuplées. Utilisez max_latency pour éviter les correspondances avec des joueurs situés trop loin.
Vous pouvez maintenant passer à l'étape suivante.
Notre exemple de règle beacons ci-dessus avec "difference": 50, "max_latency": 200 initialement :
Alice et Bob seront mis en correspondance, car Pékin est ignoré (>200) et le reste se situe 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 mis en correspondance, 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
Consultez les détails de votre nouveau matchmaker dans notre tableau de bord une fois qu'il est initialisé :

Le Status indique l'état du service, qui peut être ONLINE, OFFLINE ou ERROR.
L'Identifier aide le personnel d'Edgegap à trouver rapidement votre matchmaker si vous avez besoin d'aide pour le dépannage.
Started at peut être utile pour suivre l'heure de la dernière mise à jour.
La Size correspond à l'un de nos Niveaux de tarification.
L'API URL sera utilisée par les clients et serveurs de jeu pour communiquer avec Gen2.
La Swagger URL est une interface graphique pratique de spécification openAPI que nous fournissons pour explorer le schéma de l'API.
L'Auth Token est un jeton secret unique utilisé par les clients et serveurs de jeu pour l'authentification.
Pour tester votre nouveau matchmaker à l'aide de l'API, vous aurez besoin de la Swagger URL, de l'API URL et de l'Auth Token.
Vous pouvez maintenant passer à l'étape suivante.
4. Tester l'API des tickets
Tout d'abord, ouvrez votre Swagger URL pour inspecter votre schéma openAPI dans l'interface utilisateur Swagger
Cliquez sur l'URL /...swagger.json sous le titre « Matchmaker » pour ouvrir le schéma JSON brut :

Enregistrez cette page sous forme de fichier sur votre disque (CTRL/CMD+S).
Ouvrez votre application Postman et connectez-vous à votre compte gratuit.
Importez votre fichier swagger.json de l'étape précédente :
gardez Postman Collection sélectionné,
sélectionnez View Import Settings et modifiez le paramètre Parameter generation sur Example.
Confirmez l'importation, ce qui fera apparaître une nouvelle collection dans la liste des collections sur la gauche, intitulée Matchmaker.

Affichez plus d'actions, ouvrez l'onglet Authorization et choisissez :
Auth Type - API Key,
Key - « Authorization »
Value - insérez votre valeur AuthToken ici,
Add to - Header.
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 Create a matchmaking ticket, ce qui ouvrira un nouvel onglet.
Sélectionnez l'onglet Body pour prévisualiser votre demande de ticket de joueur :
remarquez que player_ip est défini sur null - cela entraînera l'utilisation de l'adresse IP automatiquement ajoutée à votre demande (voir Intégration de serveur à serveur pour les alternatives),
profilefait référence à vos Profils de Matchmaking,attributescomprend des valeurs pour les règles de votre matchmaker, dans ce cas pour la règlelatencies,la règle
player_countest la seule règle qui ne nécessite aucun attribut dans les tickets de joueur.
REMARQUE : Assurez-vous de vous référer à la configuration d'importation Swagger de l'échantillon.
Cliquez sur Send et examinez la réponse à votre demande de ticket de joueur :
idest l'identifiant unique de votre ticket de matchmaking, conservez-le précieusement pour vérifier votre ticket ultérieurement,profileconfirme le choix des Profils de Matchmaking,group_idest un identifiant de groupe unique attribué à chaque ticket, un joueur solo étant représenté comme un groupe de 1,voir Rejoindre en groupe pour le matchmaking avec vos amis ou des salons,
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é mis en correspondance ou assigné à un serveur,created_atfournit des informations sur le moment où le ticket de joueur a été créé pour l'interface du jeu,statusindique le statut actuel du ticket, tous les tickets commençant à l'étatSEARCHING(voir Processus de Matchmaking pour plus de détails).
Créez un deuxième ticket en cliquant à nouveau sur Send, afin que nos deux joueurs soient associés et qu'un serveur soit démarré.
Dans votre collection Matchmaker, sélectionnez {ticketId} et Read a matchmaking ticket.
Saisissez l'ID de ticket obtenu dans la réponse de l'étape précédente et cliquez sur Send.

Vérifiez la nouvelle affectation pour votre ticket de joueur :
le statut est d'abord passé à
MATCH_FOUND, tout en maintenantassignmentànullpour indiquer que les joueurs ont été mis en correspondance et qu'un serveur est en cours d'attribution,

Cliquez à nouveau sur Send pour vérifier votre ticket et examiner la nouvelle attribution pour votre ticket de joueur :
le statut est passé à
HOST_ASSIGNEDavecassignmentcontenant 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 identifiants de ticket et le profil pour une meilleure traçabilité.

Essayez de vous connecter depuis 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é sur votre compte pour le prochain build.
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 de joueur,
avec le Serveur de jeu, pour :
traiter les préférences des joueurs transmises via leurs tickets,
prendre en charge éventuellement le Backfill afin d'ajouter ou de remplacer des joueurs après le démarrage.
Pour le Client de jeu, nous vous recommandons de fournir aux joueurs des mises à jour sur le statut des tickets tout au long du Processus de Matchmaking à l'aide de l'interface utilisateur en jeu pour une meilleure expérience utilisateur. Voir :
Edgegap - SDK Unity Gen2 Matchmaking,
importer l'exemple simple et le personnaliser selon vos besoins,
Betide Studio - Kit d'intégration Edgegap pour Unreal Engine,
télécharger le projet d'exemple et le personnaliser selon vos besoins.
Dans le Client de jeu, veillez à gérer les erreurs non réessayables :
HTTP 404 Not Found- le ticket a été supprimé,HTTP 500 Internal Server Error- panne temporaire du service.
Dans le Serveur de jeu, traitez les préférences des joueurs et le contexte initial du serveur. Aucune intégration d'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 de l'application) pour les paramètres spécifiques à la version, les configurations (capacité de 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, l'emplacement ou autres.
Une fois les joueurs connectés, le Serveur de jeu et les Clients de jeu lancent 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 salon ou un écran de chargement avec une barre de progression, pour indiquer que l'initialisation est en cours.
Une fois les Clients de jeu entièrement chargés, les joueurs chargent/basculent vers la scène principale du jeu.
Facultativement, le Serveur de jeu peut créer et gérer le Backfill et la capacité des joueurs (ajouter ou remplacer les joueurs qui quittent).
Assurez-vous que votre déploiement sera arrêté correctement à l'aide de l'DELETE_URL injectée, si :
aucun joueur ne rejoint la partie,
tous les joueurs ont quitté la partie,
la partie se termine correctement.
Félicitations, vous avez terminé l'intégration d'Edgegap Matchmaker ! Si vous souhaitez en savoir plus, découvrez tous les détails dans notre Centre d'apprentissage.
Écrit par
l'équipe Edgegap






