Mengintegrasikan Google Play Game PC SDK dengan Unity

project, yang mencakup langkah-langkah mulai dari download SDK hingga inisialisasi dan konfigurasi build. keywords_public: Google Play Games PC, Unity, SDK integration, native PC, game development, IL2CPP, manifest, Play Games PC Unity SDK

Panduan ini memberikan petunjuk langkah demi langkah untuk mengintegrasikan Google Play Games PC SDK ke dalam project Unity Anda.

Langkah 1: Download SDK

Download versi terbaru Paket Unity menggunakan link download.

Download: Play Games PC Unity SDK

Langkah 2: Impor paket

SDK didistribusikan sebagai file tar yang kompatibel dengan Unity Package Manager (UPM). Untuk mengetahui informasi selengkapnya, lihat Menginstal paket UPM dari file tar lokal

Langkah 3: Konfigurasi Setelan Build

Untuk memverifikasi bahwa library native dimuat dengan benar, Anda harus mengonfigurasi project untuk menggunakan backend skrip IL2CPP dan menargetkan arsitektur yang benar.

  1. Buat profil build dengan Windows sebagai platform.

  2. Pilih setelan platform sebagai Windows. Untuk arsitektur, gunakan opsi:

    • Intel 64-bit (Direkomendasikan)
    • Intel 32-bit

    Catatan: Platform Google Play Game di PC berjalan di lingkungan 64-bit. Anda dapat mem-build game sebagai 32-bit (x86) atau 64-bit (x64).

  3. Tetapkan Scripting Backend ke IL2CPP. Untuk mengetahui informasi selengkapnya, lihat Mem-build project dengan IL2CPP.

    • Tetapkan Api Compatibility Level ke .NET Standard 2.0 (atau .NET Framework).

Langkah 4: Buat manifes aplikasi

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

Catatan: Ini adalah langkah manual yang harus dilakukan.

  1. Untuk mem-build file yang dapat dieksekusi game, pilih File > Build and Run atau klik Ctrl+B.
  2. Buka editor teks dan buat file baru bernama manifest.xml.
  3. Salin dan tempel kode XML berikut ke dalam file:

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

  4. Simpan file sebagai manifest.xml.

  5. Pindahkan file ini ke folder yang sama dengan file yang dapat dieksekusi game yang di-build.

    Contoh: Jika game Anda berada di Builds/MyGame.exe, manifes harus berada di Builds/manifest.xml.

Catatan: Jika Anda ingin menggunakan PC SDK saat mengembangkan di Unity Editor tanpa perlu menandatangani file yang dapat dieksekusi game secara digital atau meluncurkannya dari Google Play Game. Untuk langkah-langkah konfigurasi manifes tambahan, lihat panduan penyiapan mode developer.

Langkah 5: Lakukan inisialisasi SDK

Anda harus melakukan inisialisasi SDK sebelum mengakses fitur apa pun, seperti Penagihan atau Integritas. Gunakan PlayPcSdkFactory untuk membuat pengendali inisialisasi dan memulai koneksi.

Buat skrip C# baru, misalnya, SdkInitialization.cs, dan tambahkan kode berikut:

using UnityEngine;
using System;
using System.Threading.Tasks;
// Import the SDK namespaces
using PlayPcSdkManaged.Initialization;
using PlayPcSdkManaged.Unity;

public class GooglePlayPCSDKInit : MonoBehaviour
{
    // Prevent double-initialization if this script is reloaded
    private static bool _isInitialized = false;

    private void Start()
    {
        // Use the "Safe Runner" pattern to fire the async method
        _ = InitializeSdkAsync();
    }

    private async Task InitializeSdkAsync()
    {
        if (_isInitialized)
        {
            Debug.LogWarning("Google Play PC SDK is already initialized. Skipping.");
            return;
        }

        try
        {
            Debug.Log("Initializing Google Play PC SDK...");

            // 1. Get the Unity-specific initialization handler from the factory
            var initHandler = PlayPcSdkFactory.InitializationHandler;

            // 2. Call InitializeAsync to start the connection
            var result = await GooglePlayInitialization.InitializeAsync(initHandler);

            // 3. Check the result
            if (result.IsOk)
            {
                _isInitialized = true;
                Debug.Log("<color=green>Google Play PC SDK Initialized Successfully!</color>");
                // You can now create BillingClient or IntegrityClient instances
            }
            else
            {
                Debug.LogError($"<color=red>Initialization Failed!</color>");
                Debug.LogError($"Error Code: {result.Code}");
                Debug.LogError($"Message: {result.ErrorMessage}");
            }
        }
        catch (Exception ex)
        {
            // Catch unexpected crashes or task failures
            Debug.LogError($"Exception during initialization: {ex.Message}");
            Debug.LogException(ex);
        }
    }
}

