در حال توسعه با بازی های Google Play در شبیه ساز برنامه نویس رایانه شخصی

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

شروع شبیه ساز

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

ورود

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

می‌توانید با کلیک راست روی آیکون سینی سیستم، انتخاب گزینه‌های توسعه‌دهنده (Developer Options ) و سپس کلیک روی خروج اجباری (Force Sign Out) از سیستم خارج شوید. با انجام این کار، شبیه‌ساز بلافاصله مجدداً راه‌اندازی می‌شود و از شما می‌خواهد دوباره وارد سیستم شوید.

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

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

  • کنترل + ح : دکمه خانه را فشار دهید
  • کنترل + ب : دکمه بازگشت را فشار دهید
  • اف۱۱ یا alt + اینتر : تغییر حالت بین حالت تمام صفحه و پنجره‌ای
  • شیفت + تب : باز کردن پوشش Google Play Games on PC، شامل نگاشت‌های کلید فعلی برای Input SDK

نصب یک بازی

شبیه‌ساز توسعه‌دهندگان بازی‌های گوگل پلی روی کامپیوتر از Android Debug Bridge (adb) برای نصب بسته‌ها استفاده می‌کند.

سازگاری با adb

نسخه‌های فعلی adb با شبیه‌ساز توسعه‌دهندگان بازی‌های گوگل پلی روی کامپیوتر سازگار هستند. علاوه بر این، هنگام نصب شبیه‌ساز، یک نسخه سازگار در مسیر 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 App Bundle (aab) ایجاد کرده‌اید، به دستورالعمل‌های bundletool مراجعه کنید و به جای آن bundletool install-apks استفاده کنید.

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

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

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

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

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

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

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

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

تست ورودی ماوس

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

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

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

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

این feature flag هیچ تاثیری در محیط توسعه ندارد.

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

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

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

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

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

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

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

چه چیزی را آزمایش کنیم

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

تست رندرینگ بک‌اندها

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

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

چه چیزی را آزمایش کنیم

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

تبدیل دستورات OpenGL ES شما توسط ANGLE به Vulkan مقداری سربار اضافه خواهد کرد. تأیید کنید که به اهداف عملکردی مورد انتظار خود رسیده‌اید و تغییر به یک رندرکننده مبتنی بر Vulkan را در نظر بگیرید.

پروفایل کردن بازی کامپیوتری شما

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

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

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

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

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

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

    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 بروید و مطمئن شوید که VKLAYER_RENDERDOC_Capture تیک خورده باشد.

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

  5. RenderDoc را هر زمان قبل یا بعد از راه‌اندازی شبیه‌ساز توسعه‌دهندگان Google Play Games on PC اجرا کنید.

  6. روی File > Attach to Running Instance کلیک کنید و crosvm را انتخاب کنید.

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

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

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

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

از پاورشل استفاده کنید

در یک پنجره 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"

نکاتی برای اندروید ۱۱ (سطح API 30) یا بالاتر

بازی‌های گوگل پلی روی کامپیوتر با آخرین نسخه‌های اندروید به‌روزرسانی شده‌اند. در اینجا چند نکته برای کار با آخرین نسخه اندروید ارائه شده است.

ابزارها را به‌روز نگه دارید

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

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

اگر از بسته نرم‌افزاری اندروید استفاده می‌کنید، باید آخرین نسخه Bundletool را از مخزن گیت‌هاب نصب کنید.

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

اندروید ۱۱ (سطح API 30) یا بالاتر شامل فضای ذخیره‌سازی محدود (scoped storage ) است که محافظت بهتری از داده‌های برنامه و کاربر در حافظه خارجی ارائه می‌دهد. علاوه بر اینکه بازی شما با الزامات فضای ذخیره‌سازی محدود سازگار می‌شود، باید مراحل اضافی را برای بارگذاری فایل‌های توسعه 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

قابلیت مشاهده بسته

به دلیل قوانین جدید قابلیت مشاهده بسته ، برنامه‌هایی که اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار می‌دهند، از درخواست اطلاعات در مورد سایر برنامه‌های نصب شده روی دستگاه منع می‌شوند. این بدان معناست که بازی شما هنگام دانلود جانبی از طریق adb به جای نصب از طریق فروشگاه Play، از دسترسی به سرویس‌های Play مسدود می‌شود. برای آزمایش IAP خود با یک بازی دانلود جانبی، باید یک درخواست به بسته " com.android.vending " در فایل AndroidManifest.xml خود به شرح زیر اضافه کنید:

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

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

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

کلاینت بازیکن از ویژگی‌های متمرکز بر توسعه‌دهندگانِ شبیه‌ساز توسعه‌دهندگان بازی‌های گوگل پلی روی کامپیوتر پشتیبانی نمی‌کند. بهتر است از این شبیه‌ساز برای بررسی کیفیت بازی قبل از انتشار و آزمایش تجربه بازیکن از ابتدا تا انتها پس از انتشار اولیه استفاده شود.