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 Sie die Amazon GameLift Servers Game-Client-Funktionalität
Integrieren Sie Funktionen zum Hosten von Amazon GameLift Servers Spielen 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 aktiver 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 Interaktionen zwischen Spielclient und Server mit Amazon GameLift Servers zur Interaktion der Komponenten zum Hosten von Spielen finden Sie unter Amazon GameLift Servers SDKs.
Richten Sie die Amazon GameLift Servers API ein
Fügen Sie das AWS SDK für C++ mit Amazon GameLift Servers 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 Amazon GameLift Servers von abhängt.
-
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 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.
-
Initialisieren eines Amazon GameLift Servers-Clients. Verwenden Sie AwsGameLift::: GameLiftClient ()
(C++) oder AmazonGameLiftClient() (C#) mit einer Standard-Client-Konfiguration oder einer benutzerdefinierten Client-Konfiguration. -
Wenn Sie Spielersitzungen verwenden, fügen Sie einen Mechanismus hinzu, um für jeden Spieler eine eindeutige Kennung zu generieren. Weitere Informationen finden Sie unter Spieler generieren IDs.
-
Erfassen und speichern Sie 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 eine Flotte mit mehreren Standorten handelt, geben Sie einen Flottenstandort an. Es hat sich bewährt, Flottenaliase zu verwenden, damit Sie Spieler von einer Flotte zur anderen wechseln können, ohne Ihren Backend-Service 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, an die Platzierungsanfragen gesendet werden sollen.
-
AWS Anmeldedaten — Bei allen Anrufen Amazon GameLift Servers müssen die Zugangsdaten der Person angegeben werden AWS-Konto , die das Spiel hostet. Sie können diese Anmeldeinformationen erwerben, 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 von Spielerbenutzerberechtigungen verwenden, fügen Sie Code hinzu, um die Rolle zu übernehmen, bevor Sie eine Amazon GameLift Servers 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 AWS SDKs Referenzhandbuch zu 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 im IAM-Benutzerhandbuch unter Verwenden temporärer Sicherheitsanmeldedaten mit dem AWS SDKs beschrieben. Der Code muss neue Anmeldeinformationen anfordern, bevor die alten ablaufen.
-
-
Holen Sie sich aktive Spielsitzungen
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. 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ßt volle Spielsitzungen aus:
CurrentPlayerSessionCount = MaximumPlayerSessionCount. -
Wählen Sie Spielsitzungen basierend auf der Dauer der Sitzung aus: Auswerten
CreationTime. -
Finden Sie Spielsitzungen, die auf einer benutzerdefinierten Spieleigenschaft basieren:
gameSessionProperties.gameMode = "brawl".
Spielsitzungsdaten verwalten
Verwenden Sie eine der folgenden Operationen, um Informationen zu Spielsitzungen abzurufen oder zu aktualisieren.
-
DescribeGameSessionDetails() — Ruft zusätzlich zu den Informationen zur Spielsitzung den Schutzstatus einer Spielsitzung ab.
-
UpdateGameSession() — Ändern Sie die Metadaten und Einstellungen einer Spielsitzung nach Bedarf.
-
GetGameSessionLogUrl— Greifen Sie auf gespeicherte Spielsitzungsprotokolle zu.
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 Game-Hosting-Lösung die Platzierungen von Spielsitzungen verwaltet.
Erstellen Sie eine Spielsitzung mit 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, Amazon GameLift Servers wo die neue Spielsitzung stattfindet. Weitere Informationen zu Warteschlangen und deren Verwendung finden Sie unterPlatzierung der Spielsitzungen konfigurieren.
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 du Daten zur Spielerlatenz für relevante Regionen hinzufügst, Amazon GameLift Servers verwendet Then 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 Player-Geräten und potenziellen Hosting-Standorten messen, was zu genaueren Platzierungsentscheidungen führt als mit 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 oder das Zeitlimit überschreiten. 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 Sie die neue Spielsitzung Amazon GameLift Servers erstellt und ein GameSessionObjekt zurückgegeben haben, können Sie ihr Spieler 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 Servers Ressourcenschutzfunktion verwenden, um die Anzahl der Spielsitzungen zu begrenzen, die ein Spieler erstellen kann, geben Sie die Spieler-ID des Erstellers der Spielsitzung an.
Schließe einen Spieler an einer Spielsitzung an
Füge Code hinzu, um einen Spielerplatz in einer aktiven Spielsitzung zu reservieren und Spielclients mit Spielsitzungen zu verbinden. Diese Aktion ist verfügbar, wenn dein Spiel Spielersitzungen mit einem einzelnen Spieler verwendet IDs. Weitere Informationen zu Spielersitzungen finden Sie unterAmazon GameLift Serversund das Spielerlebnis.
-
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:
-
Wenn Sie eine Spielsitzung verwenden StartGameSessionPlacementoder erstellen StartMatchmakingmöchten, können Sie einen oder mehrere Spieler in die Anfrage aufnehmen, um in der neuen Spielsitzung Spielersitzungen für sie zu erstellen.
-
Um Spieler zu einer bestehenden Spielsitzung hinzuzufügen, rufen Sie an CreatePlayerSessionoder CreatePlayerSessionsgeben Sie eine Spielsitzungs-ID an.
Eine Anfrage für eine Spielersitzung muss eine eindeutige Spieler-ID enthalten. Weitere Informationen finden Sie unter Spieler generieren IDs. Bei Erhalt der Anfrage wird Amazon GameLift Servers überprüft, ob die Spielsitzung neue Spieler akzeptiert und ob Spielplätze verfügbar sind. Falls erfolgreich, Amazon GameLift Servers reserviert es einen Spielplatz für den Spieler, erstellt die neue Spielersitzung und gibt ein PlayerSessionObjekt zurück.
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 Spieleserver, wenn der Spieler eine direkte Verbindung zur Spielsitzung herstellt. Wenn du mehrere Spielersitzungen anforderst, ordne jede Zeichenfolge von Spielerdaten einer Spieler-ID zu.
-
-
Mit einer Spielsitzung verbinden
Fügen Sie dem Backend-Dienst Code hinzu, um das
PlayerSessionObjekt abzurufen (z. B. durch Aufrufen von DescribePlayerSessions()) und übergeben Sie es an den Spielclient zurück. 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 wurden.
-
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 und ohne BeteiligungAmazon GameLift Servers. Der Server unterhält die Kommunikation mit dem Spieler, Amazon GameLift Servers um den Verbindungsstatus, den Gesundheitszustand und mehr zu melden.
Wenn der Spielserver 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.
-
Übergeben Sie benutzerdefinierte Spieldaten an eine Spielsitzung
Ihr Spielclient kann Daten an eine Spielsitzung weitergeben. Wenn Sie eine Spielsitzung erstellen, können Sie eine Reihe von Spieleigenschaften (Schlüssel-Wert-Paare) oder Spielsitzungsdaten (Zeichenkettenwerte) in die Anfrage aufnehmen. Sie können auch eine bestehende Spielsitzung mit neuen oder aktualisierten Spieldaten aktualisieren. Diese Daten werden an den Spielserver-Prozess weitergegeben, der die Spielsitzung hostet, zur Verwendung durch den Spielservercode. Spieleigenschaften können nicht gelöscht werden.
Nehmen wir als Beispiel an, dass Ihr Spiel die Schwierigkeitsgrade definiert: NoviceEasy,Intermediate, undExpert. Ein Spieler entscheidet sich dafürEasy, einem Spiel beizutreten. Ihr Spielclient fordert über den Backend-Dienst eine neue Spielsitzung mit der folgenden Spieleigenschaft an:{"Key":
"Difficulty", "Value":"Easy"}. Amazon GameLift ServersFordert daraufhin einen verfügbaren Spieleserver auf, eine neue Spielsitzung zu starten, und übergibt das GameSession Objekt. Der Spielserver-Prozess verwendet die bereitgestellte Spieleigenschaft, um den Schwierigkeitsgrad der Spielsitzung festzulegen.