توسعه با «شبیه‌ساز توسعه‌دهنده بازی‌های Google Play در رایانه»

شبیه‌ساز توسعه‌دهنده «بازی‌های Google Play» در رایانه شبیه‌سازی متمرکز بر توسعه‌دهنده برای «بازی‌های Google Play» در رایانه است. برخلاف تجربه بازیکن، می‌توانید بسته‌های خودتان را نصب و اشکال‌زدایی کنید. همچنین می‌توانید پیکربندی‌های مختلف بازیکن را شبیه‌سازی کنید، مثل نسبت ابعادی، شبیه‌سازی موشواره، و پسای گرافیک، تا به شما کمک کند مطمئن شوید بازی‌تان در انواع پیکربندی‌های رایانه شخصی همان‌طور که انتظار می‌رود عمل می‌کند.

درحال راه‌اندازی شبیه‌ساز

پس‌از نصب، عنصر منو شروع «شبیه‌ساز توسعه‌دهنده بازی‌های Google Play» و میان‌بر میز کار برای راه‌اندازی شبیه‌ساز را خواهید داشت. وقتی پنجره را می‌بندید، شبیه‌ساز در سینی سیستم شما باقی می‌ماند.

ورود به سیستم

وقتی برای اولین‌بار شبیه‌ساز را اجرا می‌کنید، از شما خواسته می‌شود به سیستم «حساب Google» خود وارد شوید. از همان اعتبارنامه ورود به سیستمی استفاده کنید که قصد دارید برای توسعه استفاده کنید.

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

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

علاوه‌بر ترجمه موشواره، «شبیه‌ساز توسعه‌دهنده بازی‌های Google Play در رایانه» میان‌برهای صفحه‌کلید را برای بهبود پیمایش ارائه می‌دهد:

  • ctrl + h: دکمه صفحه اصلی را فشار دهید
  • ctrl + b: فشار دادن دکمه برگشتن
  • F11 یا alt + enter: جابه‌جایی بین حالت تمام‌صفحه و پنجره‌ای
  • shift + tab: باز کردن هم‌پوشانی «بازی‌های Google Play در رایانه»، ازجمله نگاشت‌های کلید فعلی برای Input SDK

درحال نصب بازی

«شبیه‌ساز توسعه‌دهنده بازی‌های Google Play در رایانه» از Android Debug Bridge (adb) برای نصب بسته‌ها استفاده می‌کند.

سازگاری adb

نسخه‌های فعلی adb با «شبیه‌ساز توسعه‌دهنده بازی‌های Google Play در رایانه» سازگار است. علاوه‌براین، وقتی شبیه‌ساز را نصب می‌کنید، نسخه سازگاری در C:\Program Files\Google\Play Games Developer Emulator\current\emulator نصب می‌شود.

برای دنبال کردن این دستورالعمل‌ها، adb باید در $PATH شما دردسترس باشد. می‌توانید بااستفاده از فرمان adb devices درستی‌سنجی کنید که adb به‌درستی پیکربندی شده است

adb devices
List of devices attached
localhost:6520  device

نصب بازی

  • راه‌اندازی Google Play Games for PC Emulator
  • adb devices را در پیام‌واره فرمان تایپ کنید. باید موارد زیر را ببینید:

    adb devices
    List of devices attached
    localhost:6520 device
  • عیب‌یابی:

    • اگر خطایی دریافت کردید، بررسی کنید که دستورالعمل‌های سازگاری Adb را دنبال کرده باشید.
    • اگر دستگاهی نمی‌بینید، سعی کنید ازطریق درگاه 6520 دوباره متصل شوید:
    adb connect localhost:6520
  • برای نصب بازی، adb install path\to\your\game.apk را تایپ کنید. اگر «بسته ترکیبی برنامه Android»‏ (aab) تولید کرده‌اید، دستورالعمل‌های bundletool را ببینید و درعوض از bundletool install-apks استفاده کنید.

  • بازی‌تان را با یکی از این روش‌ها اجرا کنید:

    • adb shell monkey -p your.package.name 1 را برای اجرای بازی‌تان تایپ کنید، your.package.name را با نام بسته بازی‌تان جایگزین کنید.
    • در «شبیه‌ساز بازی‌های Google Play در رایانه» ویژه توسعه‌دهندگان، روی نماد کلیک کنید تا بازی‌تان اجرا شود. درست مثل تلفن Android، باید در صفحه اصلی «تند به‌بالا بکشید» تا فهرست بازی‌های نصب‌شده را ببینید.

