For the complete documentation index, see llms.txt. This page is also available as Markdown.

Déployer depuis UGS

Suivez ce guide si vous préférez conserver votre Unity Matchmaker et déployer des serveurs sur Edgegap.

Premiers pas

Ce guide se concentre sur l'ajout de l'hébergement de serveurs Edgegap en tant que fournisseur d'hébergement, en supposant :

Veuillez consulter la documentation de matchmaking de Unity pour les sujets liés au matchmaking.

Voir Passer depuis Multiplay pour comparer et faire correspondre les concepts de Multiplay à l'hébergement Edgegap.

Choisir le bon emplacement pour votre serveur peut réduire la latence jusqu'à 58 % en moyenne !

Dans ce guide, nous couvrirons :

  • la création et le déploiement EdgegapAllocator du module de script cloud pour votre Matchmaker,

  • la récupération des adresses IP publiques des joueurs utilisées pour un placement optimal du serveur,

  • la mise en œuvre d'un écouteur webhook dans le script cloud UGS et la récupération de l'attribution du serveur.

Allocateur Edgegap

Commencez par télécharger le code source du dépôt des fournisseurs d'hébergement avec EdgegapAllocator .

Il s'agit de notre script cloud utilisé pour démarrer de nouveaux serveurs, lancé par Unity matchmaker une fois la partie constituée. Il s'agit d'une intégration officielle approuvée par Unity.

Secrets requis

Tout d'abord, ajoutez ces secrets dans le tableau de bord Unity sous Administration > Secrets:

  • EDGEGAP_API_TOKEN - Votre jeton API Edgegap.

Trouvez votre jeton dans le tableau de bord Edgegap.

Modifications de code requises

Modifiez Project/EdgegapAllocator.cs et mettez à jour ces constantes :

Remplacez par le nom de votre application Edgegap depuis la liste des applications.

Remplacez par le nom de version de votre application Edgegap que vous souhaitez utiliser.

Remplacez par le nom du port de la version de votre application Edgegap qui sera utilisé pour la connexion des joueurs.

Déployez le module

Suivez les instructions officielles de Unity pour déployer votre module personnalisé à l'aide de la CLI ou de l'éditeur.

Récupérer l'adresse IP du joueur

Pour fournir à la demande l'emplacement optimal du serveur pour chaque partie, Edgegap exige que vous fournissiez les adresses IP des joueurs lors d'un déploiement. Bien que Unity ne propose pas cette fonctionnalité, vous pouvez utiliser notre extrait C# pour l'implémenter dans vos clients de jeu à l'aide du service gratuit ipify:

Chaque joueur est censé fournir son adresse IP publique à l'aide de données personnalisées dans ses tickets :

Réception de l'attribution

L'attribution peut être récupérée à l'aide des méthodes standard de matchmaking de Unity.

Notre exemple gérera les attributions pour vous en utilisant l'API Status, limitée à 20 requêtes/s.

Cela suffit pour la plupart des jeux. Si vous prévoyez plus de 50 000 CCU, envisagez d'autres méthodes.

Attribution alternative

Pour les lancements mondiaux à grande échelle, une alternative plus évolutive utilisant Webhooks est disponible.

Une fois la partie créée et votre script cloud demandant un nouveau déploiement, votre réponse n'inclura pas encore les détails de connexion. À la place, vous recevrez une sorte de reçu - un ID de déploiement.

Votre fonction d'allocateur doit stocker cet ID de déploiement dans vos données de jeu UGS, avec les ID des joueurs appariés, afin que vous puissiez retrouver les joueurs et fournir les détails de connexion plus tard.

Vous devrez maintenant créer une autre fonction de script cloud AssignmentProcessor avec une URL publique. Cette URL doit être incluse dans la requête de déploiement de votre Allocator sous forme de webhook_on_ready .

Une fois qu'Edgegap déploie votre serveur de jeu, il enverra à votre nouveau script cloud un événement HTTP webhook incluant tous les détails de connexion, tels que le FQDN (URL) et le port externe pour les connexions client. Votre AssignmentProcessor devra rechercher l'ID de déploiement et stocker les détails de connexion avec celui-ci.

Vos clients de jeu doivent interroger ces données de jeu et tenter une connexion dès que le FQDN et le port externe sont récupérés.

Mis à jour

Ce contenu vous a-t-il été utile ?