Matchmaker gratuit pour Unity - Tutoriel pour le matchmaking à faible code et automatisé d'Edgegap

Chapitre 1 - Introduction

Cette vidéo tutorielle étape par étape couvre comment utiliser le Matchmaker Automatisé d'Edgegap. Le matchmaker à faible code, gratuit lors de l'utilisation d'Edgegap, automatise le processus de regroupement des joueurs dans votre jeu, puis déploie instantanément un serveur de jeu pour que vos joueurs puissent jouer en ligne.

Edgegap propose également un matchmaker profondément personnalisable pour les utilisateurs avancés qui nécessitent un contrôle approfondi.

Chapitre 2 - Exigences

Ce tutoriel suppose que vous avez déjà configuré un serveur de jeu pour votre multijoueur sur Edgegap.

Sinon, nous avons des listes de lecture avec des vidéos tutoriels. Un lien direct est disponible dans les commentaires.

Chapitre 3 - Matchmaker : Création de la Configuration

Voici un aperçu du matchmaker final que nous allons coder dans cette vidéo étape par étape.

Maintenant, commençons à partir de zéro.

Le seul composant dont vous avez besoin pour coder un matchmaker avec Edgegap est soit un fichier de configuration JSON, soit YAML, qui utilise un ensemble spécifique d'attributs pour regrouper des joueurs.

La toute première étape consiste à créer un nouveau fichier à l'aide de votre éditeur de code de choix, et de lui donner un nom. Ensuite, pour ajouter “.json” pour nommer l'extension du fichier, comme dans cet exemple.

Le fichier de configuration possède deux sections principales : les paramètres d'authentification et la liste des profils.

De plus, il comprend une répartition de tous les profils de configuration possibles avec le matchmaker, pour vous aider à décider comment vous souhaitez connecter vos joueurs. 

Chapitre 4 - Matchmaker : Paramètres d'authentification

Les paramètres d'authentification vous permettent de sélectionner le type d'authentification pour les requêtes du matchmaker.

Il existe deux valeurs possibles pour le type. La première est simplement “Pas d'authentification” tandis que la seconde est “Jeton”.

“Pas d'authentification”, comme son nom l'indique, ne nécessite aucune authentification. Cela pourrait ouvrir la porte aux tricheurs et aux utilisateurs ayant téléchargé illégalement le jeu. Pendant le développement, cependant, cela facilite les choses. Choisissez en conséquence.

Le type “Jeton” nécessite des attributs supplémentaires pour définir sa valeur. Ajoutez “configuration”, puis “jeton” comme montré à l'écran, et enfin ajoutez n'importe quelle chaîne pour définir la valeur. Cette chaîne peut être définie sur n'importe quoi, ici “Valeur d'authentification ici”. C'est l'équivalent du mot de passe pour interroger votre matchmaker.

Lors de l'utilisation de cette option de paramètre, la valeur du jeton doit être incluse comme un en-tête d'autorisation dans les requêtes envoyées au matchmaker, sinon elle ne sera pas acceptée.

Chapitre 5 - Matchmaker : Profils

L'attribut “profils” contient la logique pour regrouper les joueurs.

Cet attribut indique au matchmaker quelles variables grouper des joueurs, telles que les niveaux de compétence, les emplacements ou les modes de jeu. Pensez à chaque profil comme aux règles de votre matchmaker. Dans cet exemple, nous nous limiterons à un seul profil avec un sélecteur pour le type de jeu et un filtre qui sera une sorte de classement ELO.

Avant de travailler sur les règles du matchmaker, la première section est utilisée pour identifier chaque “profil” de matchmaking. Cela garantit que la configuration du matchmaker est valide et donc fonctionnelle sur la plateforme d'Edgegap.

Le “profil” doit obligatoirement avoir chacun des sept attributs suivants définis :

Le premier est un “id de profil” unique pour identifier le profil des règles. Ici, nous l'appelons “Exemple de jeu”.

Le deuxième est “nom” à utiliser pour l'affichage dans le jeu.

Le troisième est l'application sur le tableau de bord d'Edgegap qui sera utilisée par ce profil pour déployer un serveur, en utilisant les attributs “app” et “version”. Si vous n'êtes pas sûr de l'endroit où trouver cette information, rendez-vous sur la plateforme d'Edgegap, sélectionnez “Application” dans le menu à gauche. Chaque application que vous avez téléchargée sera disponible, avec la version également visible lorsque vous cliquez sur une application.