اشکال‌زدایی بازی

از پل اشکال‌زدایی Android‏ (adb) برای اشکال‌زدایی استفاده کنید، همان‌طور که برای هر بازی دیگری انجام می‌دهید. شبیه‌ساز به‌عنوان دستگاهی که ازطریق localhost:6520 متصل شده است نشان داده می‌شود.

adb logcat طبق انتظار عمل می‌کند، همان‌طور که ابزارهایی که به زیباسازی یا فیلتر کردن خروجی logcat کمک می‌کنند (ازجمله Android Studio) طبق انتظار عمل می‌کنند.

علاوه‌بر adb، گزارش‌ها در فهرست راهنمای %LOCALAPPDATA%\Google\Play Games Developer Emulator\Logs شما قابل‌دسترسی است. مفیدترین مورد در اینجا AndroidSerial.log است که نشان‌دهنده همه چیزهایی است که adb logcat از لحظه شروع شبیه‌ساز تکرار می‌کند.

تنظیمات توسعه‌دهنده

«شبیه‌ساز توسعه‌دهنده بازی‌های Google Play در رایانه» به‌جای تجربه کاربر نهایی، بر کارایی توسعه‌دهنده تمرکز دارد. این یعنی دسترسی بدون مانع به سیستم Android دارید، ازجمله استفاده از راه‌انداز استاندارد Android به‌جای تجربه «بازی‌های Google Play» در رایانه، و کنترل ویژگی‌هایی که درغیراین‌صورت به‌طور خودکار برای بازیکنان فعال و غیرفعال می‌شوند.

درحال آزمایش ورودی موشواره

درطول توسعه، «شبیه‌ساز توسعه‌دهنده بازی‌های Google Play در رایانه» به‌جای اینکه ورودی موشواره مستقیم به شما بدهد، به‌طور پیش‌فرض روی شبیه‌سازی لمسی تنظیم شده است. می‌توانید ورودی مستقیم موشواره را با کلیک راست کردن روی نماد سینی سیستم، انتخاب گزینه‌های توسعه‌دهندگان، و سپس حالت رایانه (KiwiMouse) فعال کنید.

«بازی‌های Google Play در رایانه» دو حالت موشواره دارد: حالت شبیه‌سازی‌شده که کلیک‌های موشواره را به تک‌ضربه‌ها ترجمه می‌کند و «حالت رایانه» انتقالی که به بازی‌ها اجازه می‌دهد کنش‌های موشواره را به‌صورت بومی مدیریت کنند و ضبط اشاره‌گر را انجام دهند. برای جزئیات درباره ورودی موشواره در «بازی‌های Google Play در رایانه»، به راه‌اندازی ورودی موشواره مراجعه کنید.

در کلاینت پخش‌کننده، شبیه‌سازی با افزودن این مورد به مانیفست غیرفعال می‌شود:

<manifest ...>
  <uses-feature
      android:name="android.hardware.type.pc"
      android:required="false" />
  ...
</manifest>

این پرچم ویژگی در محیط توسعه نرم‌افزار تأثیری ندارد.

درحال آزمایش نسبت‌های ابعادی

شبیه‌ساز توسعه‌دهنده با نسبت ابعادی ۱۶:۹ راه‌اندازی می‌شود – برخلاف کارخواه پخش‌کننده که نسبت ابعادی خود را از نمایشگر اصلی می‌گیرد. با کلیک راست کردن روی نماد سینی سیستم، انتخاب کردن گزینه‌های توسعه‌دهندگان، و سپس هر گزینه‌ای در بخش نسبت نمایش، می‌توانید ظاهر بازی را در صفحه‌نمایش‌های مختلف بازیکنان آزمایش کنید.

روش ترجیحی برای پیکربندی نسبت ابعادی استفاده از android:minAspectRatio و android:maxAspectRatio است.

برای مثال، یک بازی عمودی نسبت ابعادی 9/16 یا 0.5625 دارد، بنابراین ممکن است بخواهید حداکثر نسبت ابعادی را روی 1 تنظیم کنید تا از عریض‌تر شدن بازی‌تان نسبت‌به مربع جلوگیری کنید:

<activity android:maxAspectRatio="1">
 ...
</activity>

