تحسين أداء لعبتك باستخدام حزمة تطوير البرامج (SDK) لألعاب Play على الكمبيوتر

باستخدام حزمة تطوير البرامج (SDK) لبرنامج "ألعاب Play على الكمبيوتر"، يمكنك الوصول إلى خدمات Google Play لإنشاء لعبتك وتحقيق الربح منها على أجهزة الكمبيوتر، وبيع المحتوى الرقمي باستخدام خدمة الفوترة في Play، وتسجيل الدخول بسلاسة باستخدام "ألعاب Play"، والتأكّد من أنّ المستخدمين لديهم إذن صالح لاستخدام تطبيقك من خلال خدمة Play Integrity.

هل أنت مستعد للبدء؟

المتطلبات الأساسية

  • أنشئ إدخالاً للتطبيق داخل Play Console واطلب الحصول على اسم حزمة على Play.

  • نزِّل تطبيق ألعاب Google Play للكمبيوتر وثبِّته، ثم سجِّل الدخول باستخدام حسابك على Google.

الخطوة 1: إضافة حزمة تطوير البرامج إلى مشروعك

C++‎

  • نزِّل حزمة تطوير البرامج (SDK) الخاصة بـ "ألعاب Play على الكمبيوتر" C++.

  • انسخ مجلد عناوين API includes/ إلى قاعدة رموز تطبيقك.

  • انسخ الملفات القابلة لإعادة التوزيع من الدليل imports/ إلى مشروع تطبيقك، وذلك حسب بنية النظام المستهدَفة:

  • بالنسبة إلى نظام 64 بت (x64): انسخ الملفات من imports/x64/.

  • بالنسبة إلى نظام التشغيل 32 بت (x86): انسخ الملفات من imports/x86/.

  • اربط مشروعك بـ play_pc_sdk.lib للسماح بالوصول إلى محتوى play_pc_sdk.dll.

#C

الخطوة 2: إضافة ملف بيان

قبل أن تتمكّن من استخدام حزمة SDK من داخل لعبتك، عليك ربط ملف تنفيذ اللعبة باسم حزمة Play الذي طلبت الحصول عليه داخل Play Console. يتم ذلك عن طريق إضافة ملف manifest.xml في الدليل نفسه الذي يوجد فيه الملف التنفيذي للعبة.

مثال على محتوى manifest.xml:

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

مثال على موضع manifest.xml:

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

الخطوة 3: التوقيع الرقمي على لعبتك

قبل أن تتمكّن لعبتك من استخدام حزمة SDK، يجب توقيع الملف التنفيذي للعبة رقميًا باستخدام توقيع رقمي من Authenticode. للحصول على تعليمات حول كيفية توقيع ملف تنفيذي، يمكنك الاطّلاع على المستندات حول SignTool .

بعد إكمال عملية التوقيع الرقمي على لعبتك، أرسِل معلومات الشهادة إلى ممثل Google لإجراء عملية الإعداد.

الخطوة 4: إعداد حزمة تطوير البرامج (SDK)

يجب تهيئة حزمة تطوير البرامج (SDK) أثناء تسلسل بدء تشغيل لعبتك. ويجب إجراء ذلك تلقائيًا بدون الحاجة إلى أي تفاعل من المستخدم، وننصحك بالتحقّق من نجاح عملية التهيئة قبل عرض نافذة اللعبة. يوفّر ذلك أفضل تجربة للمستخدم من خلال عرض الأخطاء وحلّها في أقرب وقت ممكن، كما يتجنّب ظهور نافذة اللعبة لفترة وجيزة في الحالات التي تحتاج فيها عملية اللعبة إلى الخروج.

