Configurez votre jeu pour des tests locaux avec Amazon GameLift Anywhere - Amazon GameLift

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.

Configurez votre jeu pour 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 une 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.

  1. 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.

  2. 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 :

  1. Dans les fichiers de votre projet de jeu, ouvrez le Assets/Scripts/Server dossier. S'il n'existe pas, créez-le.

  2. Accédez au GitHub repo aws/ amazon-gamelift-plugin-unity et ouvrez le chemin. Samples~/SampleGame/Assets/Scripts/Server

  3. Localisez le fichier GameLiftServer .cs. et copiez-le dans le dossier Server de votre projet de jeu. Lorsque vous créez un fichier exécutable pour le serveur, utilisez ce fichier comme cible de génération.

L'exemple de code inclut les éléments minimaux requis suivants, qui utilisent le SDK du serveur Amazon GameLift C# (version 5) :

  • Initialise un client d' GameLift API 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 OnStartGameSessionOnProcessTerminate, 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 les API du GameLift service Amazon (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 dans laquelle votre flotte Anywhere est hébergée. 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 au AWS SDK pour 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.

  1. Entrez un nom de calcul pour votre machine locale. Si vous ajoutez plusieurs ordinateurs dans le parc, les noms doivent être uniques.

  2. 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 :

  1. 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.

    1. 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.

    2. 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.

  2. Créez et exécutez votre client de jeu.

    1. 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.

    2. Lancez une ou plusieurs instances du nouveau fichier exécutable du client de jeu.

  3. 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.

  4. 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 à partir d'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.

  1. Créez un exécutable de serveur à l'aide du processus de construction standard de Unity. Dans Fichier, Paramètres de construction, passez de la plate-forme à un serveur dédié et créez.

  2. Obtenez un jeton d'authentification à court terme en appelant la commande AWS CLI get-compute-auth-tokenavec votre identifiant de 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]
  3. Lancez le nouveau fichier exécutable du serveur de jeu depuis une ligne de commande et transmettez un jeton d'authentification valide.

    my_project.exe --authToken [token]