Le quatrième est l'attribut “port de jeu”. Comme son nom l'indique, c'est le port de votre transport, que vous trouverez dans la documentation de votre netcode, aux côtés de celui utilisé dans le gestionnaire de réseau de Unity. Dans cet exemple, c'est le port par défaut de notre transport de netcode, qui est 7770. Alternativement, utilisez le port donné dans les paramètres de votre application que les joueurs utilisent pour se connecter au serveur si vous lui avez déjà donné un nom sur la plateforme d'Edgegap, ce qui est la valeur utilisée lors de la création d'une version d'application.

Le cinquième attribut, “Délai_de_démarrage”, est le nombre de secondes avant que le matchmaker commence à aider avec la préparation et la synchronisation des joueurs. La valeur recommandée pour cet attribut est de 2 à 10 secondes.

Le sixième attribut est “rafraîchir”, qui fait référence à combien de temps le matchmaker attendra en secondes entre les tentatives pour regrouper les joueurs en rafraîchissant la liste des matchs disponibles. La valeur recommandée est de 5 à 10 secondes pour équilibrer le temps d'attente des joueurs et optimiser les intervalles de synchronisation.

Le septième et dernier attribut obligatoire est “match_player_count”, qui indique combien de joueurs doivent être associés ensemble pour qu'un match commence.

Techniquement, cela suffirait pour regrouper des joueurs aléatoirement, mais pour garantir une expérience de matchmaking idéale, des “sélecteurs” et “filtres” devraient être ajoutés.

Chapitre 6 - Matchmaker : Sélecteurs

Les “sélecteurs” sont des attributs qui indiquent au matchmaker quelles variables grouper des joueurs et, de manière critique, représentent une liste d'options choisies par les joueurs dans votre jeu.

Chaque “sélecteur” a les six exigences suivantes.

Tout d'abord, il a besoin d'une “clé” unique pour l'identifier en tant qu'attribut dans un profil donné.

Deuxièmement, il a besoin d'un “nom” utilisé dans votre jeu pour l'afficher comme une option. Dans cet exemple, nous allons utiliser le “Mode de jeu” explicite.

Troisièmement, une valeur “par défaut” pour garantir que les joueurs n'ont pas à sélectionner l'option chaque fois qu'ils commencent une partie. C'est facultatif mais recommandé.

Le quatrième est de savoir si l'attribut est obligatoire pour que le matchmaker prenne une décision, en saisissant “requise” dans cette requête. Si le joueur n'a pas envoyé de données, c'est-à-dire s'il n'a pas activement sélectionné l'option pour cette requête requise, le matchmaker utilisera soit la valeur par défaut si spécifiée, soit refusera la demande du joueur.

Le cinquième attribut, entièrement optionnel, est d'injecter la variable dans le déploiement. Un attribut utile si vous devez préciser les ressources à charger, comme une carte pour faire apparaître des joueurs. 

Le sixième et dernier attribut est la liste de chaque option pour ce sélecteur regroupée sous le champ “items”, avec un minimum obligatoire d'une. Dans cet exemple, nous utilisons la liste des types de modes de jeu.

Encore une fois, nous vous encourageons à consulter notre exemple de configuration préconçue dans notre documentation pour choisir les attributs les mieux adaptés à votre jeu. 

Chapitre 7 - Matchmaker : Filtres

Les “filtres” sont un autre type d'attribut pour aider les développeurs à regrouper les joueurs de manière encore plus précise. Contrairement aux “sélecteurs” qui sont des entrées des joueurs, les “filtres” sont des plages acceptables entre deux valeurs numériques définies par les développeurs, par exemple les scores des joueurs pour un classement ELO.

Ils sont entièrement facultatifs et limités à un pour le Matchmaker Automatisé. Lors du développement précoce, nous recommandons fortement de les ignorer complètement. Ce n'est qu'une fois que vous souhaitez peaufiner le matchmaker que nous vous recommandons de les utiliser.

Chaque filtre a les six exigences suivantes.

Tout d'abord, une “clé” unique pour l'identifier dans un profil donné. Dans cet exemple, nous allons donner aux joueurs un “score” comme un classement “ELO”.

