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

با استفاده از کیت توسعه نرم‌افزار (SDK) مخصوص کامپیوتر Play Games، می‌توانید به سرویس‌های گوگل پلی دسترسی پیدا کنید تا بازی خود را روی کامپیوتر بسازید و از آن کسب درآمد کنید. با استفاده از Play Billing محتوای دیجیتال بفروشید، با استفاده از Play Games به راحتی وارد سیستم شوید و با استفاده از Play Integrity، تأیید کنید که کاربران شما حق استفاده از برنامه شما را دارند.

آماده شروع هستید؟

پیش‌نیازها

  • یک ورودی برنامه داخل کنسول Play ایجاد کنید و نام بسته Play را برای آن انتخاب کنید.

  • بازی گوگل پلی برای کامپیوتر را دانلود و نصب کنید و با حساب گوگل خود وارد شوید.

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

  • کیت توسعه نرم‌افزاری C++ مخصوص کامپیوتر Play Games را دانلود کنید.

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

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

    • برای نسخه ۶۴ بیتی (x64): فایل‌ها را از imports/x64/ کپی کنید.
    • برای سیستم عامل ۳۲ بیتی (x86): فایل‌ها را از imports/x86/ کپی کنید.
  • پروژه خود را به play_pc_sdk.lib لینک کنید تا به محتویات play_pc_sdk.dll دسترسی داشته باشید.

مرحله ۲ : اضافه کردن فایل مانیفست

قبل از اینکه بتوانید از SDK درون بازی خود استفاده کنید، باید فایل اجرایی بازی خود را با نام بسته Play که در کنسول Play ادعا کرده‌اید، مرتبط کنید. این کار با اضافه کردن یک فایل 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

مرحله ۳ : بازی خود را به صورت دیجیتالی امضا کنید

قبل از اینکه بازی شما بتواند از SDK استفاده کند، فایل اجرایی بازی باید با استفاده از امضای دیجیتال Authenticode امضا شود. برای دستورالعمل نحوه امضای یک فایل اجرایی، به مستندات موجود در SignTool مراجعه کنید.

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

مرحله ۴ : مقداردهی اولیه SDK

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

با فراخوانی GooglePlayInitialize برای مقداردهی اولیه API، استفاده از SDK را شروع کنید. این کار حالت سراسری را تنظیم می‌کند، به زمان اجرای SDK متصل می‌شود و تأیید می‌کند که برنامه به درستی شروع شده است. قبل از استفاده از هر API دیگری، این باید فراخوانی شود و callback ادامه با 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 Games از کاربر می‌خواهد که یک نسخه از آن را خریداری کند. برای سایر خطاها، همچنان توصیه می‌شود در اسرع وقت از فرآیند بازی خارج شوید، زیرا از SDK برای انجام عملیات حیاتی مانند تأیید اینکه کاربر مجوز معتبری برای بازی شما دارد، استفاده نخواهد شد.

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

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

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

  • فایل اجرایی بازی از طریق کلاینت بازی‌های گوگل پلی اجرا نشد.

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

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

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

  1. فرآیندی که مستقیماً توسط Google Play Games برای رایانه شخصی راه‌اندازی می‌شود، باید راه‌اندازی موفقیت‌آمیز کیت توسعه نرم‌افزاری (SDK) رایانه شخصی Play Games را تأیید کند.

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

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

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

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

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

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

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

مراحل بعدی

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

ویژگی‌های گوگل پلی کامپیوتر را به برنامه خود اضافه کنید: