View a markdown version of this page

Integrieren GameLift Amazon-Server Funktionalität des Spielclients - GameLift Amazon-Server

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.

Integrieren GameLift Amazon-Server Funktionalität des Spielclients

Integrieren Sie Amazon GameLift Servers Spielhosting-Funktionen in alle Lösungskomponenten, die mit dem Amazon GameLift Servers Dienst kommunizieren müssen, z. B. um Informationen zu Spielsitzungen abzurufen oder neue Spielsitzungen zu erstellen. In den meisten Fällen ist diese Funktionalität in die Backend-Servicekomponente integriert. Fügen Sie Funktionen für Kernaufgaben hinzu, darunter:

  • Fordere Informationen und den Status der aktiven Spielsitzungen an.

  • Reservieren Sie einen Platz für einen neuen Spieler in einer bestehenden Spielsitzung.

  • Erstelle eine neue Spielsitzung für eine Gruppe von Spielern.

  • Anfordern von Matchmaking für einen oder mehrere Spieler.

  • Stellen Sie aktualisierte Daten für bestehende Spielsitzungen bereit.

Weitere Informationen client/server Spielinteraktionen mit GameLift Amazon-Server zur Interaktion der Spielhosting-Komponenten über die Amazon GameLift Servers SDKs finden Sie unter.

Richten Sie das ein GameLift Amazon-Server API