ابدأ استخدام حزمة SDK من خلال استدعاء GooglePlayInitialize (C++) / GooglePlayInitialization.InitializeAsync (C#) لإعداد واجهة برمجة التطبيقات. سيؤدي ذلك إلى إعداد الحالة العامة والربط بوقت تشغيل حزمة SDK والتحقّق من بدء تشغيل التطبيق بشكل صحيح. يجب استدعاء هذا الإجراء وإكمال معاودة الاتصال الخاصة بالمتابعة مع InitializeResult::ok() (C++) / Result.IsOk (C#) بقيمة تساوي true قبل استخدام أي واجهة برمجة تطبيقات أخرى.

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

في حال تعذُّر بدء التشغيل مع ظهور الرمز kActionRequiredShutdownClientProcess (C++) / InitializationError.ActionRequiredShutdownClientProcess (C#)، يجب إنهاء عملية اللعبة في أقرب وقت ممكن. سيحاول وقت تشغيل حزمة SDK مساعدة المستخدم بدون أن تضطر لعبتك إلى اتّخاذ أي إجراء إضافي. على سبيل المثال، إذا لم يكن لدى المستخدم ترخيص صالح للعبة، ستطلب "ألعاب Google Play" منه شراء نسخة. وفي حال حدوث أخطاء أخرى، عليك أيضًا إنهاء عملية اللعبة لأنّك لن تتمكّن من استخدام حزمة SDK لتنفيذ عمليات مهمة، مثل التحقّق من أنّ المستخدم لديه ترخيص صالح للعبتك.

قد تشير الاستجابة غير الناجحة إلى إحدى الحالات التالية:

  • لم يتم تثبيت وقت تشغيل حزمة SDK أو أنّه لا يعمل على الجهاز أو أنّه إصدار قديم غير متوافق مع حزمة SDK المدمجة في لعبتك.

  • تعذّر على وقت تشغيل حزمة تطوير البرامج (SDK) التحقّق من هوية تطبيق اللعبة. قد يرجع ذلك إلى استخدام قيمة غير صالحة للسمة manifest.xml أو استخدام حزمة تطوير البرامج (SDK) بدون تفعيل وضع مطور البرامج أثناء التطوير. وبدون ذلك، يجب توقيع الملف التنفيذي للعبتك رقميًا باستخدام الشهادة الرقمية المسجّلة باسم حزمة Play.

  • لم يتم تشغيل ملف تنفيذ اللعبة من خلال برنامج &quot;ألعاب Google Play&quot;.

  • لا يملك المستخدم النشط في &quot;ألعاب Google Play&quot; ترخيصًا للتطبيق.

الخطوة 5: (اختيارية) إتاحة عمليات متعددة للألعاب

أكمِل خطوات الدمج الإضافية هذه إذا كانت لعبتك تستخدم عمليات متعدّدة، وكانت عملية أخرى غير تلك التي يتم تشغيلها من خلال برنامج &quot;ألعاب Google Play على الكمبيوتر&quot; تستخدم حزمة تطوير البرامج (SDK) الخاصة ببرنامج &quot;ألعاب Play على الكمبيوتر&quot;. على سبيل المثال، إذا كان برنامج &quot;ألعاب Google Play على الكمبيوتر&quot; يشغّل مشغّل لعبتك، ثم يبدأ المشغّل عملية اللعبة التي ستتفاعل مع حزمة تطوير البرامج (SDK).

  1. يجب أن تتحقّق العملية التي يتم تشغيلها مباشرةً من خلال &quot;ألعاب Google Play على الكمبيوتر&quot; من تهيئة حزمة تطوير البرامج (SDK) الخاصة بـ &quot;ألعاب Play على الكمبيوتر&quot; بنجاح.

    يوفّر ذلك أفضل تجربة للمستخدم من خلال عرض الأخطاء في أقرب وقت ممكن. يُرجى العِلم أنّ العملية الفرعية التي تستخدم حزمة تطوير البرامج (SDK) يجب أن تنفّذ عملية الإعداد أيضًا، بالإضافة إلى العملية التي يتم تشغيلها مباشرةً.

  2. لاستخدام حزمة تطوير البرامج (SDK) الخاصة بتطبيق "ألعاب Play على الكمبيوتر" في عملية فرعية، عليك إعادة توجيه مَعلمات سطر الأوامر إلى العملية الفرعية التي تم إنشاؤها.

    مثال على إعادة توجيه مَعلمات سطر الأوامر:

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

    في هذا المثال، نرى تسلسلاً هرميًا للعمليات حيث يطلق تطبيق &quot;ألعاب Google Play على الكمبيوتر&quot; (GooglePlayGames.exe) اللعبة (YourGameLauncher.exe) مع بعض المَعلمات النموذجية (--gpg_args=abc --your_args=123). بعد ذلك، تنشئ اللعبة عملية فرعية (YourGame.exe) تستخدم حزمة تطوير البرامج (SDK) الخاصة بتطبيق &quot;ألعاب Play على الكمبيوتر&quot;. وللسماح بذلك، تعيد عملية اللعبة التي أطلقها تطبيق &quot;ألعاب Google Play على الكمبيوتر&quot; توجيه مَعلمات سطر الأوامر التي تم منحها إلى العملية الفرعية.

  3. الخروج من جميع العمليات عند توقّف اللعبة عن العمل

    عندما يغلق المستخدم لعبتك أو يتم إنهاء اللعبة بسبب تعذُّر تهيئة حزمة SDK، مثل kActionRequiredShutdownClientProcess، يجب إغلاق جميع العمليات التي أنشأتها لعبتك. ويضمن ذلك أنّه في المرة التالية التي يتم فيها تشغيل لعبتك من خلال برنامج &quot;ألعاب Google Play على الكمبيوتر&quot;، سيتم تطبيق التغييرات الجديدة، مثل التبديل إلى حساب نشط مختلف.

الخطوات التالية

استخدِم حزمة تطوير البرامج (SDK) أثناء التطوير في بيئة التطوير المتكاملة (IDE):

أضِف ميزات Google Play على الكمبيوتر إلى تطبيقك باتّباع الخطوات التالية: