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.
Générez des demandes de remblayage manuelles à partir d'un service principal
Comme alternative à l'envoi de requêtes de renvoi à partir d'un serveur de jeux, vous pouvez les envoyer à partir d'un service de jeu côté client. Pour utiliser cette option, le service côté client doit avoir accès aux données actuelles sur l'activité de session de jeu et des connexions joueur. Si votre jeu utilise un service d'annuaire de session, cela pourrait être un bon choix.
Il suppose que vous avez déjà créé les composants FlexMatch nécessaires et ajouté avec succès les processus de mise en relation au serveur de jeux et à un service de jeu côté client. Pour plus d'informations sur la configuration de FlexMatch, consultez Feuille de route : Ajouter le matchmaking à une solution Amazon GameLift Servers d'hébergement.
Pour activer le remplissage des parties pour votre jeu, vous devez ajouter les fonctionnalités suivantes :
-
Envoyer les demandes de remplissage à un matchmaker et suivre l'état de ces demandes.
-
Mettre à jour les informations de correspondance pour la session de jeu. Consultez Mettre à jour les données des matchs sur le serveur de jeu
Comme pour les autres fonctionnalités client, un service de jeu côté client utilise le AWS SDK avec API. Amazon GameLift Servers Ce kit SDK est disponible en C++, C # et plusieurs autres langages. Pour une description générale du client APIs, consultez la référence de l'Amazon GameLift ServersAPI, qui décrit l'API du service pour les Amazon GameLift Servers actions et les liens vers des guides de référence spécifiques au langage.
Pour configurer un service de jeu côté client pour le renvoi de jeux correspondants, exécutez les tâches suivantes.
-
Déclenchez une requête pour le renvoi. En général, un jeu initie une requête de renvoi chaque fois qu'un jeu correspondant comporte un ou plusieurs emplacements de joueur vides. Vous pouvez si vous le souhaitez lier des requêtes de renvoi à des circonstances spécifiques, comme des rôles de personnages critiques ou l'équilibrage des équipes. Vous pouvez aussi limiter le renvoi en fonction de l'ancienneté d'une session de jeu. Quel que soit l'élément que vous utilisez pour un déclencheur, vous devrez au minimum connaître les informations suivantes. Vous pouvez obtenir ces informations à partir de l'objet de session de jeu (GameSession) en appelant DescribeGameSessionsavec un identifiant de session de jeu.
-
Nombre d'emplacements de joueur actuellement vides. Cette valeur peut être calculée à partir de la limite de joueur maximale d'une session de jeu et du nombre de joueurs en cours. Le nombre de joueurs en cours est mis à jour dès que votre serveur de jeux contacte les service Amazon GameLift Servers pour valider la connexion d'un nouveau joueur ou pour signaler un joueur qui a abandonné.
-
Stratégie de création. Ce paramètre indique si la session de jeu accepte actuellement de nouveaux joueurs.
L'objet de session de jeu peut potentiellement contenir d'autres informations utiles, comme l'heure de début de la session de jeu, les propriétés de jeu personnalisées et les données de matchmaker.
-
-
Créez une requête de renvoi. Ajoutez le code pour créer et envoyer les requêtes de renvoi de correspondance à un matchmaker FlexMatch. Les demandes de remblayage sont traitées à l'aide des clients APIs suivants :
Pour créer une requête de renvoi, appelez
StartMatchBackfillavec les informations suivantes. Une requête de renvoi est similaire à une requête de correspondance (consultez Demandez le matchmaking pour les joueurs), mais elle identifie également la session de jeu existante. Pour annuler une requête de renvoi, appelezStopMatchmakingavec l'identifiant de ticket de requête de renvoi.-
Numéro de ticket — Fournissez un identifiant de ticket de matchmaking (ou optez pour qu'il soit généré automatiquement). Vous pouvez utiliser le même mécanisme pour attribuer un ticket à IDs la fois aux demandes de matchmaking et de remplissage. Les tickets de correspondance et de renvoi sont traités de la même manière.
-
Matchmaker — Identifiez le nom d'une configuration de matchmaking à utiliser. En général, vous devrez utiliser le matchmaker pour le renvoi qui a été utilisé pour créer la correspondance d'origine. Ces informations se trouvent dans un objet de session de jeu (GameSession), une
MatchmakerDatapropriété, sous l'ARN de configuration de matchmaking. La valeur de nom est la chaîne qui suit « matchmakingconfiguration / ». (Par exemple, dans la valeur d'ARN « arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MM-4v4 », le nom de la configuration de correspondance est « MM-4v4 ».) -
ARN de session de jeu — Spécifiez la session de jeu à compléter. Utilisez la propriété
GameSessionIdde l'objet de session de jeu ; cet identifiant utilise la valeur d'ARN dont vous avez besoin. Les tickets de matchmaking (MatchmakingTicket) pour les demandes de remplacement portent l'identifiant de session de jeu lorsqu'ils sont traités ; les tickets pour les nouvelles demandes de matchmaking ne reçoivent pas d'identifiant de session de jeu tant que le match n'est pas placé ; la présence d'un identifiant de session de jeu est un moyen de faire la différence entre les tickets pour les nouveaux matchs et les tickets pour les remplacements. -
Données du joueur — Incluez les informations du joueur (joueur) pour tous les joueurs actuels de la session de jeu que vous êtes en train de remplacer. Ces information permettent au matchmaker de localiser les meilleures correspondances de joueur possibles pour les joueurs actuellement dans la session de jeu. Vous devez inclure les membres de l'équipe pour chaque joueur. Ne spécifiez pas d'équipe si vous n'utilisez pas de remblai. Si votre serveur de jeux indique de manière précise l'état de connexion des joueurs, vous devez pouvoir acquérir ces données comme suit :
-
Appelez DescribePlayerSessions() avec l'identifiant de session de jeu pour découvrir tous les joueurs actuellement connectés à la session de jeu. Chaque session de joueur inclut un identifiant de joueur. Vous pouvez ajouter un filtre de statut pour récupérer les sessions de joueur actives uniquement.
-
Extraire les données du joueur depuis l'objet de la session de jeu (GameSession),
MatchmakerDatala propriété (voirÀ propos des données du système de matchmaking. Utilisez le joueur IDs acquis à l'étape précédente pour obtenir des données uniquement pour les joueurs actuellement connectés. Dans la mesure où les données de matchmaker ne sont pas mises à jour lorsque les joueurs abandonnent, vous devez extraire les données des joueurs actuels uniquement. -
Pour la latence de joueur, si le matchmaker appelle les données de latence, collectez les nouvelles valeurs de latence de tous les joueurs actuels et incluez-les dans l'objet
Player. Si les données de latence sont omises et si le matchmaker utilise une règle de latence, la requête ne sera pas correctement mise en correspondance. Les requêtes de renvoi nécessitent les données de latence uniquement pour la région dans laquelle se trouve actuellement la session de jeu. Vous pouvez obtenir la région d'une session de jeu dans la propriétéGameSessionIdde l'objetGameSession; cette valeur est un ARN, lequel inclut la région.
-
-
-
Suivez l'état de la requête de renvoi. Ajoutez du code pour écouter les mises à jour de statut du ticket de correspondance. Vous pouvez utiliser le mécanisme défini pour suivre les tickets des nouvelles requêtes de correspondance (consultez Suivez les événements de matchmaking) à l'aide de la notification d'événement (préférée) ou l'interrogation. Même s'il n'est pas nécessaire de déclencher l'activité d'acceptation de joueur à l'aide de requêtes de renvoi, et si les informations de joueur sont mises à jour sur le serveur de jeux, vous devez toujours surveiller le statut du ticket pour gérer les erreurs de requêtes et les nouvelles soumissions de requêtes.
Un matchmaker peut uniquement traiter une seul requête de renvoi de correspondance depuis une session de jeu à la fois. Si vous devez annuler une requête, appelez StopMatchmaking. Si vous devez modifier une requête, appelez
StopMatchmakinget soumettez une requête mise à jour.Dès qu'une requête de renvoi aboutit, votre serveur de jeux reçoit un objet
GameSessionmis à jour et gère les tâches nécessaires pour associer de nouveaux joueurs à la session de jeu. Pour plus d'informations, consultez Mettre à jour les données des matchs sur le serveur de jeu.