Fügen Sie das AWS SDK für C++ mit Amazon GameLift Servers zu einem Projekt hinzu.

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

  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 gibt eine Zielregion und einen Endpunkt an, die bei der Kontaktaufnahme Amazon GameLift Servers verwendet werden sollen. Die Region identifiziert die Menge der eingesetzten Ressourcen (Flotten, Warteschlangen und Matchmaker), die verwendet werden sollen. In der Standard-Client-Konfiguration wird der Standort auf die Region USA Ost (Nord-Virginia) festgelegt. Um eine andere Region zu verwenden, erstellen Sie eine benutzerdefinierte Konfiguration.

  2. Initialisieren eines Amazon GameLift Servers-Clients. Verwenden Sie AwsGameLift::: GameLiftClient () (C++) oder AmazonGameLiftClient () (C#) mit einer Standard-Client-Konfiguration oder einer benutzerdefinierten Client-Konfiguration.

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

  4. Sammle und speichere die folgenden Informationen:

    • Zielflotte — Wenn du Spielsitzungen für eine bestimmte Flotte manuell erstellst, gib eine Flotten-ID oder eine Alias-ID an, die auf die Zielflotte verweist. Wenn es sich bei der Flotte um mehrere Standorte handelt, geben Sie einen Flottenstandort an. Es hat sich bewährt, Flottenaliase zu verwenden, damit du Spieler von einer Flotte zur anderen wechseln kannst, ohne deinen Backend-Service aktualisieren zu müssen.

    • Zielwarteschlange — Geben Sie bei Spielen, die Warteschlangen mit mehreren Flotten verwenden, um neue Spielsitzungen zu platzieren, den Namen der Warteschlange an, an die Platzierungsanfragen gesendet werden sollen.

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

      • Wenn du eine Rolle zur Verwaltung von Spielerbenutzerberechtigungen verwendest, füge Code hinzu, um die Rolle zu übernehmen, bevor du eine Amazon GameLift Servers API aufrufst. Die Anforderung, die Rolle zu übernehmen, gibt eine Reihe temporärer Sicherheitsanmeldeinformationen zurück. Weitere Informationen finden Sie im IAM-Benutzerhandbuch unter Wechseln zu einer IAM-Rolle (AWS API).

      • Wenn Sie über langfristige Sicherheitsanmeldeinformationen 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 Sicherheitsanmeldeinformationen 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 Sicherheitsanmeldeinformationen mit den AWS SDKs im IAM-Benutzerhandbuch beschrieben. Der Code muss neue Anmeldeinformationen anfordern, bevor die alten ablaufen.

Hol dir aktive Spielsitzungen

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

Suche nach aktiven Spielsitzungen

Wird verwendet SearchGameSessions, um Informationen über eine bestimmte Spielsitzung, alle aktiven Sitzungen oder Sitzungen, die eine Reihe von Suchkriterien erfüllen, abzurufen. Dieser Aufruf gibt für jede aktive Spielsitzung ein GameSession Objekt zurück, das Ihrer Suchanfrage entspricht. Dieses Objekt enthält den DNS-Namen, die IP-Adresse und den Port, die ein Spielclient benötigt, um eine Verbindung zur Spielsitzung herzustellen.

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

  • Schließ Spielsitzungen aus, die voll sind:CurrentPlayerSessionCount = MaximumPlayerSessionCount.

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

  • Finde Spielsitzungen basierend auf einer benutzerdefinierten Spieleigenschaft:gameSessionProperties.gameMode = "brawl".

Spielsitzungsdaten 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, wie Ihre Spielhosting-Lösung die Platzierungen von Spielsitzungen verwaltet.

Erstelle eine Spielsitzung mit einer Warteschlange mit mehreren Standorten

Wird verwendet StartGameSessionPlacement, um eine Anfrage für eine neue Spielsitzung in einer Warteschlange zu stellen. Um diesen Vorgang zu verwenden, erstellen Sie eine Warteschlange. Dies bestimmt, Amazon GameLift Servers wo die neue Spielsitzung stattfindet. Weitere Informationen zu Warteschlangen und deren Verwendung finden Sie unterDie Platzierung der Spielsitzungen konfigurieren.

Geben Sie beim Erstellen einer Spielsitzung den Namen der zu verwendenden Warteschlange, einen Namen für die Spielsitzung, eine maximale Anzahl gleichzeitiger Spieler und optionale Spieleigenschaften an. Sie können optional auch eine Liste von Spielern angeben, die automatisch an der Spielsitzung teilnehmen sollen. Wenn du Spielerlatenzdaten für relevante Regionen hinzufügst, Amazon GameLift Servers verwendet es diese Informationen, um die neue Spielsitzung auf einer Flotte zu platzieren, die den Spielern das ideale Spielerlebnis bietet.

Verwenden Sie die UDP-Ping-Beacons, um Amazon GameLift Servers genaue Latenzmessungen zu erhalten. Mit diesen Endpunkten können Sie die tatsächliche UDP-Netzwerklatenz zwischen Spielergeräten und potenziellen Hosting-Standorten messen, was zu genaueren Platzierungsentscheidungen führt als bei ICMP-Pings. Weitere Informationen zur Verwendung von UDP-Ping-Beacons zur Messung der Latenz finden Sie unter. UDP-Ping-Beacons

Die Platzierung von Spielsitzungen ist ein asynchroner Prozess. Nachdem Sie eine Anfrage gestellt haben, können Sie sie erfolgreich ausführen lassen oder das Zeitlimit überschreiten. Du kannst die Anfrage auch jederzeit stornieren mit StopGameSessionPlacement. Um den Status Ihrer Praktikumsanfrage zu überprüfen, rufen Sie an 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 Sie die neue Spielsitzung Amazon GameLift Servers erstellt und ein GameSession Objekt zurückgegeben haben, können Sie Spieler hinzufügen.

Wenn Sie diese Operation 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. Die Spieleigenschaften werden in einer Reihe von Schlüssel-Wert-Paaren definiert.

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

Verbinde einen Spieler mit einer Spielsitzung

Füge einen Code hinzu, um einen Spielerplatz in einer aktiven Spielsitzung zu reservieren und Spielclients mit Spielsitzungen zu verbinden. Diese Aktion ist verfügbar, wenn Ihr Spiel Spielersitzungen mit eindeutigen Spieler-IDs verwendet. Weitere Informationen zu Spielersitzungen finden Sie unterAmazon GameLift Serversund das Spielerlebnis.

  1. Reservieren Sie einen Spielerplatz in einer Spielsitzung

    Um einen Spielerplatz zu reservieren, erstellen Sie eine Spielersitzung für die Spielsitzung. Es gibt zwei Möglichkeiten dafür:

    Eine Anfrage für eine Spielersitzung muss eine eindeutige Spieler-ID enthalten. Weitere Informationen finden Sie unter Spieler generieren IDs. Amazon GameLift ServersÜberprüft nach Erhalt der Anfrage, ob die Spielsitzung neue Spieler akzeptiert und verfügbare Spielerplätze verfügbar sind. Bei Erfolg wird ein Slot für den Spieler Amazon GameLift Servers reserviert, die Sitzung für neue Spieler erstellt und ein PlayerSession Objekt zurückgegeben.

    Eine Spielersitzung kann eine Reihe von benutzerdefinierten Spielerdaten enthalten. Diese Daten werden im neu erstellten Spielersitzungsobjekt gespeichert. Amazon GameLift Serversübergibt dieses Objekt an den Spielserver, wenn der Spieler eine direkte Verbindung zur Spielsitzung herstellt. Ordnen Sie jede Zeichenfolge von Spielerdaten einer Spieler-ID zu, wenn Sie Sitzungen mit mehreren Spielern anfordern.

  2. Stellen Sie eine Verbindung zu einer Spielsitzung her

    Füge dem Backend-Dienst Code hinzu, um das PlayerSession Objekt abzurufen (z. B. durch Aufrufen von DescribePlayerSessions ()) und es an den Spielclient zurückzugeben. Dieses Objekt enthält den DNS-Namen, die IP-Adresse und den Port. Der Spielclient kann diese Informationen verwenden, 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 ist.

    • Wenn für Ihre Flotten die Generierung von TLS-Zertifikaten aktiviert ist, stellen Sie die Verbindung mithilfe des DNS-Namens und -Ports 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 dass dies erforderlich istAmazon GameLift Servers. Der Server unterhält die Kommunikation mit dem Spieler, Amazon GameLift Servers um den Verbindungsstatus, den Gesundheitszustand und vieles mehr zu melden.

    Wenn der Spieleserver eingehende Spieler überprüft, ü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 die unterbrochene Verbindung.

Übergeben Sie benutzerdefinierte Spieldaten an eine Spielsitzung

Dein Spielclient kann Daten an eine Spielsitzung weitergeben. Wenn du eine Spielsitzung erstellst, kannst du eine Reihe von Spieleigenschaften (Schlüssel-Wert-Paare) oder Spielsitzungsdaten (Zeichenfolgenwerte) in die Anfrage aufnehmen. Sie können auch eine bestehende Spielsitzung mit neuen oder aktualisierten Spieldaten aktualisieren. Diese Daten werden an den Spieleserverprozess weitergegeben, der die Spielsitzung hostet, damit sie vom Spieleservercode verwendet werden können. Die Spieleigenschaften können nicht gelöscht werden.

Nehmen wir als Beispiel an, Ihr Spiel definiert die Schwierigkeitsgrade: NoviceEasy,Intermediate, undExpert. Ein Spieler entscheidet sich dafür, an einemEasy, -Spiel teilzunehmen. Ihr Spielclient fordert über den Backend-Service eine neue Spielsitzung mit der folgenden Spieleigenschaft an:{"Key": "Difficulty", "Value":"Easy"}. Amazon GameLift ServersFordert als Antwort einen verfügbaren Spielserver auf, eine neue Spielsitzung zu starten, und übergibt das GameSession Objekt. Der Spielserverprozess verwendet die angegebene Spieleigenschaft, um den Schwierigkeitsgrad der Spielsitzung festzulegen.

Weitere Informationen