Lampirkan skrip ini ke GameObject di scene pertama Anda. Saat Anda menjalankan game, periksa Konsol untuk melihat pesan "SDK Initialized Successfully!".

Langkah 6: Mengaktifkan Putar Otomatis setelah menginstal Game Native PC

Google Play Game di PC (GPG) memungkinkan developer mengaktifkan fitur "putar otomatis", yang otomatis meluncurkan game Anda segera setelah proses penginstalan selesai. Fitur ini memungkinkan pengalaman pengguna yang lancar dengan mengalihkan pemain langsung ke game, yang sepenuhnya diautentikasi dalam ekosistem GPG.

Cara kerjanya

Saat Anda mengaktifkan fitur ini, GPG akan meneruskan token sesi GPG ke proses penginstal pihak ketiga (3P) Anda melalui argumen command line. Penginstal Anda kemudian bertanggung jawab untuk mengekstrak token ini dan menggunakannya untuk meluncurkan file yang dapat dieksekusi game dalam konteks yang diautentikasi.

Prasyarat

Untuk menggunakan fitur ini, penginstal 3P Anda harus dapat menangani argumen command line.

Langkah-Langkah Implementasi

  1. Aktifkan Putar Otomatis di Konfigurasi Penerbitan

    Untuk ikut serta dalam fitur ini, tambahkan atribut acceptsCommandLineArguments ke elemen <installer> di play_publishing_config.xml.

    Contoh konten manifest.xml:

    <installer requiresElevation="true" acceptsCommandLineArguments="true">
      <path>path/to/installer.exe</path>
      <installation-path-registry-location>
        <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\key</key-name>
        <value-name>InstallPath</value-name>
      </installation-path-registry-location>
    </installer>
    
    • Atribut: acceptsCommandLineArguments
    • Jenis: Boolean
    • Default: false
    • Perilaku: Jika Anda menetapkannya ke benar (true), GPG akan menambahkan token sesi ke argumen command line saat menjalankan penginstal Anda.
  2. Tangani Token Sesi di Penginstal Anda

    Saat diluncurkan oleh klien GPG, penginstal Anda akan menerima token sesi sebagai argumen command line.

    • Format Argumen: --g_session_token=<TOKEN>

    Yang harus Anda lakukan:

    • Ekstraksi: Penginstal Anda harus mengurai argumen command line untuk mengambil string token.
    • Propagasi: Jika alur penginstalan Anda melibatkan peluncuran peluncur sekunder atau proses game, penginstal Anda bertanggung jawab untuk meneruskan token sesi dengan aman ke proses game akhir yang menggunakan SDK.
    • Peluncuran: Gunakan token sesi yang diberikan untuk memulai file yang dapat dieksekusi game. Hal ini memastikan game berjalan dalam konteks GPG yang diautentikasi. Jika tidak, InitializeSDK akan gagal dan pemain harus memulai ulang game Anda.
  3. Penanganan Error dan Penggantian

  • Pengambilan Token: Jika, karena alasan apa pun, GPG tidak dapat membuat atau meneruskan token sesi (misalnya, kegagalan pembuatan token), proses penginstalan akan tetap dilanjutkan. Namun, penginstal Anda akan diluncurkan tanpa argumen --g_session_token.
  • Ketahanan: Penginstal Anda harus dirancang untuk menangani skenario saat token sesi tidak ada. Dalam kasus tersebut, penginstal harus melanjutkan penginstalan standar ; Anda tidak boleh memicu peluncuran game otomatis karena InitializeSDK akan gagal.
  • Error Penginstal: Anda bertanggung jawab atas ketahanan dan penanganan error penginstal serta urutan peluncuran game yang dimulainya. GPG tidak memiliki kontrol atas proses yang terjadi dalam penginstal setelah diluncurkan.