View a markdown version of this page

Plugin pour Unity : déployez votre jeu sur une flotte EC2 gérée - GameLift Serveurs Amazon

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 : déployez votre jeu sur une flotte EC2 gérée

Dans ce flux de travail, vous utilisez le plug-in pour préparer votre jeu à l'hébergement sur des ressources informatiques basées sur le cloud gérées parAmazon GameLift Servers. Vous ajoutez le code de jeu du client et du serveur pour les Amazon GameLift Servers fonctionnalités, puis vous téléchargez la version de votre serveur sur le Amazon GameLift Servers service d'hébergement. Une fois ce flux de travail terminé, vous disposerez de serveurs de jeu exécutés dans le cloud et d'un client de jeu fonctionnel qui pourra s'y connecter.

Pour démarrer le GameLift Serveurs Amazon flux de travail Amazon EC2 géré :
  • Dans le menu principal de l'éditeur Unity, choisissez Amazon GameLift Servers et sélectionnez Host with Managed EC2. Ce flux de travail présente un processus en six étapes pour intégrer, créer, déployer 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.

  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, allez dans le Amazon GameLift Servers menu et choisissez Définir les profils de AWS compte.

  2. Si l'état du bootstrap n'est pas « Actif », choisissez le profil Bootstrap et attendez que le statut passe à « Actif ».

Intégrez votre jeu à GameLift Serveurs Amazon

Pour cette tâche, 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 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.

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.

Intégrez le code de votre serveur

Lorsque 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. Si vous avez intégré votre projet de jeu à une flotte Anywhere pour le tester, vous avez déjà suivi les instructions de cette étape.

  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 dépôt 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 Server dossier 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'appel initSDK () avec les paramètres du serveur est requis pour une Amazon GameLift Servers flotte 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

Pour les clients de jeux qui se connectent à des serveurs de jeu basés sur le cloud, il est recommandé d'utiliser un service backend côté client pour passer des appels vers le Amazon GameLift Servers service, au lieu de passer les appels directement depuis le client du jeu.

Dans le flux de travail du plug-in pour l'hébergement sur une flotte EC2 gérée, chaque scénario de déploiement inclut un service backend prédéfini qui inclut les composants suivants :

  • Ensemble de fonctions Lambda et de tables DynamoDB utilisées pour demander des sessions de jeu et récupérer des informations sur les sessions de jeu. Ces composants utilisent une passerelle API comme proxy.

  • Un groupe d'utilisateurs Amazon Cognito qui génère des identifiants de joueurs uniques et authentifie les connexions des joueurs.

Pour utiliser ces composants, votre client de jeu a besoin d'une fonctionnalité permettant d'envoyer des demandes au service principal pour effectuer les opérations suivantes :

  • Créez un utilisateur joueur dans le AWS groupe d'utilisateurs Cognito et authentifiez-vous.

  • Participez à une session de jeu et recevez les informations de connexion.

  • Rejoignez un jeu en utilisant le matchmaking.

Utilisez les ressources suivantes comme guide.

(Unity 6.3+ uniquement) Intégrer le script install.sh

Unity 6.3 sous Linux nécessite la glibc 2.35. Amazon Linux 2023 inclut la glibc 2.34. Un script install.sh est fourni qui gère la construction de la glibc 2.35 à partir des sources et la configuration des fichiers binaires Unity pour utiliser la glibc 2.35.

  1. Accédez au GitHub dépôt aws/amazon -gamelift-plugin-unity et ouvrez le chemin. ExtraServerResources

  2. Localisez le fichier install.sh et copiez-le dans le dossier contenant la version de votre serveur.

  3. Si vous en avez uninstall.sh, fusionnez le contenu des deux scripts en un seulinstall.sh.

Sélectionnez un scénario de déploiement