به‌طور مشابه، بازی افقی 16/9 یا تقریباً 1.778 خواهد بود، بنابراین ممکن است بخواهید حداقل نسبت ابعادی 1 را تنظیم کنید تا از باریک‌تر شدن آن نسبت‌به مربع جلوگیری کنید:

<activity android:minAspectRatio="1">
 ...
</activity>

آنچه باید آزمایش شود

اگر بازی‌تان فقط از حالت‌های عمودی در مانیفست پشتیبانی می‌کند، می‌توانید ۹:۱۶ (عمودی) را در منو کرکره‌ای انتخاب کنید تا ببینید در رایانه بازیکنان چگونه به‌نظر می‌رسد. درغیراین‌صورت، بررسی کنید که بازی‌تان در عریض‌ترین و باریک‌ترین نسبت‌های افقی که در مانیفست پشتیبانی می‌کنید کار می‌کند یا نه، و به‌خاطر داشته باشید که ۱۶:۹ (پیش‌فرض) (یا ۹:۱۶ (عمودی) اگر بازی‌تان فقط عمودی است) برای دریافت گواهینامه کامل الزامی است.

درحال آزمایش پس‌زمینه‌های پردازش

«بازی‌های Google Play در رایانه» از Vulkan برای پردازاندن بازی‌هایتان استفاده می‌کند که هم برای محیط Android و هم برای محیط رایانه رایج است. از لایه جعبه شنی برای جداسازی محیط‌های رایانه و Android استفاده می‌شود. ازآنجایی‌که بسیاری از بازی‌ها هنوز از OpenGL ES برای پرداز استفاده می‌کنند، ANGLE فرمان‌های OpenGL ES را به فرمان‌های Vulkan سازگار با رایانه میزبان تبدیل می‌کند.

به‌طور مشابه، «بازی‌های Google Play در رایانه» با تبدیل خودکار قالب‌های بافت سازگار با تلفن همراه، مانند ETC1 و ETC2، به قالب‌های سازگار با رایانه در زمان اجرا، سازگاری بازی را به حداکثر می‌رساند و تلاش توسعه‌دهنده را به حداقل می‌رساند. برای بهترین نتایج، بااستفاده از قالب‌های پشتیبانی‌شده توسط GPU رایانه، مانند DXTC یا BPTC، از این تبدیل اجتناب کنید.

آنچه باید آزمایش شود

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

تبدیل فرمان‌های OpenGL ES شما به Vulkan توسط ANGLE باعث ایجاد سربار خواهد شد. بررسی کنید که به اهداف عملکرد موردانتظارتان می‌رسید و به استفاده از پردازنده گرافیکی مبتنی بر Vulkan فکر کنید.

درحال نمایه‌سازی بازی رایانه‌ای شما

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

Perfetto ابزاری برای تحلیل عملکرد در Android است. بااستفاده از مراحل زیر می‌توانید رد Perfetto را جمع‌آوری و مشاهده کنید:

  1. در پیام‌واره PowerShell، ردیابی را بااستفاده از adb شروع کنید

    adb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace
    
    1. پرچم --time مدت زمان ردیابی را برای جمع‌آوری مشخص می‌کند. در این مثال، ردگیری ۱۰ ثانیه است.
    2. آرگومان‌های بعداز پرچم --time نشان می‌دهند که کدام رویدادها باید ردیابی شوند. در این مثال، gfx نشان‌دهنده گرافیک، wm نشان‌دهنده مدیریت پنجره، و sched نشان‌دهنده اطلاعات زمان‌بندی پردازش است. این‌ها پرچم‌های رایج برای نمایه‌سازی بازی‌ها هستند و مرجع کامل دردسترس است.
    3. پرچم --out فایل خروجی را مشخص می‌کند که در مرحله بعدی از شبیه‌ساز به دستگاه میزبان منتقل می‌شود.
  2. ردیابی را از میزبان خود بکشید

    adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.trace
    
  3. ردیابی را در واسط کاربر Perfetto باز کنید

    1. ui.perfetto.dev را باز کنید.
    2. باز کردن فایل ردیابی را از گوشه بالا سمت راست در بخش پیمایش انتخاب کنید.
    3. فایل example.trace را که در مرحله قبل بارگیری کردید در دایرکتوری Downloads/ باز کنید.
  4. ردیابی را در Perfetto UI بررسی کنید. چند نکته:

    1. هر فرایند ردیف خودش را دارد که می‌توان آن را ازهم باز کرد تا همه رشته‌های آن فرایند نشان داده شود. اگر درحال نمایه‌سازی بازی هستید، احتمالاً فرایند آن در ردیف اول قرار دارد.
    2. با نگه داشتن مهار و استفاده از چرخ پیمایش می‌توانید زوم‌پیش و زوم‌پس کنید.
    3. هنگام استفاده از رویداد sched، برای هر رشته یک ردیف وجود دارد که نشان می‌دهد وضعیت آن رشته درحال اجرا، قابل اجرا، درحال خواب، یا مسدودشده است.
    4. هنگام فعال کردن رویدادی مانند gfx، می‌توانید فراخوانی‌های گرافیکی مختلفی را که توسط رشته‌های مختلف انجام شده است ببینید. می‌توانید «برش‌های» تکی را انتخاب کنید تا ببینید چقدر طول کشیده‌اند، یا می‌توانید درطول ردیف بکشید تا بخش «برش‌ها» در پایین باز شود و به شما نشان دهد که همه برش‌ها در پنجره زمانی انتخابی شما چقدر طول کشیده‌اند.

