Füge Amazon GameLift zu deinem Spielclient hinzu - Amazon GameLift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Füge Amazon GameLift zu deinem Spielclient hinzu

Integrieren Sie Amazon GameLift in Spielkomponenten, die Informationen zu Spielsitzungen benötigen, erstellen Sie neue Spielsitzungen und fügen Sie Spieler zu Spielen hinzu. Abhängig von Ihrer Spielarchitektur ist diese Funktionalität in Backend-Diensten enthalten, die Aufgaben wie Spielerauthentifizierung, Spielersuche oder Platzierung von Spielsitzungen übernehmen.

Anmerkung

Detaillierte Informationen zur Einrichtung von Matchmaking für Ihr von Amazon GameLift gehostetes Spiel finden Sie im Amazon GameLift FlexMatch Developer Guide.

Amazon GameLift auf einem Backend-Service einrichten

Fügen Sie Code hinzu, um einen GameLift Amazon-Client zu initialisieren und wichtige Einstellungen zu speichern. Dieser Code muss vor jedem Code ausgeführt werden, der von Amazon abhängig ist GameLift.

  1. Richten Sie eine Client-Konfiguration ein. Verwenden Sie die Standard-Client-Konfiguration oder erstellen Sie ein benutzerdefiniertes Client-Konfigurationsobjekt. Weitere Informationen finden Sie unter AWS::Client::ClientConfiguration(C++) oder AmazonGameLiftConfig(C#).

    Eine Client-Konfiguration spezifiziert eine Zielregion und einen Endpunkt, die bei der Kontaktaufnahme mit Amazon verwendet GameLift werden sollen. Die Region gibt die Menge der bereitgestellten Ressourcen (Flotten, Warteschlangen und Matchmaker) an, die verwendet werden sollen. In der Standard-Client-Konfiguration ist der Standort auf die Region USA Ost (Nord-Virginia) festgelegt. Um eine andere Region zu verwenden, erstellen Sie eine benutzerdefinierte Konfiguration.

  2. Initialisieren Sie einen GameLift Amazon-Client. Verwenden Sie Aws:GameLift::: GameLiftClient () (C++) oder AmazonGameLiftClient() (C#) mit einer Standard-Client-Konfiguration oder einer benutzerdefinierten Client-Konfiguration.

  3. Fügen Sie einen Mechanismus hinzu, um eine eindeutige Kennung für jeden Spieler zu generieren. Weitere Informationen finden Sie unter Generieren Sie Spieler-IDs.

  4. Erfassen und speichern Sie die folgenden Informationen:

    • Zielflotte — Bei vielen GameLift Amazon-API-Anfragen muss eine Flotte angegeben werden. Verwenden Sie dazu entweder eine Flotten-ID oder eine Alias-ID, die auf die Zielflotte verweist. Es hat sich bewährt, Flottenaliase zu verwenden, damit Sie Spieler von einer Flotte zur anderen wechseln können, ohne Ihre Backend-Dienste aktualisieren zu müssen.

    • Zielwarteschlange — Geben Sie für Spiele, die Warteschlangen mit mehreren Flotten verwenden, um neue Spielsitzungen zu platzieren, den Namen der Warteschlange an, die verwendet werden soll.

    • AWS Anmeldeinformationen — Bei allen Anrufen bei Amazon GameLift müssen Anmeldeinformationen für den AWS-Konto Hoster des Spiels angegeben werden. Sie erwerben diese Anmeldeinformationen, indem Sie einen Spielerbenutzer erstellen, wie unter beschriebenRichte den programmatischen Zugriff für dein Spiel ein. Gehen Sie je nachdem, wie Sie den Zugriff für den Player-Benutzer verwalten, wie folgt vor:

      • Wenn Sie eine Rolle zur Verwaltung der Benutzerberechtigungen von Spielern verwenden, fügen Sie Code hinzu, um die Rolle zu übernehmen, bevor Sie eine GameLift Amazon-API aufrufen. Die Anfrage zur Übernahme der Rolle gibt einen Satz temporärer Sicherheitsanmeldedaten zurück. Weitere Informationen finden Sie unter Wechseln zu einer IAM-Rolle (AWS API) im IAM-Benutzerhandbuch.

      • Wenn Sie über langfristige Sicherheitsanmeldedaten verfügen, konfigurieren Sie Ihren Code so, dass gespeicherte Anmeldeinformationen gefunden und verwendet werden. Weitere Informationen finden Sie unter Authentifizieren mit langfristigen Anmeldeinformationen im Referenzhandbuch für AWS SDKs und Tools. Informationen zum Speichern von Anmeldeinformationen finden Sie in den AWS API-Referenzen für (C++) und (.NET).

      • Wenn Sie über temporäre Sicherheitsanmeldedaten verfügen, fügen Sie mithilfe von AWS Security Token Service (AWS STS) Code hinzu, um die Anmeldeinformationen regelmäßig zu aktualisieren, wie unter Verwenden temporärer Sicherheitsanmeldedaten mit den AWS SDKs im IAM-Benutzerhandbuch beschrieben. Der Code muss neue Anmeldeinformationen anfordern, bevor die alten ablaufen.

Holen Sie sich Spielesitzungen

Füge Code hinzu, um verfügbare Spielsitzungen zu entdecken und die Einstellungen und Metadaten der Spielsitzungen zu verwalten.

Suche nach aktiven Spielsitzungen

SearchGameSessionsDient zum Abrufen von Informationen zu einer bestimmten Spielsitzung, zu allen aktiven Sitzungen oder zu Sitzungen, die einer Reihe von Suchkriterien entsprechen. Dieser Aufruf gibt für jede aktive Spielsitzung ein GameSessionObjekt zurück, das Ihrer Suchanfrage entspricht.

Verwenden Sie Suchkriterien, um eine gefilterte Liste aktiver Spielsitzungen abzurufen, an denen Spieler teilnehmen können. Beispielsweise können Sie Sitzungen wie folgt filtern:

  • Ausgeschlossen sind Spielsitzungen, die voll sind:CurrentPlayerSessionCount = MaximumPlayerSessionCount.

  • Wählen Sie Spielsitzungen basierend auf der Dauer der Sitzung aus: AuswertenCreationTime.

  • Finden Sie Spielsitzungen, die auf einer benutzerdefinierten Spieleigenschaft basieren:gameSessionProperties.gameMode = "brawl".

Spielsitzungen verwalten

Verwenden Sie eine der folgenden Operationen, um Informationen zu Spielsitzungen abzurufen oder zu aktualisieren.

Spielsitzungen erstellen

Fügen Sie Code zum Starten neuer Spielsitzungen auf den von Ihnen bereitgestellten Flotten hinzu und stellen Sie diese Spielern zur Verfügung. Es gibt zwei Möglichkeiten, Spielsitzungen zu erstellen, je nachdem, ob du dein Spiel in mehreren AWS-Regionen oder in einer einzigen Region bereitstellst.

Erstelle eine Spielsitzung in einer Warteschlange mit mehreren Standorten

Wird verwendet StartGameSessionPlacement, um eine Anfrage für eine neue Spielsitzung in eine Warteschlange zu stellen. Um diesen Vorgang zu verwenden, erstellen Sie eine Warteschlange. Dies bestimmt, wo Amazon die neue Spielsitzung GameLift platziert. Weitere Informationen zu Warteschlangen und deren Verwendung finden Sie unterGameLiftAmazon-Warteschlangen für die Platzierung von Spielesitzungen einrichten.

Wenn Sie eine Platzierung für Spielsitzungen erstellen, geben Sie den Namen der zu verwendenden Warteschlange, einen Namen für die Spielsitzung, eine maximale Anzahl gleichzeitiger Spieler und einen optionalen Satz von Spieleigenschaften an. Sie können optional auch eine Liste von Spielern angeben, die automatisch an der Spielsitzung teilnehmen sollen. Wenn Sie Daten zur Spielerlatenz für relevante Regionen angeben, GameLift verwendet Amazon diese Informationen, um die neue Spielsitzung auf einer Flotte zu platzieren, die den Spielern das ideale Spielerlebnis bietet.

Die Platzierung von Spielsitzungen ist ein asynchroner Prozess. Nachdem Sie eine Anfrage gestellt haben, können Sie sie erfolgreich ausführen lassen oder eine Zeitüberschreitung einleiten. Sie können die Anfrage auch jederzeit stornieren, indem Sie StopGameSessionPlacement. Rufen Sie an, um den Status Ihrer Platzierungsanfrage zu überprüfen DescribeGameSessionPlacement.

Erstelle eine Spielsitzung auf einer bestimmten Flotte

Wird verwendet CreateGameSession, um eine neue Sitzung auf einer bestimmten Flotte zu erstellen. Diese synchrone Operation gelingt oder schlägt fehl, abhängig davon, ob die Flotte über Ressourcen für das Hosten einer neuen Spielsitzung verfügt. Nachdem Amazon die neue Spielsitzung GameLift erstellt und ein GameSessionObjekt zurückgegeben hat, können Sie Spieler zu ihr hinzufügen.

Wenn Sie diesen Vorgang verwenden, geben Sie eine Flotten- oder Alias-ID, einen Sitzungsnamen und die maximale Anzahl gleichzeitiger Spieler für das Spiel an. Optional können Sie eine Gruppe von Spieleigenschaften einschließen. Spieleigenschaften werden in einer Reihe von Schlüssel-Wert-Paaren definiert.

Wenn Sie die Amazon GameLift Resource Protection-Funktion verwenden, um die Anzahl der Spielsitzungen zu begrenzen, die ein Spieler erstellen kann, geben Sie die Spieler-ID des Erstellers der Spielsitzung an.

Nehmen Sie mit einem Spieler an einer Spielsitzung teil

Füge Code hinzu, um einen Spielerplatz in einer aktiven Spielsitzung zu reservieren und Spielclients mit Spielsitzungen zu verbinden.

  1. Reservieren Sie einen Spielerplatz in einer Spielsitzung

    Um einen Spielerplatz zu reservieren, erstellen Sie eine neue Spielersitzung für die Spielsitzung. Weitere Informationen zu Spielersitzungen finden Sie unterSo verbinden sich Spieler mit Spielen.

    Es gibt zwei Möglichkeiten, neue Spielersitzungen zu erstellen:

    Amazon überprüft GameLift zunächst, ob die Spielsitzung neue Spieler akzeptiert und ob Spielerplätze verfügbar sind. Bei Erfolg GameLift reserviert Amazon einen Slot für den Spieler, erstellt die neue Spielersitzung und gibt ein PlayerSessionObjekt zurück. Dieses Objekt enthält den DNS-Namen, die IP-Adresse und den Port, die ein Spielclient benötigt, um eine Verbindung zur Spielsitzung herzustellen.

    Eine Spielersitzungsanfrage muss eine eindeutige ID für jeden Spieler enthalten. Weitere Informationen finden Sie unter Generieren Sie Spieler-IDs.

    Eine Spielersitzung kann eine Reihe von benutzerdefinierten Spielerdaten enthalten. Diese Daten werden im neu erstellten Spielersitzungsobjekt gespeichert, das Sie durch Aufrufen von DescribePlayerSessions() abrufen können. Amazon übergibt dieses Objekt GameLift auch an den Spieleserver, wenn der Spieler eine direkte Verbindung zur Spielsitzung herstellt. Wenn Sie Sitzungen mit mehreren Spielern anfordern, geben Sie für jeden Spieler eine Reihe von Spielerdaten an, die der Spieler-ID in der Anfrage zugeordnet sind.

  2. Mit einer Spielsitzung verbinden

    Fügen Sie dem Spiele-Client Code hinzu, um das PlayerSession-Objekt abzurufen, das die Verbindungsinformationen der Spielsitzung enthält. Verwenden Sie diese Informationen, um eine direkte Verbindung zum Server herzustellen.

    • Sie können eine Verbindung über den angegebenen Port und den DNS-Namen oder die IP-Adresse herstellen, die dem Serverprozess zugewiesen wurde.

    • Wenn für Ihre Flotten die Generierung von TLS-Zertifikaten aktiviert ist, stellen Sie mithilfe des DNS-Namens und -Ports eine Verbindung her.

    • Wenn dein Spieleserver eingehende Spielerverbindungen validiert, gib die Sitzungs-ID des Spielers an.

    Nach dem Herstellen der Verbindung kommunizieren der Spielclient und der Serverprozess direkt, ohne Amazon einzubeziehen GameLift. Der Server unterhält die Kommunikation mit Amazon GameLift, um den Verbindungsstatus der Spieler, den Gesundheitsstatus und mehr zu melden. Wenn der Spieleserver eingehende Spieler bestätigt, überprüft er, ob die Sitzungs-ID des Spielers mit einem reservierten Slot in der Spielsitzung übereinstimmt, und akzeptiert oder verweigert die Spielerverbindung. Wenn der Spieler die Verbindung trennt, meldet der Serverprozess den Verbindungsabbruch.

Verwenden Sie die Eigenschaften der Spielsitzung

Ihr Spielclient kann mithilfe einer Spieleigenschaft Daten an eine Spielsitzung weitergeben. Spieleigenschaften sind Schlüssel-Wert-Paare, die dein Spieleserver hinzufügen, lesen, auflisten und ändern kann. Sie können eine Spieleigenschaft übergeben, wenn Sie eine neue Spielsitzung erstellen, oder zu einem späteren Zeitpunkt, wenn die Spielsitzung aktiv ist. Eine Spielsitzung kann bis zu 16 Spieleigenschaften enthalten. Spieleigenschaften können nicht gelöscht werden.

Ihr Spiel bietet beispielsweise die folgenden Schwierigkeitsstufen: NoviceEasy,Intermediate, undExpert. Ein Spieler wählt Easy und beginnt dann das Spiel. Ihr Spielclient fordert eine neue Spielsitzung von Amazon an, GameLift indem Sie entweder StartGameSessionPlacement oder, CreateGameSession wie in den vorherigen Abschnitten beschrieben, verwenden. In der Anfrage übergibt der Client Folgendes:{"Key": "Difficulty", "Value":"Easy"}.

Als Antwort auf die Anfrage GameLift erstellt Amazon ein GameSession Objekt, das die angegebene Spieleigenschaft enthält. Amazon weist GameLift dann einen verfügbaren Spieleserver an, die neue Spielsitzung zu starten, und übergibt das GameSession Objekt. Der Spieleserver startet eine Spielsitzung mit einem Difficulty vonEasy.

Weitere Informationen