Dans cette étape, vous choisissez la solution d'hébergement de jeux que vous souhaitez déployer à ce stade. Vous pouvez effectuer plusieurs déploiements de votre jeu, en utilisant n'importe quel scénario.

  • Single-region flotte : déploie votre serveur de jeu sur une seule flotte de ressources d'hébergement dans la AWS région par défaut du profil actif. Ce scénario constitue un bon point de départ pour tester l'intégration de votre serveur AWS et sa configuration de génération. Il déploie les ressources suivantes :

    • AWS fleet (On-Demand) avec la version de votre serveur de jeu installée et en cours d'exécution.

    • Groupe d'utilisateurs et client Amazon Cognito pour permettre aux joueurs de s'authentifier et de démarrer une partie.

    • Autorisateur de passerelle d'API qui relie le groupe d'utilisateurs aux API.

    • WebACL pour limiter les appels excessifs des joueurs à la passerelle API.

    • Passerelle API + fonction Lambda permettant aux joueurs de demander un emplacement de jeu. Cette fonction est appelée CreateGameSession() si aucune n'est disponible.

    • Passerelle API + fonction Lambda permettant aux joueurs d'obtenir des informations de connexion pour leur demande de jeu.

  • FlexMatch flotte : déploie votre serveur de jeu sur un ensemble de flottes et met en place un système de FlexMatch matchmaking avec des règles pour créer des matchs entre joueurs. Ce scénario utilise un hébergement Spot à faible coût avec une structure multi-flottes et multi-sites pour une disponibilité durable. Cette approche est utile lorsque vous êtes prêt à commencer à concevoir un composant de matchmaking pour votre solution d'hébergement. Dans ce scénario, vous allez créer les ressources de base pour cette solution, que vous pourrez personnaliser ultérieurement si nécessaire. Il déploie les ressources suivantes :

    • FlexMatch configuration du matchmaking et définition de règles de matchmaking pour accepter les demandes des joueurs et former des matchs.

    • Trois AWS flottes avec votre version de serveur de jeu installée et fonctionnant à plusieurs endroits. Comprend deux flottes Spot et une On-Demand flotte de secours.

    • AWS file d'attente de placement des sessions de jeu qui répond aux demandes de matchs proposés en trouvant la meilleure ressource d'hébergement possible (en fonction de la viabilité, du coût, de la latence des joueurs, etc.) et en démarrant une session de jeu.

    • Groupe d'utilisateurs et client Amazon Cognito pour permettre aux joueurs de s'authentifier et de démarrer une partie.

    • Autorisateur de passerelle d'API qui relie le groupe d'utilisateurs aux API.

    • WebACL pour limiter les appels excessifs des joueurs à la passerelle API.

    • Passerelle API + fonction Lambda permettant aux joueurs de demander un emplacement de jeu. Cette fonction appelleStartMatchmaking().

    • Passerelle API + fonction Lambda permettant aux joueurs d'obtenir des informations de connexion pour leur demande de jeu.

    • Tableaux Amazon DynamoDB pour stocker des tickets de matchmaking pour les joueurs et des informations sur les sessions de jeu.

    • Rubrique SNS + fonction Lambda pour gérer les événements. GameSessionQueue

Définissez les paramètres du jeu

Au cours de cette étape, vous allez décrire le jeu sur lequel vous souhaitez le télécharger AWS.

  • Nom du jeu : donnez un nom significatif à votre projet de jeu. Ce nom est utilisé dans le plugin.

  • Nom de la flotte : donnez un nom significatif à votre flotte EC2 gérée. Amazon GameLift Serversutilise ce nom (ainsi que l'ID de flotte) pour répertorier les ressources dans la AWS console.

  • Nom de build : donnez un nom significatif à la version de votre serveur. AWS utilise ce nom pour faire référence à la copie de la version de votre serveur qui est chargée Amazon GameLift Servers et utilisée pour les déploiements.

  • Paramètres de lancement : entrez les instructions facultatives à exécuter lors du lancement de l'exécutable du serveur sur une instance de flotte EC2 gérée. La longueur maximale est de 1024 caractères.

  • Dossier du serveur de jeu : indiquez le chemin d'accès à un dossier local contenant la version de votre serveur.

  • Fichier du serveur de jeu : Spécifiez le nom du fichier exécutable du serveur.

Scénario de déploiement

Au cours de cette étape, vous déployez votre jeu sur une solution d'hébergement cloud en fonction du scénario de déploiement que vous avez choisi. Ce processus peut prendre plusieurs minutes pour AWS valider la construction de votre serveur, provisionner les ressources d'hébergement, installer votre serveur de jeu, lancer les processus du serveur et les préparer à héberger des sessions de jeu.

Pour démarrer le déploiement, choisissez Déployer CloudFormation. Vous pouvez suivre l'état de l'hébergement de vos jeux ici. Pour plus d'informations, vous pouvez vous connecter à la console AWS de gestion AWS et consulter les notifications d'événements. Assurez-vous de vous connecter en utilisant le même compte, le même utilisateur et AWS la même région que le profil utilisateur actif dans le plugin.

Une fois le déploiement terminé, votre serveur de jeu est installé sur une instance AWS EC2. Au moins un processus serveur est en cours d'exécution et prêt à démarrer une session de jeu.

Lancer le client du jeu

Lorsque votre flotte est déployée avec succès, vous disposez désormais de serveurs de jeu actifs et disponibles pour héberger des sessions de jeu. Vous pouvez maintenant créer votre client, le lancer, vous connecter pour rejoindre la session de jeu.

  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 Amazon GameLift Servers service.

    1. Si vous n'avez pas importé et initialisé l'exemple de jeu, créez une nouvelle GameLiftClientSettings ressource. Dans le menu principal de l'éditeur Unity, choisissez Assets, Create, Amazon GameLift, Client Settings. Si vous créez plusieurs copies de GameLiftClientSettings dans votre projet, le plugin le détecte automatiquement et vous indique quel actif le plugin mettra à jour.

    2. Dans Launch Game, choisissez Configurer le client : appliquer les paramètres EC2 gérés. Cette action met à jour les paramètres de votre client de jeu pour utiliser la flotte EC2 gérée que vous venez de déployer.

  2. Créez 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.

  3. Lancez l'exécutable du client de jeu nouvellement créé. Pour commencer à jouer, démarrez deux à quatre instances clientes et utilisez l'interface utilisateur de chacune pour rejoindre une session de jeu.

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.