نمایه‌سازی گرافیک

با RenderDoc می‌توان برخی‌از نمایه‌سازی‌های گرافیکی را انجام داد.

  1. متغیر محیطی ANDROID_EMU_RENDERDOC را روی رشته‌ای غیرخالی (مثل "1") تنظیم کنید.
  2. متغیر محیطی TMP را روی %USERPROFILE%\AppData\LocalLow تنظیم کنید. این کار به Renderdoc می‌گوید فایل‌های گزارش خود را در جایی قابل‌دسترس در جعبه امن شبیه‌ساز قرار دهد.

  3. اگر از پسای Vulkan استفاده می‌کنید. Graphics Settings (تنظیمات گرافیک) > Vulkan Instance Implicit Layers (لایه‌های ضمنی نمونه Vulkan) را انتخاب کنید و مطمئن شوید VKLAYER_RENDERDOC_Capture علامت زده شده باشد.

  4. «شبیه‌ساز توسعه‌دهنده بازی‌های Google Play در رایانه» را راه‌اندازی کنید. تا زمانی که پشتیبانی فعال باشد، یک هم‌پوشانی RenderDoc در بالا ترسیم می‌شود.

  5. RenderDoc را هرزمان قبل یا بعداز راه‌اندازی «شبیه‌ساز توسعه‌دهنده بازی‌های Google Play در رایانه» راه‌اندازی کنید.

  6. روی فایل > پیوست کردن به نمونه درحال اجرا کلیک کنید و crosvm را انتخاب کنید.

مشخص کردن متغیرهای محیط

برای اینکه Renderdoc کار کند، باید متغیرهای محیطی را در Windows اضافه یا تغییر دهید. می‌توانید متغیرهای محیطی را بااستفاده از واسط کاربر، PowerShell، یا cmd.exe تغییر دهید.

استفاده از واسط کاربر
  • برای باز کردن کادر گفتگوی اجرا، Win+R را فشار دهید.
  • sysdm.cpl را تایپ کنید تا پنجره ویژگی‌های سیستم باز شود.
  • اگر برگه پیشرفته فعال نیست، آن را انتخاب کنید.
  • روی دکمه متغیرهای محیط کلیک کنید.

از اینجا می‌توانید روی دکمه جدید کلیک کنید تا متغیر محیطی جدیدی ایجاد کنید یا متغیری را انتخاب کنید و روی دکمه ویرایش کلیک کنید تا آن را ویرایش کنید.

استفاده از PowerShell

در پنجره PowerShell، تایپ کنید:

$Env:VARIABLE_NAME=VALUE

VARIABLE_NAME و VALUE را با مقادیری که می‌خواهید تنظیم کنید جایگزین کنید. برای مثال، برای تنظیم ANDROID_EMU_RENDERDOC روی "1"، تایپ کنید:

$Env:ANDROID_EMU_RENDERDOC="1"
استفاده از cmd.exe

در پنجره cmd.exe، تایپ کنید:

set VARIABLE_NAME=VALUE

VARIABLE_NAME و VALUE را با مقادیری که می‌خواهید تنظیم کنید جایگزین کنید. برای مثال، برای تنظیم ANDROID_EMU_RENDERDOC روی "1"، تایپ کنید:

set ANDROID_EMU_RENDERDOC="1"

