بازی خود را با استفاده از Play Games PC SDK قدرت دهید

با Play Games PC SDK می‌توانید به خدمات Google Play برای ساخت و کسب درآمد از بازی خود در رایانه‌های شخصی دسترسی داشته باشید. محتوای دیجیتال را با استفاده از صورت‌حساب Play بفروشید، با استفاده از «بازی‌های Play» یکپارچه به سیستم وارد شوید و اطمینان حاصل کنید که کاربرانتان با استفاده از «یکپارچگی Play»، حق استفاده معتبری از برنامه شما دارند.

برای شروع آماده اید؟

پیش نیازها

مرحله 1 : SDK را به پروژه خود اضافه کنید

  • Play Games PC C++ SDK را دانلود کنید.

  • پوشه هدرهای API includes/ را در پایگاه کد برنامه خود کپی کنید.

  • فایل های قابل توزیع مجدد را از imports/ در پروژه برنامه خود کپی کنید.

    • پروژه خود را با play_pc_sdk.lib پیوند دهید تا به محتوای play_pc_sdk.dll دسترسی داشته باشید.

مرحله 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 مراجعه کنید.

مرحله 4 : SDK را راه اندازی کنید

SDK را در طول دنباله راه اندازی بازی خود راه اندازی کنید. این باید به طور خودکار و بدون نیاز به تعامل کاربر انجام شود و توصیه می شود قبل از رندر کردن پنجره بازی خود، یک مقداردهی اولیه موفقیت آمیز را تأیید کنید. این بهترین تجربه کاربری را با نمایان شدن و رفع خطاها در اسرع وقت فراهم می کند و از ظاهر شدن کوتاه پنجره بازی شما در مواردی که فرآیند بازی شما نیاز به خروج دارد جلوگیری می کند.

استفاده از SDK را با فراخوانی GooglePlayInitialize برای مقداردهی اولیه API شروع کنید. این حالت جهانی را تنظیم می کند، با زمان اجرا SDK متصل می شود و تأیید می کند که برنامه به درستی راه اندازی شده است. این MUST باید فراخوانی شود و قبل از استفاده از هر API دیگری، پاسخ تماس ادامه با InitializeResult::ok() برابر با true باشد.

// 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.
  // ...
}

اگر مقداردهی اولیه با کد kActionRequiredShutdownClientProcess انجام نشد ، در اسرع وقت از روند بازی خارج شوید . زمان اجرا SDK سعی می کند به کاربر کمک کند تا هیچ اقدام اضافی برای بازی شما مورد نیاز نباشد. به عنوان مثال، اگر کاربر مجوز معتبری برای بازی نداشته باشد، بازی‌های Google Play از کاربر می‌خواهد یک نسخه از آن بخرد. برای سایر خطاها، همچنان توصیه می‌شود که در اسرع وقت از روند بازی خارج شوید، زیرا از SDK برای انجام عملیات حیاتی مانند تأیید اینکه کاربر دارای مجوز معتبر برای بازی شما است، استفاده نمی‌کند.

پاسخ ناموفق ممکن است یکی از شرایط زیر را نشان دهد:

  • زمان اجرا SDK نصب نشده است، روی دستگاه اجرا نمی شود یا نسخه قدیمی آن با SDK ادغام شده در بازی شما سازگار نیست.

  • زمان اجرا SDK نتوانست هویت برنامه بازی را تأیید کند. این ممکن است به دلیل یک manifest.xml نامعتبر یا استفاده از SDK بدون فعال کردن حالت برنامه‌نویس هنگام توسعه باشد. بدون این، فایل اجرایی بازی شما باید به صورت دیجیتالی با گواهی دیجیتال ثبت شده در نام بسته Play شما امضا شود.

  • بازی قابل اجرا از طریق سرویس گیرنده بازی های Google Play راه اندازی نشده است.

  • کاربر فعال در بازی‌های Google Play مجوز برنامه را ندارد.

مرحله 5 : (اختیاری) پشتیبانی از چندین فرآیند بازی

اگر بازی شما از چندین فرآیند استفاده می‌کند و قصد دارد از Play Games PC SDK از فرآیندی استفاده کند که مستقیماً توسط Google Play Games برای رایانه شخصی راه‌اندازی نشده است، مراحل ادغام اضافی لازم است:

  1. فرآیندی که مستقیماً توسط «بازی‌های Google Play» برای رایانه راه‌اندازی می‌شود، باید راه‌اندازی موفقیت‌آمیز Play Games PC SDK را تأیید کند.

    این بهترین تجربه کاربری را با نمایش خطاها در اسرع وقت فراهم می کند. توجه داشته باشید که فرآیند فرزند با استفاده از SDK باید علاوه بر فرآیند راه‌اندازی مستقیم، مقداردهی اولیه را نیز انجام دهد.

  2. برای استفاده از Play Games PC SDK در فرآیند فرزند، پارامترهای خط فرمان را به فرآیند فرزندآوری ارسال کنید.

    نمونه ارسال پارامتر خط فرمان:

    Processes hierarchy tree:
    
    GooglePlayGames.exe
    └───YourGameLauncher.exe --foo=abc --bar=123
        └───YourGame.exe --foo=abc --bar=123
    

    در این مثال، ما یک سلسله مراتب فرآیند را می بینیم که در آن بازی های Google Play برای رایانه شخصی ( GooglePlayGames.exe ) بازی ( YourGameLauncher.exe ) را با برخی پارامترهای مثال ( --foo=abc --bar=123 ) راه اندازی می کند. سپس بازی یک فرآیند فرزند ( YourGame.exe ) ایجاد می کند که از Play Games PC SDK استفاده می کند. برای اجازه دادن به این امر، فرآیند بازی راه‌اندازی شده توسط Google Play Games برای رایانه شخصی، پارامترهای خط فرمان را که به فرآیند فرزند داده شده است، ارسال می‌کند.

  3. وقتی بازی متوقف شد از تمام فرآیندها خارج شوید.

    هنگامی که کاربری بازی شما را می بندد یا بازی به دلیل شکست اولیه SDK خارج می شود، مانند kActionRequiredShutdownClientProcess ، تمام فرآیندهایی را که بازی شما ایجاد کرده است، ببندید. این اطمینان حاصل می کند که دفعه بعد که بازی شما توسط سرویس گیرنده Google Play Games برای رایانه شخصی راه اندازی می شود، تغییرات جدیدی مانند تغییر به یک حساب فعال دیگر اعمال می شود.

مراحل بعدی

هنگام توسعه در IDE خود از SDK استفاده کنید:

ویژگی های رایانه شخصی Google Play را به برنامه خود اضافه کنید: