Interactions entre Amazon GameLift et le serveur du jeu - 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.

Interactions entre Amazon GameLift et le serveur du jeu

Cette rubrique décrit les interactions entre le client du jeu, un service principal, un serveur de jeu et AmazonGameLift.

Le schéma suivant illustre les interactions entre le client du jeu, le service principal, le GameLift SDK Amazon, le serveur de jeu EC2 géré, le SDK du GameLift serveur Amazon et Amazon. GameLift Pour une description détaillée des interactions présentées, consultez les sections suivantes de cette page.

Interactions client-serveur du jeu pour les cas d'utilisation répertoriés dans les sections suivantes.

Initialiser un serveur de jeu

Les étapes suivantes décrivent les interactions qui se produisent lorsque vous préparez votre serveur de jeu à héberger des sessions de jeu.

  1. Amazon GameLift lance l'exécutable du serveur sur une instance Amazon Elastic Compute Cloud (Amazon EC2).

  2. Le serveur de jeu appelle :

    1. InitSDK() pour initialiser le kit SDK Server.

    2. ProcessReady()pour communiquer l'état de préparation de la session de jeu, les informations de connexion et l'emplacement des fichiers journaux des sessions de jeu.

    Le processus du serveur attend ensuite un rappel d'Amazon. GameLift

  3. Amazon GameLift met à jour l'état du processus du serveur pour ACTIVE permettre le placement des sessions de jeu.

  4. Amazon GameLift commence à appeler le onHealthCheck rappel et continue de l'appeler régulièrement pendant que le processus du serveur est actif. Le processus du serveur peut signaler qu'il est sain ou non en moins d'une minute.

Créer une session de jeu

Une fois que vous avez initialisé votre serveur de jeu, les interactions suivantes se produisent lorsque vous créez des sessions de jeu pour héberger vos joueurs.

  1. Le service principal appelle l'opération du SDK. StartGameSessionPlacement()

  2. Amazon GameLift crée un nouveau GameSessionPlacement ticket avec le statut PENDING et le renvoie au service principal.

  3. Le service principal obtient le statut d'un ticket de placement à partir d'une file d'attente. Pour plus d'informations, veuillez consulter Configurer une notification d'événement pour le placement des sessions de jeu.

  4. Amazon GameLift commence par placer les sessions de jeu en sélectionnant une flotte appropriée et en recherchant un processus de serveur actif dans une flotte contenant des sessions de 0 jeu. Lorsqu'Amazon GameLift localise un processus serveur, Amazon GameLift effectue les opérations suivantes :

    1. Crée un GameSession objet avec les paramètres de session de jeu et les données du joueur à partir de la demande de placement avec un ACTIVATING statut.

    2. Invoque le onStartGameSession rappel sur le processus serveur. Amazon GameLift transmet des informations à l'GameSessionobjet indiquant que le processus du serveur peut configurer la session de jeu.

    3. Modifie le nombre de sessions de jeu du processus serveur en1.

  5. Le processus serveur exécute la fonction de onStartGameSession rappel. Lorsque le processus serveur est prêt à accepter les connexions des joueurs, il appelle ActivateGameSession() et attend les connexions des joueurs.

  6. Amazon GameLift met à jour l'GameSessionobjet avec les informations de connexion pour le processus serveur. (Ces informations incluent le paramètre de port qui a été signalé avecProcessReady().) Amazon change GameLift également le statut enACTIVE.

  7. Le service principal appelle DescribeGameSessionPlacement() pour détecter l'état mis à jour du ticket. Le service principal utilise ensuite les informations de connexion pour connecter le client du jeu au processus serveur et rejoindre la session de jeu.

Ajouter un joueur à un jeu

Cette séquence décrit le processus d'ajout d'un joueur à une session de jeu existante. Les sessions des joueurs peuvent également être demandées dans le cadre d'une demande de placement de session de jeu.

  1. Le service principal appelle l'opération de l'API client à l'CreatePlayerSession()aide d'un identifiant de session de jeu.

  2. Amazon GameLift vérifie l'état de la session de jeu (doit l'êtreACTIVE) et recherche un emplacement de joueur ouvert pendant la session de jeu. Si un emplacement est disponible, Amazon GameLift procède comme suit :

    1. Crée un nouvel PlayerSession objet et définit son statut surRESERVED.

    2. Répond à la demande de service principal avec l'PlayerSessionobjet.

  3. Le service principal connecte le client du jeu directement au processus du serveur à l'aide de l'identifiant de session du joueur.

  4. Le serveur appelle l'opération de l'API du serveur AcceptPlayerSession() pour valider l'ID de session du joueur. En cas de validation, Amazon GameLift transmet l'PlayerSessionobjet au processus du serveur. Le processus serveur accepte ou refuse la connexion.

  5. Amazon GameLift effectue l'une des opérations suivantes :

    1. Si la connexion est acceptée, Amazon GameLift définit le PlayerSession statut surACTIVE.

    2. Si aucune réponse n'est reçue dans les 60 secondes suivant l'CreatePlayerSession()appel initial du serveur principal, Amazon GameLift change le PlayerSession statut TIMEDOUT et ouvre à nouveau l'emplacement du joueur pendant la session de jeu.

Supprimer un joueur

Lorsque vous supprimez des joueurs d'une session de jeu pour créer de l'espace pour que de nouveaux joueurs puissent y participer, les interactions suivantes se produisent.

  1. Un joueur se déconnecte du jeu.

  2. Le serveur détecte la perte de connexion et appelle l'opération de l'API du serveurRemovePlayerSession().

  3. Amazon GameLift change le PlayerSession statut COMPLETED et ouvre à nouveau l'emplacement du joueur pendant la session de jeu.

Arrêter la session de jeu

Cette séquence d'interactions se produit lorsqu'un processus serveur arrête la session de jeu en cours.

  1. Le serveur ferme la session de jeu et le serveur.

  2. Le serveur appelle ProcessEnding() AmazonGameLift.

  3. Amazon GameLift effectue les opérations suivantes :

    1. Importe les journaux des sessions de jeu vers Amazon Simple Storage Service (Amazon S3).

    2. Remplace le GameSession statut parTERMINATED.

    3. Modifie l'état du processus du serveur enTERMINATED.

    4. Recycle les ressources de l'instance.