نکته‌هایی برای Android 11 (سطح میانای برنامه‌سازی کاربردی ۳۰) یا بالاتر

«بازی‌های Google Play در رایانه» با جدیدترین نسخه‌های Android به‌روز می‌شود. در اینجا چند نکته برای کار با جدیدترین نسخه Android ارائه شده است.

به‌روز نگه داشتن ابزارها

Android Studio نسخه‌ای از adb را نصب می‌کند که با شبیه‌ساز توسعه‌دهنده سازگار است؛ بااین‌حال، برخی‌از موتورهای بازی حاوی نسخه قدیمی‌تری از adb هستند. در این صورت، پس‌از نصب شبیه‌ساز توسعه‌دهنده، می‌توانید نسخه سازگار adb را در C:\Program Files\Google\Play Games Developer Emulator\current\emulator پیدا کنید.

اگر یک نسخه از adb را راه‌اندازی کنید، نسخه دیگر بسته می‌شود. این یعنی اگر موتور بازی شما به‌طور خودکار نمونه adb خودش را راه‌اندازی کند، ممکن است مجبور شوید هرزمان که استقرار انجام می‌دهید، نسخه adb را که همراه با شبیه‌ساز توسعه‌دهنده ارائه می‌شود دوباره راه‌اندازی و متصل کنید.

اگر از «بسته ترکیبی برنامه Android» استفاده می‌کنید، باید جدیدترین نسخه Bundletool را از مخزن GitHub نصب کنید.

فضای ذخیره‌سازی محدودشده

Android 11 (سطح API‏ ۳۰) یا بالاتر شامل فضای ذخیره‌سازی هدف‌دار است که محافظت بهتری از داده‌های برنامه و کاربر در فضای ذخیره‌سازی خارجی ارائه می‌دهد. علاوه‌بر سازگار کردن بازی‌تان با الزامات فضای ذخیره‌سازی محدود، باید مراحل بیشتری را برای بار کردن فایل‌های توسعه APK (obb) یا داده‌های دارایی در «شبیه‌ساز توسعه‌دهنده بازی‌های Google Play در رایانه» انجام دهید. اگر در دسترسی به این فایل‌ها از بازی‌تان با مشکل مواجه شدید، این مراحل را دنبال کنید:

  1. فهرستی ایجاد کنید که برنامه‌تان بتواند آن را بخواند.
  2. فایل‌های توسعه را به شبیه‌ساز ارسال کنید.
adb shell mkdir /sdcard/Android/obb/com.example.game
adb push main.com.example.game.obb /sdcard/Android/obb/com.example.game

رؤیت‌پذیری بسته

به‌دلیل قوانین جدید رؤیت‌پذیری بسته، برنامه‌هایی که Android 11 (سطح API‏ ۳۰) یا بالاتر را هدف قرار می‌دهند، از جستجوی اطلاعات درباره برنامه‌های دیگری که در دستگاه نصب شده‌اند منع می‌شوند. این یعنی وقتی بازی شما به‌جای نصب شدن ازطریق «فروشگاه Play»، ازطریق adb جانبی‌گذاری می‌شود، دسترسی آن به «خدمات Play» مسدود می‌شود. برای آزمایش کردن خرید درون‌برنامه‌ای با بازی جانبی بارشده، باید پُرسمانی به بسته «com.android.vending» در فایل AndroidManifest.xml خود به‌صورت زیر اضافه کنید:

<manifest>
    <queries>
        <package android:name="com.android.vending" />
    </queries>
</manifest>

درحال نصب بازی شما در کلاینت مصرف‌کننده

تا زمانی که بازی در کاتالوگ «سرویس‌های بازی‌های Play» فهرست نشده باشد، نمی‌توانید آن را در کارخواه مصرف‌کننده نصب کنید. پس‌از اینکه بازی‌تان یک نسخه پخش داشت، می‌توانید دسته هدف آزمایشی داخلی ایجاد کنید تا به‌روزرسانی‌های آینده را پیش‌از انتشار اعتبارسنجی کنید.

کارخواه پخش‌کننده از ویژگی‌های متمرکز بر توسعه‌دهنده «شبیه‌ساز توسعه‌دهنده بازی‌های Google Play در رایانه» پشتیبانی نمی‌کند. این بهترین روش برای تضمین کیفیت بازی قبل‌از انتشار است تا تجربه بازیکن را از ابتدا تا انتها پس‌از انتشار اولیه آزمایش کنید.