Deuxièmement, un “nom” utilisé pour l'afficher dans le jeu.

Troisièmement, il y a “requise” qui, comme son nom l'indique, souligne s'il est obligatoire pour la décision du matchmaker.

Les quatrième et cinquième attributs sont respectivement les valeurs “maximum” et “minimum”, incluses dans la plage. 

Le sixième et dernier attribut est la “différence” autorisée par la plage. Cet attribut contient deux sous-attributs : la valeur de différence “positive” et la valeur de différence “négative”.

Par exemple, si un joueur a un score de 200 et que le filtre a une différence négative de 40 et une différence positive de 20, alors ce joueur peut être associé à d'autres ayant un score d'au moins 160 et au plus 220.

Et c'est tout, vous avez réussi à coder votre matchmaker !

Chapitre 8 - Edgegap : Hébergement du Matchmaker Automatisé

Pour que votre matchmaker automatisé fonctionne, il doit être hébergé sur Edgegap. Le processus est simple et intuitif à travers seulement cinq étapes simples.

Tout d'abord, connectez-vous au tableau de bord d'Edgegap et naviguez jusqu'à l'onglet Matchmaker dans le menu à gauche.

Deuxièmement, dans la section “Matchmaker” en haut, faites défiler vers le bas jusqu'à la section “Configurations du Matchmaker”. Sélectionnez “Créer la configuration”, et un message vous demandera un nom. Entrez-en un. Ensuite, choisissez le format dans lequel vous avez codé votre configuration, à savoir JSON ou YAML. Ensuite, copiez et collez votre fichier de configuration dans la zone de texte.

Avec la fenêtre contextuelle fermée, la troisième étape consiste à faire défiler vers le haut jusqu'à la section “Matchmaker”, puis à sélectionner “Créer un Matchmaker”. Entrez un nom et cliquez sur le bouton “Créer”.

La quatrième consiste à sélectionner le matchmaker qui vient d'être ajouté, cliquez sur le bouton “Créer une version” dans la section “Versions du Matchmaker”. Une fenêtre contextuelle apparaît. Assurez-vous que l'option “Géré” est sélectionnée, nommez votre version, puis sélectionnez la configuration appropriée dans le menu déroulant avant de sélectionner “Créer une version”.

La cinquième et dernière étape consiste à activer l'état du matchmaker. Sélectionnez l'option actuellement désactivée, et une fenêtre contextuelle apparaît. Sélectionnez “Confirmer” pour activer, ou désactiver, votre Matchmaker. Une fois activé, une URL apparaît en haut que vous utilisez pour envoyer des requêtes de matchmaker depuis votre jeu.

Chapitre 9 - Test

Félicitations, votre matchmaker est maintenant disponible et entièrement géré par Edgegap !

Comme toujours, testez d'abord les choses.

Ici, nous utiliserons l'exemple de jeu Fish-Net d'Edgegap, qui est disponible sur notre GitHub. Ouvrez le projet exemple depuis le HUB de Unity.

Une fois ouvert, vous devez d'abord ajouter l'URL du matchmaker à votre projet. Dans cet exemple, sélectionnez le dossier “Espace Edge”, puis “script”, puis “Matchmaker Edgegap” et enfin “Matchmaker”.

Cela ouvre votre éditeur de code, c'est là que vous allez changer l'“URL du Matchmaker” pour celle fournie par notre plateforme.

De retour dans Unity, démarrez le projet.

Ici, nous ajoutons un nom de joueur et un score ELO pour ce test. Ensuite, sélectionnez “Créer un ticket”. Ce que cela signifie, c'est que vos joueurs créent chacun un ticket via cette URL, puis vérifient périodiquement les mises à jour de son statut à l'aide de l'ID de leur ticket.

Une fois un match trouvé, le matchmaker met à jour le statut avec les informations précises pour que les joueurs se connectent à un serveur qui est ensuite automatiquement déployé sur Edgegap. Cela permet à vos joueurs de jouer à votre multijoueur en ligne !

C'est tout pour le tutoriel sur le Matchmaker Géré par Edgegap. Merci de regarder ! 

Consultez notre Discord pour des questions ou des commentaires avec nos développeurs. Ou continuez à regarder nos autres vidéos tutoriels !