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 : configurez les tests locaux avec GameLift Serveurs Amazon N'importe où
Dans ce flux de travail, vous ajoutez du code de jeu client et serveur à des fins de Amazon GameLift Servers fonctionnalité et vous utilisez le plug-in 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 plug-in pour créer les composants du client et du serveur de votre jeu.
Pour démarrer le GameLift Serveurs Amazon Workflow en tout lieu :
Dans le menu principal de l'éditeur Unity, choisissez Amazon GameLift Servers et sélectionnez Host with Anywhere. Cette action ouvre la page du plugin pour configurer votre jeu avec une flotte @Anywhere. 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 pour suivre 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, allez dans le Amazon GameLift Servers menu et choisissez Définir les profils de AWS compte.
-
Si l'état du bootstrap n'est pas « Actif », choisissez le profil Bootstrap et attendez que le statut passe à « Actif ».
Intégrez le code de votre jeu au SDK du serveur C#
Note
Si vous avez importé l'exemple de jeu, vous pouvez ignorer cette étape. Les éléments du jeu d'exemple contiennent déjà le code serveur et client nécessaire.
Pour cette étape du flux de travail, vous apportez des mises à jour au code client et serveur de votre projet de jeu.
Les serveurs de jeu doivent être en mesure de communiquer avec le Amazon GameLift Servers service pour recevoir des instructions pour démarrer une session de jeu, fournir des informations de connexion à la session de jeu et signaler l'état de la session.
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 serveur requis à votre projet de jeu :
-
Dans les fichiers de votre projet de jeu, ouvrez le
Assets/Scripts/Serverdossier. S'il n'existe pas, créez-le. -
Accédez au GitHub dépôt aws/amazon -gamelift-plugin-unity
et ouvrez le chemin. Samples~/SampleGame/Assets/Scripts/Server Localisez le fichier
GameLiftServer.cset copiez-le dans leServerdossier 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 suivants, qui utilisent le SDK du serveur Amazon GameLift Servers C# (version 5) :
Initialise un client Amazon GameLift Servers API. L'
InitSDK()appel avec les paramètres du serveur est obligatoire pour une flotte Amazon GameLift Servers 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 Amazon GameLift Servers service, notamment
OnStartGameSessionOnProcessTerminate, etonHealthCheck.Appels
ProcessReady()via un port désigné pour avertir le Amazon GameLift Servers service lorsque le processus du serveur est prêt à héberger des sessions de jeu.
Si vous souhaitez personnaliser l'exemple de code de 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 des fonctionnalités de base à 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 l'API de service pour Amazon GameLift Servers (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 Amazon GameLift Servers service. Lorsque vous développez votre jeu pour l'hébergement dans le cloud, ou si vous envisagez d'utiliser les flottes Anywhere pour l'hébergement de production, vous devez créer un service backend côté client pour gérer toutes les communications entre les clients du jeu et le service. Amazon GameLift Servers
Pour l'Amazon GameLift Serversintégrer à votre code client, utilisez les ressources suivantes comme guide.
-
Intégrez le client à la GameLiftCoreApi classe du GitHub dépôt aws/amazon -gamelift-plugin-unity. Cette classe fournit des commandes 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 référentiel aws/amazon -gamelift-plugin-unity,.
Samples~/SampleGame/Assets/Scripts/Client/GameLiftClient.cs -
Suivez les instructions de la section Ajouter Amazon GameLift Servers à 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 créez 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'informations d'identification sur votre machine locale qui permet d'accéder au AWS SDK pourAmazon GameLift Servers. Le client du jeu utilise ces informations d'identification pour authentifier les demandes adressées au Amazon GameLift Servers service.
Note
Le profil d'informations 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 avec le même profil).
Connectez-vous à une flotte en tout lieu
Au cours de cette étape, vous devez désigner une flotte Anywhere à utiliser. Une flotte Anywhere définit un ensemble de ressources de calcul, qui peuvent être localisé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 pour le profil utilisateur actuellement actif.
S'il n'existe aucune flotte existante ou si vous souhaitez en créer une nouvelle, choisissez Créer une nouvelle flotte Anywhere et indiquez un nom de flotte.
Une fois que vous avez choisi une flotte Anywhere pour votre projet, vérifiez que Amazon GameLift Servers 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 station de travail locale en tant que ressource de calcul dans la nouvelle flotte Anywhere.
Entrez un nom de calcul pour votre machine locale. Si vous ajoutez plusieurs calculs à la flotte, les noms doivent être uniques.
Choisissez Register le calcul. Vous pouvez suivre la progression de cette demande dans le journal de sortie de l'éditeur Unity.
Le plugin enregistre votre poste de travail local avec l'adresse IP définie sur localhost (127.0.0.1). Ce réglage suppose que vous exécuterez votre client de jeu et votre serveur sur la même machine.
En réponse à cette action, Amazon GameLift Servers 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 y jouer. Réalisez les tâches suivantes :
-
Configurez votre client de jeu. Au cours de cette étape, vous demandez au plugin de mettre à jour une
GameLiftClientSettingsressource 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 Amazon GameLift Servers service.-
Si vous n'avez pas importé et initialisé l'exemple de jeu, créez une nouvelle
GameLiftClientSettingsressource. Dans le menu principal de l'éditeur Unity, choisissez Assets, Create, Amazon GameLift, Client Settings. Si vous créez plusieurs copies deGameLiftClientSettingsdans votre projet, le plugin le détecte automatiquement et vous indique quel actif le plugin mettra à jour. -
Dans Launch Game, choisissez Configurer le client : appliquer les paramètres de 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 à l'aide du processus de génération standard de Unity. Dans Fichier, Paramètres de génération, basculez la plate-forme sur Windows, Mac, Linux. Si vous avez importé l'exemple de jeu et initialisé les paramètres, la liste de build et la cible de build sont automatiquement mises à jour.
Lancez une ou plusieurs instances de l'exécutable du client de jeu nouvellement créé.
Lancez un serveur de jeu dans votre flotte Anywhere. Choisissez Serveur : lancez le serveur dans l'éditeur. Cette tâche démarre un serveur actif auquel votre client peut se connecter tant que l'éditeur Unity reste ouvert.
Démarrez ou rejoignez une session de jeu. Dans les instances de votre client de jeu, utilisez l'interface utilisateur pour associer chaque client à une session de jeu. La procédure à suivre 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 du joueur. Lors de la connexion à un serveur de jeu d'une flotte Anywhere, il n'y a aucune validation du 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 clientes de jeu simultanément et elles rejoindront la même session de jeu.
Lancer depuis un serveur exécutable (facultatif)
Vous pouvez créer et lancer l'exécutable de votre serveur de jeu pour le tester sur une flotte Anywhere.
Créez un exécutable de serveur à l'aide du processus de génération standard de Unity. Dans Fichier, Paramètres de génération, basculez la plate-forme sur Serveur dédié et générez.
-
Obtenez un jeton d'authentification de courte durée en appelant la commande AWS CLI get-compute-auth-token à l'aide de votre identifiant de parc Anywhere et de votre région. AWS L'identifiant de la flotte est affiché dans Connect to an Anywhere Fleet lorsque vous créez la flotte. La AWS région s'affiche dans Définir votre profil lorsque vous sélectionnez votre profil actif.
aws gamelift get-compute-auth-token --fleet-id [your anywhere fleet ID] --region [your AWS region] -
Lancez l'exécutable du serveur de jeu nouvellement créé à partir d'une ligne de commande et transmettez un jeton d'authentification valide.
my_project.exe --authToken [token]