Déployer depuis UGS
Suivez ce guide si vous préférez conserver votre Unity Matchmaker et déployer des serveurs sur Edgegap.
Vous cherchez des alternatives ? Découvrez notre solution gérée Appariement avec intégration du SDK et exemples.
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 :
que vous disposez d'une configuration Unity Matchmaking fonctionnelle,
que vous vous êtes inscrit sur Edgegap et que vous avez téléversé votre build de serveur Unity.
Veuillez consulter la documentation de matchmaking de Unity pour les sujets liés au matchmaking.
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
EdgegapAllocatordu 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
Récupérer l'adresse IP du joueur
Si aucune adresse IP du joueur n'est fournie, vos déploiements reviennent à l'emplacement de Los Alamos.
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
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 ?

