Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Plugin pour Unity : configurer des tests locaux avec Amazon GameLift Anywhere
Dans ce flux de travail, vous ajoutez du code de jeu client et serveur pour les GameLift fonctionnalités Amazon et vous utilisez le plugin pour désigner votre station de travail locale comme hôte de serveur de jeu de test. Lorsque vous avez terminé les tâches d'intégration, utilisez le plugin pour créer les composants du client et du serveur de votre jeu.
Pour démarrer le flux de travail Amazon GameLift Anywhere, procédez comme suit :
Dans le menu principal de l'éditeur Unity, choisissez Amazon, GameLift puis Host with Anywhere. Cette action ouvre la page du plugin permettant de configurer votre jeu avec un @Anywhere flotte. La page présente un processus en cinq étapes pour intégrer, créer et lancer les composants de votre jeu.
Définissez votre profil
Choisissez le profil que vous souhaitez utiliser lorsque vous suivez ce flux de travail. Le profil que vous sélectionnez a un impact sur toutes les étapes du flux de travail. Toutes les ressources que vous créez sont associées au AWS compte du profil et sont placées dans la AWS région par défaut du profil. Les autorisations de l'utilisateur du profil déterminent votre accès aux AWS ressources et aux actions.
-
Sélectionnez un profil dans la liste déroulante des profils disponibles. Si vous n'avez pas encore de profil ou si vous souhaitez en créer un nouveau, rendez-vous dans le GameLift menu Amazon et choisissez Set AWS Account Profiles.
-
Si le statut du bootstrap n'est pas « Actif », choisissez le profil Bootstrap et attendez que le statut passe à « Actif ».
Intégrez votre jeu à Amazon GameLift
Note
Si vous avez importé l'exemple de jeu, vous pouvez ignorer cette étape. Les exemples de ressources de jeu contiennent déjà le code serveur et client nécessaire.
Pour cette étape du flux de travail, vous devez mettre à jour le code du client et du serveur dans votre projet de jeu.
* Les serveurs de jeu doivent être en mesure de communiquer avec le GameLift service Amazon pour recevoir des instructions les invitant à démarrer une session de jeu, fournir des informations de connexion à une session de jeu et signaler le statut.
Les clients du jeu doivent être en mesure d'obtenir des informations sur les sessions de jeu, de rejoindre ou de démarrer des sessions de jeu, et d'obtenir des informations de connexion pour rejoindre une partie.
Intégrez le code de votre serveur
Si vous utilisez votre propre projet de jeu avec des scènes personnalisées, utilisez l'exemple de code fourni pour ajouter le code de serveur requis à votre projet de jeu :
-
Dans les fichiers de votre projet de jeu, ouvrez le
Assets/Scripts/Server
dossier. S'il n'existe pas, créez-le. -
Accédez au GitHub repo aws/ amazon-gamelift-plugin-unity
et ouvrez le chemin. Samples~/SampleGame/Assets/Scripts/Server
Localisez le fichier GameLiftServer .cs. et copiez-le dans le dossier Server de votre projet de jeu. Lorsque vous créez un exécutable de serveur, utilisez ce fichier comme cible de génération.
L'exemple de code inclut les éléments minimaux requis suivants, qui utilisent le serveur Amazon GameLift C# SDK (version 5) :
Initialise un GameLift API client Amazon. L'
InitSDK()
appel avec les paramètres du serveur est obligatoire pour une flotte Amazon GameLift Anywhere. Ces paramètres sont automatiquement définis pour être utilisés dans le plugin.Implémente les fonctions de rappel requises pour répondre aux demandes du GameLift service Amazon, notamment
OnStartGameSession
OnProcessTerminate
, etonHealthCheck
.Appels
ProcessReady()
avec un port désigné pour informer le GameLift service Amazon lorsque le processus du serveur est prêt à héberger des sessions de jeu.
Si vous souhaitez personnaliser l'exemple de code du serveur, consultez les ressources suivantes :
Intégrez votre code client
Si vous utilisez votre propre projet de jeu avec des scènes personnalisées, vous devez intégrer les fonctionnalités de base dans votre client de jeu. Vous devez également ajouter des éléments d'interface utilisateur afin que les joueurs puissent se connecter et rejoindre une session de jeu. Utilisez le GameLift service Amazon APIs (dans le AWS SDK) pour obtenir des informations sur les sessions de jeu, créer de nouvelles sessions de jeu ou rejoindre des sessions de jeu existantes,
Lorsque vous créez un client pour des tests locaux avec une flotte Anywhere, vous pouvez ajouter des appels directs au GameLift service Amazon. Lorsque vous développez votre jeu pour l'hébergement dans le cloud, ou si vous envisagez d'utiliser des flottes Anywhere pour l'hébergement de production, vous devez créer un service principal côté client pour gérer toutes les communications entre les clients du jeu et le service Amazon. GameLift
Pour GameLift intégrer Amazon dans votre code client, utilisez les ressources suivantes comme guide.
-
Intégrez le client à la GameLiftCoreApi classe dans le GitHub dépôt amazon-gamelift-plugin-unity aws/. Cette classe fournit des contrôles pour l'authentification des joueurs et pour la récupération des informations de session de jeu.
-
Consultez des exemples d'intégrations de jeux, disponibles dans le GitHub dépôt amazon-gamelift-plugin-unity aws/,.
Samples~/SampleGame/Assets/Scripts/Client/GameLiftClient.cs
-
Suivez les instructions de la section Ajouter Amazon GameLift à votre client de jeu Unity.
Pour les clients de jeu qui se connectent à une flotte Anywhere, votre client de jeu a besoin des informations suivantes. Le plugin met automatiquement à jour votre projet de jeu pour utiliser les ressources que vous avez créées dans le plugin.
FleetId - L'identifiant unique de votre flotte Anywhere.
FleetLocation - L'emplacement personnalisé de votre flotte Anywhere.
AwsRegion - La AWS région où est hébergée votre flotte Anywhere. Il s'agit de la région que vous avez définie dans votre profil utilisateur.
ProfileName - Un profil AWS d'identification sur votre machine locale qui permet d'accéder AWS SDK au formulaire GameLift. Le client du jeu utilise ces informations d'identification pour authentifier les demandes adressées au GameLift service Amazon.
Note
Le profil d'identification est généré par le plugin et stocké sur la machine locale. Par conséquent, vous devez exécuter le client sur la machine locale (ou sur une machine ayant le même profil).
Connectez-vous à une flotte n'importe où
Au cours de cette étape, vous désignez une flotte Anywhere à utiliser. Une flotte Anywhere définit un ensemble de ressources informatiques, qui peuvent être situées n'importe où, pour l'hébergement de serveurs de jeux.
Si le AWS compte que vous utilisez actuellement possède des flottes Anywhere existantes, ouvrez le champ déroulant Nom de la flotte et choisissez une flotte. Cette liste déroulante affiche uniquement les flottes Anywhere de la AWS région correspondant au profil utilisateur actuellement actif.
S'il n'existe aucune flotte existante, ou si vous souhaitez en créer une nouvelle, choisissez Create new Anywhere fleet et saisissez un nom de flotte.
Une fois que vous avez choisi une flotte Anywhere pour votre projet, Amazon GameLift vérifie que l'état de la flotte est actif et affiche l'identifiant de la flotte. Vous pouvez suivre la progression de cette demande dans le journal de sortie de l'éditeur Unity.
Enregistrer un ordinateur
Au cours de cette étape, vous enregistrez votre poste de travail local en tant que ressource de calcul dans le nouveau parc Anywhere.
Entrez un nom de calcul pour votre machine locale. Si vous ajoutez plusieurs ordinateurs au parc, les noms doivent être uniques.
Choisissez Register compute. Vous pouvez suivre la progression de cette demande dans le journal de sortie de l'éditeur Unreal.
Le plugin enregistre votre station de travail locale avec l'adresse IP définie sur localhost (127.0.0.1). Ce paramètre suppose que vous exécuterez le client et le serveur du jeu sur la même machine.
En réponse à cette action, Amazon GameLift vérifie qu'il peut se connecter au calcul et renvoie des informations sur le calcul nouvellement enregistré.
Lancer le jeu
Au cours de cette étape, vous créez les composants de votre jeu et vous les lancez pour jouer au jeu. Réalisez les tâches suivantes :
-
Configurez votre client de jeu. Au cours de cette étape, vous demandez au plugin de mettre à jour une
GameLiftClientSettings
ressource pour votre projet de jeu. Le plugin utilise cet actif pour stocker certaines informations dont votre client de jeu a besoin pour se connecter au GameLift service Amazon.-
Si vous n'avez pas importé et initialisé le jeu d'exemple, créez une nouvelle
GameLiftClientSettings
ressource. Dans le menu principal de l'éditeur Unity, choisissez Assets, Create GameLift, Client Settings. Si vous créez plusieurs copies de GameLiftClientSettings votre projet, le plugin le détecte automatiquement et vous indique quel actif le plugin va mettre à jour. -
Dans Launch Game, choisissez Configurer le client : appliquer les paramètres n'importe où. Cette action met à jour les paramètres de votre client de jeu pour utiliser la flotte Anywhere que vous venez de configurer.
-
Créez et exécutez votre client de jeu.
Créez un exécutable client en utilisant le processus de construction standard de Unity. Dans Fichier, Paramètres de compilation, basculez la plateforme sur Windows, Mac, Linux. Si vous avez importé l'exemple de jeu et initialisé les paramètres, la liste des builds et la cible des builds sont automatiquement mis à jour.
Lancez une ou plusieurs instances du nouveau fichier exécutable du client de jeu.
Lancez un serveur de jeu dans votre flotte Anywhere. Choisissez Serveur : Lancer le serveur dans l'éditeur. Cette tâche démarre un serveur live auquel votre client peut se connecter tant que l'éditeur Unity reste ouvert.
Démarrez ou rejoignez une session de jeu. Dans vos instances de client de jeu, utilisez l'interface utilisateur pour associer chaque client à une session de jeu. La manière dont vous procédez dépend de la manière dont vous avez ajouté des fonctionnalités au client.
Si vous utilisez l'exemple de client de jeu, il présente les caractéristiques suivantes :
Un composant de connexion des joueurs. Lorsque vous vous connectez à un serveur de jeu d'une flotte Anywhere, aucune validation n'est requise par le joueur. Vous pouvez saisir n'importe quelle valeur pour rejoindre la session de jeu.
Une interface utilisateur simple pour rejoindre le jeu. Lorsqu'un client tente de rejoindre une partie, il recherche automatiquement une session de jeu active avec un emplacement de joueur disponible. Si aucune session de jeu n'est disponible, le client demande une nouvelle session de jeu. Si une session de jeu est disponible, le client demande à rejoindre la session de jeu disponible. Lorsque vous testez votre jeu avec plusieurs clients simultanés, le premier client démarre la session de jeu et les autres clients rejoignent automatiquement la session de jeu existante.
Sessions de jeu avec des machines à sous pour quatre joueurs. Vous pouvez lancer jusqu'à quatre instances de client de jeu simultanément et elles rejoindront la même session de jeu.
Lancer depuis un exécutable du serveur (facultatif)
Vous pouvez créer et lancer le fichier exécutable de votre serveur de jeu pour le tester sur une flotte Anywhere.
Créez un exécutable de serveur en utilisant le processus de construction standard de Unity. Dans Fichier, Paramètres de construction, passez de la plate-forme à un serveur dédié et créez.
-
Obtenez un jeton d'authentification à court terme en appelant la AWS CLI commande get-compute-auth-tokenavec l'ID de votre flotte Anywhere et votre AWS région. L'identifiant du parc est affiché dans Connect to an Anywhere Fleet lorsque vous créez le parc. La AWS région s'affiche dans Set Your Profile lorsque vous sélectionnez votre profil actif.
aws gamelift get-compute-auth-token --fleet-id [your anywhere fleet ID] --region [your AWS region]
-
Lancez le nouveau fichier exécutable du serveur de jeu à partir d'une ligne de commande et transmettez un jeton d'authentification valide.
my_project.exe --authToken [token]