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

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

راه اندازی شبیه ساز

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

وارد شوید

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

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

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

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

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

نصب بازی

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

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

    • برای اجرای بازی خود adb shell monkey -p your.package.name 1 را تایپ کنید و نام بسته بازی خود را جایگزین your.package.name کنید.
    • در شبیه ساز برنامه نویس بازی های Google Play در رایانه شخصی، روی نماد کلیک کنید تا بازی خود اجرا شود. درست مانند گوشی های اندرویدی، برای مشاهده لیست بازی های نصب شده، باید روی صفحه اصلی "Swipe up" را انجام دهید.

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

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

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

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

تنظیمات برنامه نویس

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

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

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

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

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

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

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

تست نسبت ابعاد

شبیه ساز توسعه دهنده با نسبت تصویر 16:9 راه اندازی می شود - برخلاف کلاینت پخش کننده که نسبت تصویر خود را از صفحه نمایش اصلی استخراج می کند. با کلیک راست بر روی نماد سینی سیستم، انتخاب Developer Options و سپس هر گزینه در بخش Display Ratio ، می توانید نحوه نمایش بازی را در صفحه نمایش بازیکنان مختلف آزمایش کنید.

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

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

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

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

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

چه چیزی را تست کنیم

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

تست رندر باطن

بازی‌های Google Play در رایانه شخصی از ANGLE به عنوان لایه سازگاری استفاده می‌کند تا اطمینان حاصل کند که تماس‌های OpenGL ES توسط رایانه میزبان با استفاده از DirectX یا Vulkan به درستی انجام می‌شود. این شبیه ساز به طور مستقیم از Vulkan نیز پشتیبانی می کند، البته نه در DirectX. این لایه همچنین فرمت های بافت فشرده شده موبایل را به فرمت های سازگار با کامپیوتر تبدیل می کند. با کلیک راست بر روی نماد سینی سیستم و انتخاب Graphics Stack Override ، می‌توانید آن را روی پیش‌فرض سیستم خود تنظیم کنید یا برای تست سازگاری، vulkan را فعال یا خاموش کنید.

چه چیزی را تست کنیم

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

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

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

Perfetto ابزاری برای تجزیه و تحلیل عملکرد در اندروید است. با استفاده از مراحل زیر می توانید یک Trace 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. ردیابی را در Perfetto UI باز کنید

    1. ui.perfetto.dev را باز کنید.
    2. Open trace file را از گوشه سمت چپ بالا در قسمت Navigation انتخاب کنید.
    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 را انتخاب کنید و مطمئن شوید که VKLAYER_RENDERDOC_Capture علامت زده شده است.

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

  5. RenderDoc را قبل یا بعد از راه‌اندازی بازی‌های Google Play در شبیه‌ساز توسعه‌دهنده رایانه شخصی اجرا کنید.

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

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

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

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

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

از 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 (سطح API 30) یا بالاتر

بازی‌های Google Play روی رایانه شخصی با جدیدترین نسخه‌های اندروید به‌روزرسانی شده است. در اینجا چند نکته برای کار با آخرین نسخه اندروید آورده شده است.

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

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

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

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

Scoped Storage

Android 11 (سطح API 30) یا بالاتر شامل فضای ذخیره‌سازی محدوده است که حفاظت بهتری از داده‌های برنامه و کاربر در حافظه خارجی فراهم می‌کند. علاوه بر اینکه بازی خود را با الزامات فضای ذخیره‌سازی محدوده سازگار می‌کنید، باید مراحل بیشتری را برای بارگیری فایل‌های گسترش 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 30) یا بالاتر را هدف قرار می‌دهند، از جستجو برای اطلاعات مربوط به سایر برنامه‌هایی که روی دستگاه نصب شده‌اند مسدود می‌شوند. این به این معنی است که دسترسی بازی شما به خدمات Play هنگام بارگذاری جانبی از طریق adb به جای نصب از طریق فروشگاه Play مسدود می شود. برای آزمایش IAP خود با یک بازی sideloaded، باید یک پرس و جو به بسته " com.android.vending " در فایل AndroidManifest.xml خود به شرح زیر اضافه کنید:

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

نصب بازی خود در مشتری مشتری

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

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