Memperkuat game Anda menggunakan Play Game PC SDK

Dengan SDK PC Play Game, Anda dapat mengakses layanan Google Play untuk membangun dan memonetisasi game di PC. Jual konten digital menggunakan Layanan Penagihan Play, login dengan lancar menggunakan Play Game, dan verifikasi bahwa pengguna Anda memiliki hak yang valid atas aplikasi Anda dengan Play Integrity.

Siap untuk memulai?

Prasyarat

  • Buat entri aplikasi di dalam Konsol Play dan klaim nama paket Play.

  • Download dan instal Google Play Game untuk PC, lalu login dengan Akun Google Anda.

Langkah 1: Tambahkan SDK ke project Anda

C++

  • Download SDK C++ Play Game PC.

  • Salin folder header API includes/ ke codebase aplikasi Anda.

  • Salin file yang dapat didistribusikan ulang dari direktori imports/ ke project aplikasi Anda, bergantung pada arsitektur target Anda:

  • Untuk 64-bit (x64): Salin file dari imports/x64/.

  • Untuk 32-bit (x86): Salin file dari imports/x86/.

  • Tautkan project Anda dengan play_pc_sdk.lib yang memungkinkan akses ke konten play_pc_sdk.dll.

C#

  • Download SDK C# Play Game PC dalam format .unitypackage.

  • Tarik lalu lepas file ini langsung ke area Assets di jendela Project Unity Editor

  • Jendela Import Unity Package akan muncul, biarkan semuanya dicentang dan klik Import

  • SDK kini telah diinstal dan dapat ditemukan di folder Assets/Plugins/PlayPcSdkManaged

Langkah 2: Tambahkan file manifes

Sebelum dapat menggunakan SDK dari dalam game, Anda harus mengaitkan file yang dapat dieksekusi game dengan nama paket Play yang Anda klaim di dalam Konsol Play. Hal ini dilakukan dengan menambahkan file manifest.xml di direktori yang sama dengan file yang dapat dieksekusi game Anda.

Contoh konten manifest.xml:

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

Contoh penempatan manifest.xml:

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

Langkah 3: Tanda tangani game Anda secara digital

Sebelum game Anda dapat menggunakan SDK, file yang dapat dieksekusi game harus ditandatangani secara digital menggunakan Tanda Tangan Digital Authenticode. Untuk mengetahui petunjuk cara menandatangani file yang dapat dieksekusi, lihat dokumentasi tentang SignTool .

Setelah Anda menyelesaikan proses penandatanganan game secara digital, kirimkan informasi sertifikat kepada perwakilan Google Anda untuk konfigurasi.

Langkah 4: Lakukan inisialisasi SDK

Lakukan inisialisasi SDK selama urutan startup game Anda. Hal ini harus dilakukan secara otomatis tanpa memerlukan interaksi pengguna dan sebaiknya verifikasi keberhasilan inisialisasi sebelum merender jendela game Anda. Hal ini memberikan pengalaman pengguna terbaik dengan memunculkan dan menyelesaikan error sesegera mungkin dan menghindari jendela game Anda muncul sebentar jika proses game Anda perlu keluar.

Mulai menggunakan SDK dengan memanggil GooglePlayInitialize (C++) / GooglePlayInitialization.InitializeAsync (C#) untuk menginisialisasi API. Tindakan ini akan menyiapkan status global, terhubung dengan runtime SDK, dan memverifikasi bahwa aplikasi telah dimulai dengan benar. HARUS dipanggil dan memiliki callback kelanjutan yang selesai dengan InitializeResult::ok() (C++) / Result.IsOk (C#) sama dengan true sebelum API lain dapat digunakan.

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();
          }
      }
  }

Jika inisialisasi gagal dengan kode kActionRequiredShutdownClientProcess (C++) / InitializationError.ActionRequiredShutdownClientProcess (C#), keluar dari proses game sesegera mungkin. Runtime SDK akan mencoba membantu pengguna tanpa memerlukan tindakan tambahan dari game Anda. Misalnya, jika pengguna tidak memiliki lisensi yang valid untuk game tersebut, Google Play Game akan meminta pengguna untuk membeli salinannya. Untuk error lainnya, Anda juga harus keluar dari proses game karena Anda tidak akan dapat menggunakan SDK untuk melakukan operasi penting, seperti memverifikasi bahwa pengguna memiliki lisensi yang valid untuk game Anda.

Respons yang tidak berhasil dapat menunjukkan salah satu kondisi berikut:

  • Runtime SDK tidak diinstal, tidak berjalan di perangkat, atau merupakan versi lama yang tidak kompatibel dengan SDK yang terintegrasi ke dalam game Anda.

  • Runtime SDK tidak dapat memverifikasi identitas aplikasi game. Hal ini dapat disebabkan oleh manifest.xml yang tidak valid atau penggunaan SDK tanpa mengaktifkan mode developer saat mengembangkan. Tanpa ini, file yang dapat dieksekusi game Anda harus ditandatangani secara digital dengan sertifikat digital yang terdaftar ke nama paket Play Anda.

  • File yang dapat dieksekusi game tidak diluncurkan melalui klien game Google Play.

  • Pengguna aktif di Google Play Game tidak memiliki lisensi untuk aplikasi.

Langkah 5: (Opsional) Mendukung beberapa proses game

Selesaikan langkah-langkah integrasi tambahan ini jika game Anda menggunakan beberapa proses, dan Play Game PC SDK digunakan oleh proses yang berbeda dengan proses yang diluncurkan oleh Google Play Game di PC. Misalnya, jika Google Play Game di PC meluncurkan peluncur game Anda, lalu peluncur Anda memulai proses game yang akan berinteraksi dengan SDK.

  1. Proses yang diluncurkan langsung oleh Google Play Game untuk PC harus memverifikasi keberhasilan inisialisasi SDK PC Play Game.

    Hal ini memberikan pengalaman pengguna terbaik dengan menampilkan error sesegera mungkin. Perhatikan bahwa proses turunan yang menggunakan SDK juga harus melakukan inisialisasi selain proses yang diluncurkan secara langsung.

  2. Untuk menggunakan Play Game PC SDK dalam proses turunan, teruskan parameter command line ke proses turunan yang di-spawn.

    Contoh penerusan parameter command line:

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

    Dalam contoh ini, kita melihat hierarki proses di mana Google Play Game untuk PC (GooglePlayGames.exe) meluncurkan game (YourGameLauncher.exe) dengan beberapa parameter contoh (--gpg_args=abc --your_args=123). Kemudian, game tersebut memunculkan proses turunan (YourGame.exe) yang menggunakan SDK PC Play Game. Untuk mengizinkan hal ini, proses game yang diluncurkan oleh Google Play Game untuk PC meneruskan parameter command line yang diberikan ke proses turunan.

  3. Keluar dari semua proses saat game berhenti berjalan.

    Saat pengguna menutup game Anda atau game keluar karena kegagalan inisialisasi SDK, seperti kActionRequiredShutdownClientProcess, tutup semua proses yang dihasilkan game Anda. Hal ini memastikan bahwa saat berikutnya game Anda diluncurkan oleh klien Google Play Game untuk PC, perubahan baru seperti beralih ke akun aktif lain akan diterapkan.

Langkah berikutnya

Gunakan SDK saat mengembangkan di IDE Anda:

Menambahkan fitur PC Google Play ke aplikasi Anda: