Google hat die Entwickler über eine Schwachstelle in den Versionen (früher als M102) von WebRTC informiert. Auswirkungen, Problemumgehungen und Updates finden Sie hier.
Epic Online Services (EOS) ist ein engine-unabhängiges System, das eine Auswahl plattformübergreifender Online-Funktionen bietet, darunter:
Spielerbezogene Funktionen, darunter:
Erfolge
Ranglisten
Kommerzielle Funktionen wie:
In-Game-Käufe
Soziale Funktionen wie:
Sprachkommunikation
Freundeslisten
Sie können EOS in Ihrem Unreal Engine-Projekt mit dem Plugin „Online Subsystem Epic Online Services“ (OSS EOS) verwenden. Das Plugin Online Subsystem Epic Online Services hilft Ihnen, in Ihrem Spiel mit Epic Online Services zu interagieren, ohne Code für die direkte Interaktion mit dem EOS-SDK schreiben zu müssen. Um diese Funktion zu nutzen, müssen Sie Ihr Produkt oder Ihre Produkte im EOS-Entwickler-Portal registrieren und konfigurieren und anschließend einige Plugins aktivieren und konfigurieren, um EOS-Funktionalität über das OSS-Interface zur Verfügung zu stellen.
Weitere Informationen zu Epic Online Services, einschließlich Informationen zur Registrierung und Konfiguration Ihrer Produkte, finden Sie in der Epic Online Services Developer Documentation.
Übersicht über die EOS-Plugins
Das OSS-EOS-Plugin baut auf dem Plugin Online Subsystem (OSS) auf. Das Plugin „Online Subsystem“ ist ein Allzweck Plugin, das ein allgemeines Interface für den Zugriff auf eine Reihe von Online-Diensten bietet. Das OSS-EOS-Plugin erweitert das OSS-Plugin durch die Implementierung spezifischer Funktionalität, die über Epic Online Services verfügbar ist, indem sie die Kommunikation mit dem EOS-SDK in das Plugin integrieren. Diese Seite behandelt folgende Funktionen des OSS-EOS-Plugins:
Optional können Sie das OSS-EOS-Plugin mit dem Plugin OSS EOS Plus erweitern. EOS Plus steht für „EOS + Basisplattform“ und kombiniert EOS und eine andere Plattform (wie Steam, Konsolenplattform usw.). Durch die Kombination von EOS mit einer anderen Plattform werden zusätzliche Funktionen bereitgestellt, wie z. B. automatisches Sitzungsspiegeln. Sie können EOS Plus mit oder ohne Epic Account Services (EAS) verwenden.
Die Verwendung von EOS Plus
Wenn Sie Ihr Spiel im Epic Games Store veröffentlichen, sollten Sie das OSS-EOS-Plugin nutzen; darüber hinaus besteht keine Notwendigkeit zur Verwendung von EOS Plus. Wenn Sie Ihr Spiel auf einer anderen Plattform veröffentlichen, verwenden Sie zusätzlich zum OSS-EOS-Plugin auch das Plugin OSS EOS Plus. Es kann Ausnahmen von dieser Richtlinie geben. Lesen Sie auf dieser Seite weiter, um die beste Kombination von Plugins für Ihr Projekt zu ermitteln.
Online Subsystem EOS Plus ist eine vorübergehende Lösung zur Implementierung bestimmter Funktionen zur Plattformspiegelung, solange diese Funktionalität nicht im EOS-SDK vorhanden ist. Die EOS-Plus-Funktionalität wird durch die native EOS-SDK-Unterstützung ersetzt, sobald diese verfügbar ist. EOS Plus ist eine Beta-Funktion mit begrenztem Funktionsumfang.
So verwenden Sie OSS EOS
Der Kurs OSS EOS Plugin in der Epic Entwickler-Community führt Sie durch den Prozess der Verwendung von OSS EOS in einem Unreal-Engine-Projekt.
Einrichtung
Registrieren des Produkts bei Epic Online Services
Die Epic Developer Resources Documentation bietet Ressourcen für den Epic Games Store (EGS), die Epic Online Services, die Kids Web Services (KWS) und ihre assoziierten Werkzeuge. Um die Vorteile des OSS-EOS-Plugins zu nutzen, müssen Sie zuerst ein Produkt bei Epic Online Services registrieren. Um Ihr Produkt bei EOS zu registrieren, navigieren Sie zum Epic-Entwicklerportal und folgen den ersten Schritten. Diese Anleitung beschreibt insbesondere die Produktregistrierung in Schritt 1 der Anleitung „Get Started Steps“. Die bei der Registrierung Ihres Produkts bereitgestellten Informationen sind später erforderlich, um das OSS-EOS-Plugin in Unreal Engine zu konfigurieren.
Unreal Engine wird mit einer Kopie des EOS-SDK verteilt. Sie müssen das EOS-SDK also nicht separat herunterladen, wenn Sie die in Unreal Engine enthaltene EOS-SDK-Version verwenden möchten. Um eine andere Version des EOS-SDK zu verwenden, laden Sie Ihre gewünschte Version des EOS-SDK herunter, indem Sie den Anweisungen in Schritt 2 der Anleitung „Get Started Steps“ folgen. Nachdem Sie Ihre gewünschte Version des EOS-SDK heruntergeladen haben, folgen Sie den Anweisungen in unserer Dokumentation Upgrading the EOS SDK (Aktualisieren des EOS-SDK), um mehr Informationen darüber zu erhalten, wie Sie das von Unreal Engine verwendete EOS-SDK aktualisieren können.
Wenn Sie das EOS-SDK aktualisieren, empfehlen wir Ihnen, die EOS SDK Release Notes (Veröffentlichungshinweise zum EOS-SDK) zu Rate zu ziehen, um sich darüber zu informieren, welche Aktualisierungen für das Upgrade erforderlich sind.
Aktivieren des OSS-EOS-Plugins
Um EOS in Ihrem Projekt einzusetzen, müssen Sie das OSS-EOS-Plugin in Unreal Engine aktivieren. Befolgen Sie diese Schritte, um das OSS-EOS-Plugin zu aktivieren:
Navigieren Sie zu Bearbeiten > Plugins. Daraufhin wird der Plugin-Browser angezeigt, in dem Sie nach den Plugins suchen können, die Sie aktivieren möchten.
Suchen und aktivieren Sie im Plugin-Browser das Plugin Online Subsystem EOS.
Online-Subsystem EOS implementiert das Online-Subsystem-Plugin für Epic Online Services. Die folgenden zusätzlichen Plugins sind standardmäßig aktiviert, wenn Sie das OSS-EOS-Plugin aktivieren:
EOS Plus
Kombiniert EOS mit einer anderen Plattform
EOS Shared
Verantwortlich für die Initialisierung und das Beenden des EOS-SDK.
Es ist standardmäßig als Abhängigkeit von OSS-EOS aktiviert.
EOS Voice Chat
Sprach-Chat-Unterstützung über EOS
Nachdem Sie Ihre gewünschten Plugins aktiviert haben, müssen Sie diese für die Verwendung in Ihrem Projekt konfigurieren. Einige der folgenden Konfigurationsschritte erfordern produktbezogene Einstellungen oder Kennungen, die Sie nach der Registrierung Ihres Produkts bei EOS erhalten haben. Diese stehen Ihnen in Ihrem Epic-Entwicklerportal zur Verfügung.
Konfigurieren der OSS-EOS-Plugins
Bevor Sie fortfahren, stellen Sie sicher, dass Sie folgende Punkte erfüllt haben:
Um die OSS-EOS-Plugins zu konfigurieren, befolgen Sie diese Schritte:
Klicken Sie in der Werkzeugleiste auf Bearbeiten > Projekteinstellungen.
Navigieren Sie zu Plugins > Online Subsystem EOS.
Klicke auf das Bild, um es zu vergrößern.
EOS-Einstellungen
Diese Einstellungen beziehen sich auf die EOS-plattformspezifische Konfiguration. Weitere Informationen finden Sie auf der EOS-API-Referenzseite über die EOS_Platform_Options-Datenstruktur. Die folgende Tabelle beschreibt die EOS-Einstellungen:
| Einstellung | Beschreibung |
|---|---|
Cache Dir | Verzeichnis zum Speichern temporärer EOS Daten. Der Standardspeicherort unter Windows ist |
Default Artifact Name | Dieser Artefaktname wird verwendet, wenn kein Artefakt über Befehlszeilen-Argumente übergeben wurde. Wenn Sie keinen Artefaktnamen über die Befehlszeile übergeben, stellen Sie sicher, dass dies dem unten definierten Artefaktnamen entspricht. |
Tick Budget in Milliseconds | Diese Einstellung verhindert, dass EOS-Operationen das Spiel blockieren, indem sie die Rückkehr von EOS_Platform_Tick verursachen. Weitere Informationen finden Sie in der „Epic Online Services“-Dokumentation zu EOS_Platform_Create. |
Enable Overlay | Hiermit können Sie Overlays aktivieren oder deaktivieren. Einige Overlays können plattformspezifisch sein, etwa das E-Commerce-Overlay, das nur für Titel gültig ist, die über den Epic Games Store ausgeliefert werden. |
Enable Social Overlay | Das Social-Overlay zeigt Informationen über Freunde, Erfolge und zusätzliche Authentifizierungsschritte an. Sie können dieses Overlay individuell deaktivieren und andere Overlays aktiviert lassen. Diese Einstellung hat keinen Effekt, wenn Enable Overlay deaktiviert ist. |
Enable Editor Overlay | Hiermit können Sie Overlays in Unreal Editor aktivieren oder deaktivieren. |
Title Storage Tags | Diese Option wird verwendet, wenn Sie mehrere Dateien im Titel-Datenspeicher abfragen. Weitere Informationen finden Sie in der „Epic Online Services“-Dokumentation unter Querying Multiple Files By Tag von Title Storage Interface. |
Title Storage Read Chunk Length | Diese Option legt die maximale Datenmenge (Bytes) fest, die in einem einzigen Callback von EOS_TitleStorage_OnReadFileDataCallback gelesen werden sollen. Weitere Informationen finden Sie in der „Epic Online Services“-Dokumentation unter Accessing Files von Title Storage Interface. |
Artifacts | Der Epic Games Store unterstützt mehrere Artefakte für ein einzelnes Produkt. Beispielsweise kann Ihr Produkt separate interne Artefakte für die Entwicklung, das Testen und die veröffentlichte Version haben, die Ihre Kunden verwenden. Dieses Array enthält die Einstellungen für jedes benannte Artefakt. Das Array muss mindestens ein Artefakt enthalten und der Wert Default Artifact Name muss dem Name eines der Array-Elemente entsprechen. Weitere Informationen zu diesen Einstellungen finden Sie im Abschnitt Artefakt-Einstellungen. |
Artefakt-Einstellungen
Artefakt-Einstellungen umfassen Einstellungen für Ihr Produkt, das Sie im EOS-Entwickler-Portal registriert haben. Die Einstellungen, die Sie hier konfigurieren, sollten den Einstellungen Ihres registrierten Produkts im EOS-Entwickler-Portal entsprechen. Sie finden die Einstellungen für Ihre Produkte im EOS-Entwickler-Portal.
Um die Artefakt-Einstellungen zu bearbeiten, befolgen Sie diese Schritte:
Klicken Sie auf die Schaltfläche Element hinzufügen neben Artefakte im Abschnitt EOS Settings. Damit wird ein neues Element im Artefakt-Array der EOS-Einstellungen erstellt.
Um die Einstellungen dieses neuen Artefakts anzupassen, klicken Sie auf den Pfeil neben Ihrem neu erstellten Array-Element. Wenn dies das erste Element im Array ist, ist der Name Index[0].
Die folgende Tabelle beschreibt die verfügbaren Artefakt-Einstellungen:
| Einstellung | Beschreibung |
|---|---|
Artifact Name | Wenn Sie den Titel über den Epic Games Store starten, sollte diese mit der Artefakt-ID in den Store-Einstellungen in Ihrem Entwicklerportal übereinstimmen. Wenn Sie den Titel nicht über den Epic Games Store starten, kann dies eine beliebige Zeichenfolge sein. Dies sollte auch dem Artefakt, das über das Befehlszeilen-Argument |
Client ID | Die Client-ID für Ihr Produkt. Diese ID beginnt mit |
Client Secret | Der geheime Client-Schlüssel zur Überprüfung Ihrer Client-ID. |
Product ID | Das EOS-SDK verwendet diese ID, um Ihr Produkt zu identifizieren. |
Sandbox ID | Das Artefakt gehört zur Sandbox mit diesem ID-Wert. Ihr Produkt hat nur eine Sandbox, wenn Sie es nicht im Epic Games Store veröffentlichen. Wenn Sie mehrere Sandboxes verwenden, können Sie mehrere Zeilen mit doppelten |
Deployment ID | Die Bereitstellungs ID, auf die Sie abzielen. Bereitstellungs-IDs variieren für jedes Artefakt. Wenn Sie zum Beispiel über die Artefakte |
Client Encryption Key | Ein 64-Byte-Hexadezimal-String, der Daten verschlüsselt, wenn sie in einen EOS-Dienst hochgeladen werden. Im Gegensatz zu anderen Einstellungen verwaltet EOS diesen Verschlüsselungsschlüssel nicht und er wird nicht in Ihren Produkteinstellungen gespeichert. Der Schlüssel ist einzigartig für Ihr Spiel und Epic Games nicht bekannt, um die Daten der Nutzer zu schützen. Er wird verwendet, um Daten für den Spieler- und Titel-Datenspeicher zu verschlüsseln. Wenn Sie keinen Spieler- oder Titel-Speicher verwenden, können Sie Folgendes als Standard-Verschlüsselungsschlüssel verwenden (64 Eisen): |
EOS-Plus-Einstellungen
Um dieses Plugin zu verwenden, müssen Sie Ihr Produkt zunächst im Entwickler-Portal für jede Plattform registrieren und konfigurieren, die Sie unterstützen möchten. Die plattformspezifischen Versionen des EOS-SDK enthalten detaillierte Befehle zur Nutzung der Funktionen der Plattform, die jede Version unterstützt.
Bevor Sie das OSS-EOS-Plugin verwenden können, müssen Sie die EOS-Plus-Anmeldeeinstellungen und Crossplay-Einstellungen konfigurieren.
Anmeldeeinstellungen für EOS Plus
Die folgende Tabelle beschreibt die Anmeldeeinstellungen für EOS Plus:
| Einstellung | Beschreibung |
|---|---|
Use Epic Account for EOS login (requires account linking) | Wenn diese Option aktiviert ist, verwendet das OSS-EOS-Plugin das plattformspezifische Authentifizierungstoken, um den Nutzer automatisch bei seinem Epic-Konto anzumelden. |
Use EOS Connect APIs to create and link Product User IDs (PUIDs), and use EOS Game Services | Wenn diese Option aktiviert ist, werden EOS-Connect-APIs verwendet, um Konten für Crossplay zu verknüpfen. |
Crossplay-Einstellungen
Die folgende Tabelle beschreibt die Crossplay-Einstellungen:
| Einstellung | Beschreibung |
|---|---|
Mirror Stats to EOS | Wenn diese Option aktiviert ist, sendet EOS Plus ein Duplikat aller Stats-Informationen an das OSS-EOS-Plugin. |
Mirror Achievements to EOS | Wenn diese Option aktiviert ist, sendet EOS Plus ein Duplikat aller Erfolgsdaten an das OSS-EOS-Plugin. |
Use Crossplay Sessions | Diese Einstellung ist zum Spielen von plattformübergreifenden Netzwerkspielen erforderlich. Damit wird das EOS-Sitzungs-Interface auch zum primären Sitzungs-Interface. |
Mirror Presence to EAS | Diese Option legt fest, ob das EOS-Plus-Plugin auch Präsenzdaten an das OSS-EOS-Plugin sendet. Präsenzdaten sind nur bei Nutzung der Epic Account Services verfügbar. |
Engine-Konfiguration für die EOS-Plugins
Sobald Sie Ihr Produkt im Entwickler-Portal eingerichtet und die Plugins konfiguriert haben, müssen Sie einige Einstellungen konfigurieren. Sie können diese Plugins in der Engine-Konfigurationshierarchie konfigurieren, etwa in DefaultEngine.ini.
OSS-EOS-Konfigurationseinstellungen
Fügen Sie die folgenden Konfigurationseinstellungen zur Datei DefaultEngine.ini Ihres Projekts hinzu:
Prüfen Sie, ob das Plugin „Online Subsystem EOS“ für die Verwendung in Ihrem Projekt aktiviert ist.
C++[OnlineSubsystemEOS] bEnabled=trueLegen Sie EOS als Standardplattform für die Online-Dienste Ihres Projekts fest.
C++[OnlineSubsystem] DefaultPlatformService=EOSGeben Sie die Netzwerktreiber an.
C++[/Script/Engine.Engine] !NetDriverDefinitions=ClearArray +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/SocketSubsystemEOS.NetDriverEOSBase",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver") +NetDriverDefinitions=(DefName="DemoNetDriver",DriverClassName="/Script/Engine.DemoNetDriver",DriverClassNameFallback="/Script/Engine.DemoNetDriver")Verwenden Sie die Peer-to-Peer-Socket-Funktionalität von EOS für von Spielern gehosteten Matches. Diese Einstellung ist optional.
C++[/Script/SocketSubsystemEOS.NetDriverEOSBase] bIsUsingP2PSockets=true
Im Folgenden sehen Sie alle oben beschriebenen Konfigurationseinstellungen für OSS EOS:
[OnlineSubsystemEOS]
bEnabled=true
[OnlineSubsystem]
DefaultPlatformService=EOS
[/Script/Engine.Engine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/SocketSubsystemEOS.NetDriverEOSBase",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")
+NetDriverDefinitions=(DefName="DemoNetDriver",DriverClassName="/Script/Engine.DemoNetDriver",DriverClassNameFallback="/Script/Engine.DemoNetDriver")
Starten eines Titels über den Epic Games Launcher
Wenn Sie Ihren Titel über den Epic Games Launcher starten, müssen Sie Konfigurationseinträge zur Engine-Konfigurationsdateihierarchie für alle Epic-App- und Epic-Sandbox-Paare hinzufügen, die der Epic Games Store (EGS) startet. Stellen Sie sicher, dass der Standard-Artefaktname und der Artefaktname in Ihren Projekt-Einstellungen oder der Engine-Konfiguration mit dem Artefaktnamen in Ihrem Epic Online Services Entwickler-Portal übereinstimmen.
Wenn Sie einen Titel im EGS veröffentlichen, wird der Standard-Artefaktname ignoriert. EGS übergibt immer das Befehlszeilen-Argument -epicapp, das stattdessen verwendet wird. Der Standard-Artefaktname ist nützlich für den Auslieferung auf anderen Storefronts, wo -epicapp nicht übergeben wird.
EOS-Plus-Konfigurationseinstellungen
Wenn Sie Ihr Projekt so konfigurieren möchten, dass es Crossplay zwischen EOS und einer anderen Online-Plattform implementiert, müssen Sie die folgenden Konfigurationseinstellungen zur Datei DefaultEngine.ini Ihres Projekts hinzufügen:
Prüfen Sie, ob das Plugin „Online Subsystem EOS Plus“ für die Verwendung in Ihrem Projekt aktiviert ist.
Zur Erinnerung: Mit dem Plugin „EOS Plus“ können Sie EOS zusammen mit einem anderen Online-Dienst nutzen.
C++[OnlineSubsystemEOSPlus] bEnabled=true
Ändern Sie Ihre Standard-Plattform-Online-Dienste zu EOS Plus.
Dies sagt der Engine, dass Sie EOS in Verbindung mit einem anderen Plattformdienst verwenden. Fügen Sie außerdem die zusätzlichen nativen Plattform-Online-Dienste hinzu, die Sie verwenden möchten. In diesem Beispiel ist er auf Steam eingerichtet, aber es kann ein beliebiger Online-Dienst sein, einschließlich Konsolen-Online-Diensten.
C++[OnlineSubsystem] DefaultPlatformService=EOSPlus ; Add your additional platform online services below NativePlatformService=Steam
Kommunizieren Sie, welche Netz-ID-Typen mit dem Standard-OSS kompatibel sind.
Dies muss nur festgelegt werden, wenn EOS/EOS Plus der Standard-OSS ist.
C++[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl] +CompatibleUniqueNetIdTypes=EOS +CompatibleUniqueNetIdTypes=EOSPlus
Unterstützen Sie die Kommunikation zwischen EOS- und EOS-Plus-Clients.
Betrachten Sie zum Beispiel das Szenario, in dem ein EOS-Plus-Spieler auf einer anderen Online-Plattform wie Steam angemeldet ist, eine EOS-Sitzung hostet und ein EOS-Client (kein EOS-Plus-Client) der EOS-Sitzung des erstere Spielers beitritt. Der reine EOS-Client benötigt dieses Zuordnung, damit EOS-Plus-Netz-IDs korrekt an EOS weitergeleitet und als EOS-Netz-IDs deserialisiert werden. Diese
MappedUniqueNetIdTypes-Konfiguration wird zum selben Konfigurationsabschnitt hinzugefügt wie die Konfiguration aus dem vorherigen Schritt.C++[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl] MappedUniqueNetIdTypes=(("EOSPlus","EOS"))
Im Folgenden sehen Sie alle oben beschriebenen Konfigurationseinstellungen für EOS Plus:
[OnlineSubsystemEOSPlus]
bEnabled=true
[OnlineSubsystem]
DefaultPlatformService=EOSPlus
NativePlatformService=Steam
[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl]
+CompatibleUniqueNetIdTypes=EOS
+CompatibleUniqueNetIdTypes=EOSPlus
Wie OSS EOS Artefakte findet
Um das spezifische Artefakt auszuwählen, das für OSS EOS beim Start verwendet werden soll, können Sie über die Befehlszeile von Unreal Engine eine Reihe von Einstellungen vornehmen, um ein Artefakt zu finden, das in der Engine-Konfiguration festgelegt wurde, oder ein bestimmtes Artefakt standardmäßig verwenden. In UE 5.5 wird immer das verwendet, was in der Befehlszeile als Sandbox-ID und Bereitstellungs-ID übergeben wird (über die Argumente -epicsandboxid und -epicdeploymentid). Bisher wurden diese Werte nur verwendet, um passende Einträge im Artefakt-Konfigurationsarray nachzuschlagen. Unabhängig davon, welcher Artefakt-Eintrag im Konfigurationsarray gefunden wird, werden immer die Befehlszeilen-Sandbox- und -Bereitstellungs-IDs verwendet.
Das Verhalten wird in der folgenden Schrittfolge ausgeführt:
Definieren Sie
ArtifactNamein absteigender Reihenfolge der Präferenz als Wert von:-EOSArtifactNameOverride=<...>-EpicApp=<...>DefaultArtifactNameaus der Engine-Konfiguration
Definieren Sie
SandboxIdin absteigender Reihenfolge der Präferenz als Wert von:-EpicSandboxIdOverride=<...>-EpicSandboxId=<...>Nicht festgelegt
Definieren Sie
DeploymentIdin absteigender Reihenfolge der Präferenz als Wert von:-EpicDeploymentIdOverride=<...>-EpicDeploymentId=<...>Nicht festgelegt
Sind
SandboxIdundDeploymentIdangegeben, wird nach einem Artefakt gesucht, dasArtifactName,SandboxIdundDeploymentIdentspricht.Wenn Schritt 4 fehlschlägt oder nicht ausgeführt wird, aber
SandboxIdangegeben wurde, suchen Sie nach einem Artefakt, dasArtifactNameundSandboxIdentspricht.Wenn Schritt 5 fehlschlägt oder nicht ausgeführt wird, suchen Sie nach einem Artefakt, das
ArtifactNameentspricht.Wenn Schritt 6 fehlschlägt, suchen Sie nach einem Artefakt mit einem leeren
ArtifactName.Wenn Schritt 7 fehlschlägt, melden Sie einen Fehler, da kein Artefakt gefunden wurde.
Sobald ein Artefakt gefunden wurde:
Verwenden Sie in absteigender Reihenfolge der Präferenz Folgendes für
SandboxId:Falls angegeben, den Wert aus Schritt 2.
Der Wert aus dem Artefakteintrag, der in einem der Schritte 4–7 gefunden wurde.
Verwenden Sie in absteigender Reihenfolge der Präferenz den folgenden Wert für
DeploymentId:Falls angegeben, den Wert aus Schritt 3.
Der Wert aus dem Artefakteintrag, der in einem der Schritte 4–7 gefunden wurde.
Sie können spezifische Artefakt-Einträge im Konfigurationsartefakte-Array für bestimmte Kombinationen von ArtifactName, SandboxId und DeploymentId angeben. Das ist praktisch, wenn die ClientId und/oder der EncryptionKey für jede Kombination variieren sollen. Möchten Sie hingegen eine ClientId festlegen, die Sie immer verwenden möchten, können Sie einen einzelnen Artefakteintrag im Konfigurationsartefakte-Array mit einem leeren ArtifactName angeben. Dies zwingt das obige Verhalten dazu, immer das Artefakt mit dem leeren Artefaktnamen zu verwenden.
Anmelden
Es gibt zwei Methoden, um die Anmeldung im Online-Identitäts-Interface zu starten:
Auto Login: Hierfür müssen Sie eine lokale Benutzernummer übergeben.
Login: Hierfür müssen Sie ein
FOnlineAccountCredentials-Objekt verwenden.
Im nächsten Abschnitt erfahren Sie, wie Sie einen Nutzer entweder mit „Auto Login“ oder „Login“ bei OSS EOS anmelden.
Anmelden bei OSS EOS
Neben der Bereitstellung einer gültigen lokalen Benutzernummer erfordert die Login-Methode von Ihnen die Übergabe eines FOnlineAccountCredentials-Objekts. Diese Klasse hat drei Felder:
Typ
ID
Token
Anmeldeverfahren
Diese drei Felder geben abhängig von ihren Werten an, welche Methode der Authentifizierung OSS EOS verwenden soll. Die folgenden Abschnitte enthalten Beispiele für die Einrichtung der verschiedenen verfügbaren Authentifizierungsarten:
Account Portal
Developer
Exchange Code
Account Portal
Typ:
AccountPortalID:
Token:
Account Portal ist die allgemeinste Methode für die Anmeldung, da dafür nicht das EOS Developer Authentication Tool (Dev Auth Tool) benötigt wird und Ihre Anwendung nicht über den Epic Games Launcher gestartet werden muss.
Wenn Sie bei dieser Methode das EOS-SDK Version 1.15 oder neuer verwenden, wird eine Spiel-Overlay-Benutzeroberfläche angezeigt, wenn der Anmeldeaufruf durchgeführt wird. Wenn das Spiel-Overlay nicht aktiviert ist, öffnet sich ein Browser-Fenster. Der Nutzer muss seine Epic-Kontoinformationen eingeben, wenn er dazu aufgefordert wird. Ist der Nutzer bereits bei Epic Games angemeldet, muss der Nutzer den Umfang des Zugriffs für das entsprechende Produkt akzeptieren.
Da die Anmeldedaten vom Nutzer entweder in der Spiel-Overlay-Benutzeroberfläche oder im Browser bereitgestellt werden, müssen Sie keine ID oder Token angeben.
Developer
Typ:
DeveloperID:
localhost:<PORT>PORTist der im Dev Auth Tool festgelegte Port.
Token:
<CREDENTIALS_NAME>CREDENTIALS_NAMEwird im Dev Auth Tool angegeben.
Developer ist die empfohlene Methode für die Entwicklung mit OSS EOS auf Desktop-Plattformen. Für diese Methode muss das Dev Auth Tool ausgeführt werden. Weitere Informationen zum Developer Authentication Tool finden Sie in der folgenden Dokumentation auf der Seite der Epic Online Services.
Merken Sie sich nach der Einrichtung des Dev Auth Tool, welchen Port und Anmeldedaten-Namen Sie verwenden, da diese erforderlich sind, um die ID- und Token-Felder des FOnlineAccountCredentials-Objekts wie oben angegeben auszufüllen. Dieses Anmeldeverfahren öffnet sich, wenn der Anmeldeaufruf durchgeführt wird. Der Nutzer wird aufgefordert, seine Epic Games-Kontoinformationen einzugeben. Ist der Nutzer bereits bei Epic Games angemeldet, muss der Nutzer den Umfang des Zugriffs für das entsprechende Produkt akzeptieren. Dieser Schritt erfolgt nur beim ersten Anmelden eines Nutzers.
Exchange Code
Typ:
ExchangeCodeID:
Token:
<EXCHANGE_CODE><EXCHANGE_CODE>wird vom Epic Games Launcher bereitgestellt.
Sie sollten die Methode Exchange Code nur verwenden, wenn Ihre Anwendung über den Epic Games Launcher gestartet wird, da sie den vom Launcher bereitgestellten Austauschcode benötigt. Für diese Methode muss das Dev Auth Tool nicht ausgeführt werden. Sie sollten sie mit der Auslieferungsversion Ihres Spiel verwenden.
Da der Epic Games Launcher ein Austauschcode-Token zur Verfügung stellt, müssen Sie keine ID oder Token angeben.
Erfolgreiche Anmeldung
Wenn eine dieser Methoden erfolgreich abgeschlossen wird, endet der Anmeldevorgang mit der Registrierung aller notwendigen EOS-Benachrichtigungsdienste (Anmeldestatus, Freunde, Anwesenheitsaktualisierungen und automatische Aktualisierung) und dem Auslösen der folgenden registrierten Delegierten:
OnLoginComplete: Die Parameter umfassen, ob die Anmeldung erfolgreich war, sowie dieUniqueNetIddes neu authentifizierten Nutzers.OnLoginStatusChanged: Die Parameter entsprechen dem vorherigen und aktuellen Anmeldestatus und derUniqueNetIddes neu authentifizierten Nutzers.
Automatische Anmeldung mit OSS EOS
Um die automatische Anmeldung mit Online Subsystem EOS zu verwenden, müssen Sie beim Start zusätzliche Befehlszeilen-Argumente an die ausführbare Datei Ihres Spiels übergeben. Diese Argumente entsprechen den drei Feldern im FOnlineAccountCredentials-Objekt, das ansonsten an die Anmelde-Methode übergeben wird.
Die Parameter aus der obigen Anmeldung entsprechen den folgenden Befehlszeilen-Argumenten:
| FOnlineAccountCredentials Variable | Befehlszeilen-Argumente |
|---|---|
|
|
|
|
|
|
Anmeldeverfahren
Dieser Abschnitt enthält Beispiele für die Parameter, die für alle drei Anmeldeverfahren benötigt werden, wie im vorherigen Abschnitt erläutert.
Account Portal
-AUTH_TYPE="accountportal"Developer
-AUTH_TYPE="developer" -AUTH_LOGIN="localhost:<PORT>" -AUTH_PASSWORD="<NAME_IN_DEV_AUTH_TOOL>"Die Argumente in diesem Befehl sind:
<PORT>ist der Port, den Sie im Dev Auth Tool konfiguriert haben.<NAME_IN_DEV_AUTH_TOOL>ist der Anmeldedaten-Name, den Sie im Dev Auth Tool gewählt haben.
Exchange Code
-AUTH_TYPE="exchangecode" -AUTH_PASSWORD="<EXCHANGE_CODE_FROM_LAUNCHER>"Die Argumente in diesem Befehl sind:
<EXCHANGE_CODE_FROM_LAUNCHER>ist der Austauschcode vom Epic Games Launcher.
Anmeldeablauf mit externen Konto-Anmeldedaten
Dieser Abschnitt beschreibt den Anmeldeablauf für OSS EOS mit einem externen Konto. Sie müssen EOS Plus aktivieren, um sich mit einem externen Konto anzumelden.
Wenn Epic Account Services und das Connect-Interface (EOS_Connect) beide aktiviert sind, wird EOS_Auth_Login mit den externen Anmeldedaten für die Nicht-EOS-Plattform (z. B. Steam) aufgerufen. Schlägt diese Anmeldung mit einem Fehler wegen eines ungültigen Nutzers fehl (EOS_InvalidUser), wird EOS_Auth_LinkAccount aufgerufen. Dieser Aufruf fordert den Nutzer auf, sich über einen Webbrowser oder das Benutzeroberflächen-Overlay bei seinem Epic Games-Konto anzumelden. Diese Anmeldung verknüpft das Epic Games-Konto des Nutzers mit seinem externen Nicht-EOS-Konto.
Weitere Informationen zum Vorgang zur Kontoverknüpfen finden Sie im Abschnitt Bekannte Probleme.
Wenn Epic Account Services nicht aktiviert ist, aber das Connect-Interface aktiviert ist, wird EOS_Connect_Login mit den Anmeldedaten des externen Kontos aufgerufen.
Die Konfiguration des Identitätsanbieters ist sowohl für das Auth-Interface (EOS_Auth) als auch für das Connect-Interface erforderlich. Um die gewünschte externe Plattform zu verwenden, fügen Sie sie der Liste der Identitätsanbieter im EOS-Projekt-Entwicklerportal hinzu. Wenn Sie Ihre Plattformen beim Identitätsanbieter korrekt konfiguriert haben, sollte die EOS-Authentifizierung erfolgreich abgeschlossen werden und den Zugriff auf alle EOS-Spielfunktionen freigeben. Weitere Informationen finden Sie in der „Epic Developer Resources“-Dokumentation unter Identity Provider Management (Identitätsanbieter-Verwaltung).
EOS Plus muss aktiviert sein, um die Anmeldung über ein externes Konto zu nutzen.
Verwenden der Epic Account Services
Wenn diese Einstellung aktiviert ist, wird der Anmeldeprozess fortgesetzt, als wäre auch „Using Cross Platform User IDs“ aktiviert. Das externe Authentifizierungstoken wird zu den Anmeldedaten hinzugefügt, die für das Anmeldeverfahren benötigt werden, und EOS versucht, sich zu authentifizieren, indem es die Methode EOS_Auth_Login aufruft.
Interfaces
Dieser Abschnitt enthält zusätzliche Informationen über die im Plugin „Online Subsystem EOS“ implementierten Interfaces. Ausführliche Informationen zu den einzelnen Interfaces finden Sie in der „Online Subsystem“-Dokumentation. Das OSS-EOS-Plugin unterstützt die folgenden EOS-SDK-Interfaces:
Unterstützte Interfaces
| OSS-EOS-Interface | EOS-SDK-Interface | Beschreibung |
|---|---|---|
Schalten Sie Erfolge frei und prüfen Sie den Status der Benutzererfolge. | ||
Kaufen Sie Gegenstände und prüfen Sie den Besitz dieser Gegenstände. | ||
Zeigen Sie das Benutzeroberflächen-Overlay an. | ||
Verifizieren Sie Nutzerkonten, einschließlich Anmeldung und Abmeldung. | ||
Erstellen Sie Ranglisten und rufen Sie sie ab. | ||
Informieren Sie Freunde über aktuelle Aktivitäten. | ||
Verwalten Sie die sitzungsbasierte Spielersuche. | ||
Fügen Sie Spieler zur Freundesliste hinzu oder entfernen Sie sie. Rufen Sie die Freundesliste ab. | ||
Stats | Nehmen Sie Benutzer-Stats auf und fragen Sie sie ab. | |
Titeldatei | Laden Sie verschlüsselte Titeldaten aus der Cloud herunter. | |
Greifen Sie auf Nutzeranzeigeinformationen zu. |
Sitzungen
Bucket-ID
In OSS- EOS Sitzungen bezeichnet BucketId die spielspezifischen Filterungsinformationen der obersten Ebene für die Sitzungssuche. Weitere Informationen zur BucketId der Sitzung finden Sie in der EOS-Dokumentation zu Sitzungen.
BucketId kann auf alles festgelegt werden, was Ihr Projekt benötigt, indem Sie ein benutzerdefiniertes Attribut verwenden, das zu FOnlineSessionSettings::Settings hinzugefügt wurde. Fügen Sie dazu Folgendes zu Ihrem Projektcode hinzu:
SessionSettings.Settings.Add(OSSEOS_BUCKET_ID_ATTRIBUTE_KEY, FOnlineSessionSetting(FString(TEXT("BUCKET_ID_PLACEHOLDER")), EOnlineDataAdvertisementType::ViaOnlineService));dabei ist:
Bucket_ID_PLACEHOLDERdie Behälter-ID, die Sie verwenden wollen.
Diese benutzerdefinierte BucketId muss auf ähnliche Weise zu allen Sitzungssuchparametern hinzugefügt werden.
Stats
Stat-Namen
OSS EOS konvertiert alle Stats-Namen in Großbuchstaben, bevor sie an EOS übergeben werden. Achten Sie bei der Konfiguration Ihres Projekts im EOS-Entwicklerportal darauf, dass Sie Stats-Namen mit Großbuchstaben konfigurieren, um Kompatibilität mit OSS EOS sicherzustellen.
Bekannte Probleme
Kontoverknüpfung
Im Moment ist die Kontoverknüpfung während des Anmeldevorgangs nur auf der Steam-Plattform verfügbar. Bei der Anmeldung auf einer anderen Plattform wird der folgende Authentifizierungsfehler im Protokoll angezeigt:
LogEOSSDK: Warning: LogEOS: Error response received from backend. ServiceName=[OAuth], OperationName=[TokenGrant], Url=[<Redacted>], HttpStatus=[400], ErrorCode=[errors.com.epicgames.account.oauth.authorization_pending], NumericErrorCode=[1012], ErrorMessage=[The authorization server request is still pending as the end user has yet to visit and enter the verification code.], CorrId=[...]Diese Funktionalität wird in zukünftigen Veröffentlichungen auf anderen Plattformen verfügbar sein. In der Zwischenzeit können Sie die Konten manuell über den Tab „Konten“ im Abschnitt „Verbindungen“ der Epic Games-Kontoeinstellungen verknüpfen.
Das Epic-Konto, das für den Verknüpfungsvorgang verwendet wird, muss den Zugriffsumfang der Anwendung akzeptieren (wie im Abschnitt Anmelden bei OSS EOS beschrieben). Andernfalls wird dieser Fehler im Protokoll angezeigt:
LogEOSSDK: Warning: LogEOS: Error response received from backend. ServiceName=[OAuth], OperationName=[TokenGrant], Url=[<Redacted>], HttpStatus=[400], ErrorCode=[errors.com.epicgames.oauth.scope_consent_required], NumericErrorCode=[58005], ErrorMessage=[The user has not consented to required scopes.], CorrId=[...]Sobald das Konto verknüpft ist, wird der Zugriffsumfang akzeptiert. Bei korrekter EOS-Authentifizierungskonfiguration wird die Anmeldung erfolgreich abgeschlossen und die Anwendung kann alle zusätzlichen EAS-Funktionen nutzen.