Ihr Spiel mit dem Play Spiele PC SDK optimieren

Mit dem Play Games PC SDK können Sie auf Google Play-Dienste zugreifen, um Ihr Spiel auf PCs zu entwickeln und zu monetarisieren. Verkaufen Sie digitale Inhalte mit Play Billing, melden Sie sich nahtlos mit Play Games an und prüfen Sie mit Play Integrity, ob Ihre Nutzer eine gültige Berechtigung für Ihre Anwendung haben.

Sind Sie bereit?

Voraussetzungen

  • Erstellen Sie einen App-Eintrag in der Play Console und beanspruchen Sie einen Play-Paketnamen.

  • Laden Sie Google Play Games für PC herunter und installieren Sie es. Melden Sie sich mit Ihrem Google-Konto an.

Schritt 1: SDK zu Ihrem Projekt hinzufügen

C++

  • Laden Sie das Play Games PC C++ SDK herunter.

  • Kopieren Sie den API-Headerordner includes/ in die Codebasis Ihrer Anwendung.

  • Kopieren Sie die weitervertreibbaren Dateien aus dem Verzeichnis imports/ in das Projekt Ihrer Anwendung, je nach Zielarchitektur:

  • 64-Bit (x64) : Kopieren Sie die Dateien aus imports/x64/.

  • 32-Bit (x86) : Kopieren Sie die Dateien aus imports/x86/.

  • Verknüpfen Sie Ihr Projekt mit play_pc_sdk.lib, um auf die Inhalte von play_pc_sdk.dll zuzugreifen.

C#

Schritt 2: Manifestdatei hinzufügen

Bevor Sie das SDK in Ihrem Spiel verwenden können, müssen Sie die ausführbare Datei Ihres Spiels mit dem Play-Paketnamen verknüpfen, den Sie in der Play Console beansprucht haben. Dazu fügen Sie eine manifest.xml-Datei im selben Verzeichnis wie die ausführbare Datei Ihres Spiels hinzu.

Beispiel für den Inhalt von manifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<?Manifest version="1">
   <?Application>
     <?PackageName>com.example.package<?/PackageName>
   <?/Application>
<?/Manifest>

Beispiel für die Platzierung von manifest.xml:

C:\Program Files
└───Example Game
    ├───Game.exe
    └───manifest.xml

Schritt 3: Spiel digital signieren

Bevor Ihr Spiel das SDK verwenden kann, muss die ausführbare Datei des Spiels digital signiert werden mit einer digitalen Authenticode-Signatur. Eine Anleitung zum Signieren einer ausführbaren Datei finden Sie in der Dokumentation zum SignTool .

Wenn Sie die digitale Signierung Ihres Spiels abgeschlossen haben, senden Sie die Zertifikatsinformationen zur Konfiguration an Ihren Google-Ansprechpartner.

Schritt 4: SDK initialisieren

Initialisieren Sie das SDK während der Startsequenz Ihres Spiels. Dies sollte automatisch erfolgen, ohne dass eine Nutzerinteraktion erforderlich ist. Es wird empfohlen, eine erfolgreiche Initialisierung zu prüfen, bevor Sie das Spielfenster rendern. So wird die Nutzerfreundlichkeit verbessert, da Fehler so schnell wie möglich erkannt und behoben werden können. Außerdem wird verhindert, dass das Spielfenster kurz angezeigt wird, wenn der Spielprozess beendet werden muss.

