Эмулятор Google Play Games для разработчиков на ПК — это ориентированный на разработчиков эмулятор для игр Google Play на ПК. В отличие от игрового процесса, вы можете устанавливать и отлаживать собственные пакеты. Вы также можете имитировать различные конфигурации игрока, такие как соотношение сторон, эмуляция мыши и графический бэкэнд, чтобы убедиться, что ваша игра работает должным образом на различных конфигурациях ПК.
Запуск эмулятора
После установки у вас появится элемент меню «Пуск» «Google Play Games Developer Emulator» и ярлык на рабочем столе для запуска эмулятора. Эмулятор останется в системном трее после закрытия окна.
Войти
При первом запуске эмулятора вам будет предложено войти в свою учетную запись Google. Используйте те же учетные данные, которые вы планируете использовать для разработки.
Чтобы выйти из системы, щелкните правой кнопкой мыши по значку в системном трее, выберите «Параметры разработчика» , а затем нажмите «Принудительный выход» . После этого эмулятор немедленно перезапустится и попросит вас снова войти в систему.
Навигация
После запуска вы увидите типичный домашний экран Android. Щелчки левой кнопкой мыши напрямую преобразуются в касания пальцем, как в режиме эмуляции мыши. Игры, установленные для разработки, отображаются в списке приложений, к которому можно получить доступ, перетащив курсор вверх на рабочем столе (имитируя свайп вверх на телефоне или планшете).
Помимо управления движением мыши, эмулятор Google Play Games для ПК предоставляет сочетания клавиш для упрощения навигации:
Ctrl + H : нажмите кнопку «Домой»Ctrl + B : нажмите кнопку «Назад»Ф11 илиAlt + Enter : переключение между полноэкранным и оконным режимамиShift + Tab : открыть оверлей Google Play Games на ПК, включая текущие настройки клавиш для Input SDK.
Установка игры
Эмулятор Google Play Games для разработчиков на ПК использует Android Debug Bridge (adb) для установки пакетов.
совместимость с ADB
Текущие версии adb совместимы с эмулятором Google Play Games для разработчиков на ПК. Кроме того, совместимая версия устанавливается в C:\Program Files\Google\Play Games Developer Emulator\current\emulator при установке эмулятора.
Чтобы следовать этим инструкциям, adb должен быть доступен в вашей $PATH . Вы можете убедиться в правильности настройки adb с помощью команды adb devices
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вместо `bundletool`.Запустите игру одним из следующих способов:
- Введите команду
adb shell monkey -p your.package.name 1чтобы запустить игру, заменивyour.package.nameна имя пакета вашей игры. - В эмуляторе Google Play Games для ПК нажмите на значок, чтобы запустить игру. Как и на телефоне Android, вам нужно провести пальцем вверх по главному экрану, чтобы увидеть список установленных игр.
- Введите команду
Отладка игры
Используйте 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 Games для разработчиков на ПК ориентирован на эффективность работы разработчиков, а не на удобство для конечного пользователя. Это означает, что у вас есть беспрепятственный доступ к системе Android, включая использование стандартного лаунчера Android вместо интерфейса Google Play Games на ПК, а также возможность управлять функциями, которые в противном случае автоматически включаются и отключаются для игроков.
Проверка ввода с мыши
В процессе разработки эмулятор Google Play Games для ПК по умолчанию использует эмуляцию сенсорного управления, а не прямой ввод с мыши. Вы можете включить прямой ввод с мыши, щелкнув правой кнопкой мыши значок в системном трее, выбрав «Параметры разработчика », а затем «Режим ПК» (KiwiMouse) .
В Google Play Games на ПК есть два режима работы мыши: эмулированный режим, который преобразует щелчки мыши в одиночные касания, и режим «ПК-сквозной передачи», который позволяет играм обрабатывать действия мыши напрямую и захватывать указатель. Подробную информацию о вводе с мыши в Google Play Games на ПК см. в разделе «Настройка ввода с мыши» .
В клиентском приложении плеера эмуляция отключается добавлением следующего кода в манифест:
<manifest ...>
<uses-feature
android:name="android.hardware.type.pc"
android:required="false" />
...
</manifest>
Этот флаг функции не оказывает никакого влияния в среде разработки.
Тестирование соотношения сторон
Эмулятор разработчика запускается в соотношении сторон 16:9 — в отличие от клиентского приложения, которое определяет соотношение сторон на основе основного дисплея. Щелкнув правой кнопкой мыши по значку в системном трее, выбрав «Параметры разработчика» , а затем любой параметр в разделе «Соотношение сторон дисплея» , вы можете проверить, как игра выглядит на экранах разных игроков.
Предпочтительный способ настройки соотношения сторон — использование параметров 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 (Портретный) в выпадающем списке, чтобы посмотреть, как это выглядит на компьютерах игроков. В противном случае убедитесь, что ваша игра работает в самых широких и самых узких альбомных соотношениях сторон, поддерживаемых в вашем манифесте, помня, что для полной сертификации требуется 16:9 (По умолчанию) (или 9:16 (Портретный), если ваша игра поддерживает только портретный режим).
Тестирование бэкендов рендеринга
Google Play Games на ПК использует Vulkan для рендеринга игр, что характерно как для среды Android, так и для ПК. Для изоляции сред ПК и Android используется слой песочницы. Поскольку многие игры по-прежнему используют OpenGL ES для рендеринга, ANGLE преобразует команды OpenGL ES в команды Vulkan, совместимые с хост-компьютером.
Аналогичным образом, Google Play Games на ПК максимально повышает совместимость игр и минимизирует усилия разработчиков, автоматически преобразуя удобные для мобильных устройств форматы текстур, такие как ETC1 и ETC2, в форматы, удобные для ПК, во время выполнения. Для достижения наилучших результатов избегайте этого преобразования, используя форматы, поддерживаемые графическими процессорами ПК, такие как DXTC или BPTC.
Что тестировать
Если в вашей игре наблюдаются неожиданные артефакты рендеринга, проверьте исходные графические файлы и подумайте о переходе на формат, совместимый с ПК. Обратите особое внимание на текстуры, используемые для более сложных эффектов, поскольку проблемы с нормалями или кубическими картами часто сложнее обнаружить, чем проблемы с Albeido.
Преобразование команд OpenGL ES в Vulkan в ANGLE приведет к некоторой дополнительной нагрузке. Убедитесь, что вы достигаете ожидаемых показателей производительности, и рассмотрите возможность перехода на рендерер на основе Vulkan.
Профилирование вашей компьютерной игры
Поскольку эмулятор использует ту же технологию, что и клиентское приложение, он является подходящей средой для профилирования производительности.
Perfetto — это инструмент для анализа производительности Android. Вы можете собрать и просмотреть трассировку Perfetto, выполнив следующие шаги:
В командной строке PowerShell запустите трассировку с помощью
adbadb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace- Флаг
--timeзадает продолжительность собираемой трассировки. В этом примере продолжительность трассировки составляет 10 секунд. - Аргументы после флага
--timeуказывают, какие события следует отслеживать. В этом примереgfxобозначает графику, управление окнами оконwmи информацию о планировании процессовsched. Это распространенные флаги для профилирования игр, и полный справочник доступен по ссылке. - Флаг
--outуказывает выходной файл, который на следующем шаге будет загружен из эмулятора на хост-машину.
- Флаг
Получите трассировку с вашего хоста.
adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.traceОткройте трассировку в пользовательском интерфейсе Perfetto.
- Откройте файл ui.perfetto.dev .
- В левом верхнем углу в разделе «Навигация» выберите «Открыть файл трассировки» .
- Откройте файл
example.trace, который вы скачали на предыдущем шаге, в папкеDownloads/.
Просмотрите трассировку в пользовательском интерфейсе Perfetto. Несколько советов:
- Каждый процесс имеет свою собственную строку, которую можно развернуть, чтобы отобразить все потоки в этом процессе. Если вы профилируете игру, то её процесс, скорее всего, будет в первой строке.
- Для увеличения и уменьшения масштаба удерживайте клавишу Control и используйте колесико мыши.
- При использовании события
schedдля каждого потока отображается строка, показывающая, находится ли этот поток в состоянии выполнения, готовности к выполнению, сна или блокировки. - При включении такого события, как
gfx, вы можете увидеть различные графические вызовы, выполняемые разными потоками. Вы можете выбрать отдельные «фрагменты», чтобы увидеть, сколько времени они заняли, или перетащить курсор вдоль строки, чтобы внизу открылся раздел «фрагменты», показывающий, сколько времени заняли все фрагменты в выбранном временном окне.
Графическое профилирование
С помощью RenderDoc можно выполнить профилирование графики.
- Установите переменную среды
ANDROID_EMU_RENDERDOCв непустую строку (например,"1"). Установите переменную среды
TMPв значение%USERPROFILE%\AppData\LocalLow. Это укажет Renderdoc размещать свои файлы журналов в доступном месте внутри песочницы эмулятора.Если вы используете бэкэнд Vulkan , выберите «Настройки графики» > «Неявные слои экземпляра Vulkan» и убедитесь, что установлен флажок VKLAYER_RENDERDOC_Capture .
Запустите Google Play Games на эмуляторе разработчика для ПК. При включенной поддержке в верхней части экрана будет отображаться наложение RenderDoc.
Запускайте RenderDoc в любое время до или после запуска Google Play Games на ПК в эмуляторе разработчика.
Нажмите «Файл» > «Подключиться к работающему экземпляру» и выберите 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 (уровень API 30) и выше.
Приложение Google Play Games на ПК обновлено до последних версий 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 30) или выше включает в себя функцию ограниченного хранилища (scoped storage ), которая обеспечивает лучшую защиту данных приложений и пользователей на внешних носителях. Помимо обеспечения совместимости вашей игры с требованиями ограниченного хранилища , вам необходимо выполнить дополнительные шаги для загрузки файлов расширения APK (obb) или данных ресурсов в эмулятор Google Play Games на ПК. Если у вас возникнут проблемы с доступом к этим файлам из вашей игры, выполните следующие действия:
- Создайте каталог, который ваше приложение сможет читать.
- Загрузите файлы расширения в эмулятор.
adb shell mkdir /sdcard/Android/obb/com.example.gameadb push main.com.example.game.obb /sdcard/Android/obb/com.example.game
Видимость упаковки
Из-за новых правил видимости пакетов приложениям, ориентированным на Android 11 (уровень API 30) или выше, блокируется возможность запрашивать информацию о других приложениях, установленных на устройстве. Это означает, что вашей игре будет заблокирован доступ к Play Services при установке через adb , а не через Play Store. Чтобы протестировать ваши внутриигровые покупки с игрой, установленной через adb, необходимо добавить запрос к пакету " com.android.vending " в файле AndroidManifest.xml следующим образом:
<manifest>
<queries>
<package android:name="com.android.vending" />
</queries>
</manifest>
Установка игры в клиентское приложение.
Вы не сможете установить игру на клиентское приложение, пока она не будет добавлена в каталог Play Games Services. После того, как ваша игра получит свой первый релиз, вы можете создать внутренний тестовый трек для проверки будущих обновлений перед выпуском.
Клиентская часть игры не поддерживает функции, ориентированные на разработчиков, которые есть в эмуляторе Google Play Games для ПК. Лучше всего использовать его для тестирования игры перед релизом, чтобы проверить весь пользовательский опыт после первоначального выпуска.