Rufen Sie GooglePlayInitialize (C++) / GooglePlayInitialization.InitializeAsync (C#) auf, um die API zu initialisieren. Dadurch wird der globale Status eingerichtet, eine Verbindung zur SDK- Laufzeit hergestellt und geprüft, ob die Anwendung korrekt gestartet wurde. Diese Funktion MUSS aufgerufen werden und der Rückruf der Fortsetzung muss mit InitializeResult::ok() (C++) / Result.IsOk (C#) gleich true abgeschlossen sein, bevor eine andere API verwendet werden kann.

C++

  // Initialize the SDK as part of the startup sequence of your application.
  auto promise = std::make_shared<std::promise<InitializeResult>>();
  GooglePlayInitialize(
    [promise](InitializeResult result) {
      promise->set_value(std::move(result));
    });

  auto initialize_result = promise->get_future().get();
  if (initialize_result.ok()) {
    // The SDK succeeded with initialization. Continue with the startup sequence
    // of the game.
    // ...
  } else if (initialize_result.code() == InitializationError::kActionRequiredShutdownClientProcess) {
    // The SDK failed to initialize and has requested that your game process exit
    // as soon as possible.
    exit(1);
  } else {
    // The SDK failed to initialize for an alternative reason. It is still
    // generally recommended that you exit the game process as soon as possible,
    // because it won't be possible to access any APIs in the SDK. Critical
    // operations such as verifying the user owns a valid license to your game
    // won't be possible.
    // ...
  }

C#

  // SDK Clients
  private BillingClient _billingClient;
  private IntegrityClient _integrityClient;

  // Stored product information
  private string _offerToken;

  private async void InitializeSDK()
  {
      // The factory provides the necessary handler for initialization.
      var initializationHandler = PlayPcSdkFactory.InitializationHandler;
      var result = await GooglePlayInitialization.InitializeAsync(initializationHandler);

      if (result.IsOk)
      {
          // Use the factory to get Unity-compatible instances of the clients
          _billingClient = PlayPcSdkFactory.CreateBillingClient();
          _integrityClient = PlayPcSdkFactory.CreateIntegrityClient();

          // SDK is ready for use
      }
      else
      {
          // Handle specific, actionable errors
          if (result.Code == InitializationError.ActionRequiredShutdownClientProcess)
          {
              Log("This game must be launched through the Google Play Games client. Please exit all game processes immediately, GPG will relaunch the game safely.");
              Application.Quit();
          }
      }
  }

Wenn die Initialisierung mit dem Code kActionRequiredShutdownClientProcess (C++) / InitializationError.ActionRequiredShutdownClientProcess (C#) fehlschlägt, beenden Sie den Spielprozess so schnell wie möglich. Die SDK-Laufzeit versucht, dem Nutzer zu helfen, ohne dass weitere Maßnahmen von Ihrem Spiel erforderlich sind. Wenn der Nutzer beispielsweise keine gültige Lizenz für das Spiel hat, wird er von Google Play Games aufgefordert, eine Kopie zu kaufen. Bei anderen Fehlern sollten Sie den Spielprozess ebenfalls beenden, da Sie das SDK nicht verwenden können, um wichtige Vorgänge auszuführen, z. B. zu prüfen, ob der Nutzer eine gültige Lizenz für Ihr Spiel hat.

Eine nicht erfolgreiche Antwort kann auf eine der folgenden Bedingungen hinweisen:

  • Die SDK-Laufzeit ist nicht installiert, wird nicht auf dem Gerät ausgeführt oder ist eine ältere Version, die nicht mit dem in Ihr Spiel integrierten SDK kompatibel ist.

  • Die SDK-Laufzeit konnte die Anwendungsidentität des Spiels nicht bestätigen. Das kann an einer ungültigen manifest.xml liegen oder daran, dass Sie das SDK ohne aktivierten Entwicklermodus verwenden. In diesem Fall muss die ausführbare Datei Ihres Spiels mit dem digitalen Zertifikat signiert werden, das für Ihren Play-Paketnamen registriert ist.

  • Die ausführbare Datei des Spiels wurde nicht über den Google Play Games-Client gestartet.

  • Der aktive Nutzer in Google Play Games hat keine Lizenz für die Anwendung.

Schritt 5: (Optional) Unterstützung mehrerer Spielprozesse

Führen Sie diese zusätzlichen Integrationsschritte aus, wenn Ihr Spiel mehrere Prozesse verwendet und das Play Games PC SDK von einem anderen Prozess als dem verwendet wird, der von Google Play Games auf dem PC gestartet wird. Wenn Google Play Games auf dem PC beispielsweise den Launcher Ihres Spiels startet und dieser dann den Spielprozess startet, der mit dem SDK interagiert.

  1. Der Prozess, der direkt von Google Play Games für PC gestartet wird, muss eine erfolgreiche Initialisierung des Play Games PC SDKbestätigen.

    So wird die Nutzerfreundlichkeit verbessert, da Fehler so schnell wie möglich erkannt werden. Beachten Sie, dass auch untergeordnete Prozesse, die das SDK verwenden, zusätzlich zum direkt gestarteten Prozess initialisiert werden müssen.

  2. Wenn Sie das Play Games PC SDK in einem untergeordneten Prozess verwenden möchten, leiten Sie die Befehlszeilenparameter an den erstellten untergeordneten Prozess weiter.

    Beispiel für die Weiterleitung von Befehlszeilenparametern:

    Processes hierarchy tree:
    
    GooglePlayGames.exe
    └───YourGameLauncher.exe --gpg_args=abc --your_args=123
        └───YourGame.exe --gpg_args=abc --your_args=123
    

    In diesem Beispiel sehen wir eine Prozesshierarchie, in der Google Play Games für PC (GooglePlayGames.exe) das Spiel (YourGameLauncher.exe) mit einigen Beispielparametern (--gpg_args=abc --your_args=123) startet. Das Spiel erstellt dann einen untergeordneten Prozess (YourGame.exe), der das Play Games PC SDK verwendet. Dazu leitet der vom Google Play Games-Client gestartete Spielprozess die Befehlszeilenparameter, die er erhalten hat, an den untergeordneten Prozess weiter.

  3. Beenden Sie alle Prozesse, wenn das Spiel nicht mehr ausgeführt wird.

    Wenn ein Nutzer Ihr Spiel schließt oder das Spiel aufgrund eines Fehlers bei der SDK-Initialisierung beendet wird, z. B. kActionRequiredShutdownClientProcess, schließen Sie alle Prozesse, die Ihr Spiel gestartet hat. So wird sichergestellt, dass beim nächsten Start Ihres Spiels durch den Google Play Games für PC-Client neue Änderungen wie der Wechsel zu einem anderen aktiven Konto wirksam werden.

Nächste Schritte

Verwenden Sie das SDK während der Entwicklung in Ihrer IDE:

Fügen Sie Ihrer App Google Play PC-Funktionen hinzu: