Эмулятор Google Play Games для разработчиков на ПК — это ориентированный на разработчиков эмулятор для игр Google Play на ПК. В отличие от игрового процесса, вы можете устанавливать и отлаживать собственные пакеты. Вы также можете имитировать различные конфигурации игрока, такие как соотношение сторон, эмуляция мыши и графический бэкэнд, чтобы убедиться, что ваша игра работает должным образом на различных конфигурациях ПК.
Запуск эмулятора
После установки у вас появится элемент меню «Пуск» «Google Play Games Developer Emulator» и ярлык на рабочем столе для запуска эмулятора. Эмулятор останется в системном трее после закрытия окна.
Войти
При первом запуске эмулятора вам будет предложено войти в свою учетную запись Google. Используйте те же учетные данные, которые вы планируете использовать для разработки.
Чтобы выйти из системы, щелкните правой кнопкой мыши по значку в системном трее, выберите «Параметры разработчика» , а затем нажмите «Принудительный выход» . После этого эмулятор немедленно перезапустится и попросит вас снова войти в систему.
Навигация
После запуска вы увидите типичный домашний экран Android. Щелчки левой кнопкой мыши напрямую преобразуются в касания пальцем, как в режиме эмуляции мыши. Игры, установленные для разработки, отображаются в списке приложений, к которому можно получить доступ, перетащив курсор вверх на рабочем столе (имитируя свайп вверх на телефоне или планшете).
Помимо управления движением мыши, эмулятор Google Play Games для ПК предоставляет сочетания клавиш для упрощения навигации:
Ctrl + H : нажмите кнопку «Домой»Ctrl + B : press the back buttonФ11 илиalt + enter : переключение между полноэкранным и оконным режимамиShift + Tab : открыть оверлей Google Play Games на ПК, включая текущие настройки клавиш для Input SDK.
Installing a game
Эмулятор Google Play Games для разработчиков на ПК использует Android Debug Bridge (adb) для установки пакетов.
adb compatibility
Текущие версии 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Установите игру
- Launch
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`.Run your game by either:
- Введите команду
adb shell monkey -p your.package.name 1чтобы запустить игру, заменивyour.package.nameна имя пакета вашей игры. - В эмуляторе Google Play Games для ПК нажмите на значок, чтобы запустить игру. Как и на телефоне Android, вам нужно провести пальцем вверх по главному экрану, чтобы увидеть список установленных игр.
- Введите команду
Debugging a game
Используйте 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 на ПК, а также возможность управлять функциями, которые в противном случае автоматически включаются и отключаются для игроков.
Testing mouse input
В процессе разработки эмулятор Google Play Games для ПК по умолчанию использует эмуляцию сенсорного управления, а не прямой ввод с мыши. Вы можете включить прямой ввод с мыши, щелкнув правой кнопкой мыши значок в системном трее, выбрав «Параметры разработчика », а затем «Режим ПК» (KiwiMouse) .
В Google Play Games на ПК есть два режима работы мыши: эмулированный режим, который преобразует щелчки мыши в одиночные касания, и режим «ПК-сквозной передачи», который позволяет играм обрабатывать действия мыши напрямую и захватывать указатель. Подробную информацию о вводе с мыши в Google Play Games на ПК см. в разделе «Настройка ввода с мыши» .
В клиентском приложении плеера эмуляция отключается добавлением следующего кода в манифест:
<manifest ...>
<uses-feature
android:name="android.hardware.type.pc"
android:required="false" />
...
</manifest>
Этот флаг функции не оказывает никакого влияния в среде разработки.
Testing aspect ratios
Эмулятор разработчика запускается в соотношении сторон 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>
What to test
Если в манифесте вашей игры поддерживаются только портретные режимы, вы можете выбрать 9:16 (Портретный) в выпадающем списке, чтобы посмотреть, как это выглядит на компьютерах игроков. В противном случае убедитесь, что ваша игра работает в самых широких и самых узких альбомных соотношениях сторон, поддерживаемых в вашем манифесте, помня, что для полной сертификации требуется 16:9 (По умолчанию) (или 9:16 (Портретный), если ваша игра поддерживает только портретный режим).
Testing rendering backends
Google Play Games на ПК использует Vulkan для рендеринга игр, что характерно как для среды Android, так и для ПК. Для изоляции сред ПК и Android используется слой песочницы. Поскольку многие игры по-прежнему используют OpenGL ES для рендеринга, ANGLE преобразует команды OpenGL ES в команды Vulkan, совместимые с хост-компьютером.
Аналогичным образом, Google Play Games на ПК максимально повышает совместимость игр и минимизирует усилия разработчиков, автоматически преобразуя удобные для мобильных устройств форматы текстур, такие как ETC1 и ETC2, в форматы, удобные для ПК, во время выполнения. Для достижения наилучших результатов избегайте этого преобразования, используя форматы, поддерживаемые графическими процессорами ПК, такие как DXTC или BPTC.
What to test
Если в вашей игре наблюдаются неожиданные артефакты рендеринга, проверьте исходные графические файлы и подумайте о переходе на формат, совместимый с ПК. Обратите особое внимание на текстуры, используемые для более сложных эффектов, поскольку проблемы с нормалями или кубическими картами часто сложнее обнаружить, чем проблемы с Albeido.
Преобразование команд OpenGL ES в Vulkan в ANGLE приведет к некоторой дополнительной нагрузке. Убедитесь, что вы достигаете ожидаемых показателей производительности, и рассмотрите возможность перехода на рендерер на основе Vulkan.
Profiling your PC game
Поскольку эмулятор использует ту же технологию, что и клиентское приложение, он является подходящей средой для профилирования производительности.
Perfetto — это инструмент для анализа производительности Android. Вы можете собрать и просмотреть трассировку Perfetto, выполнив следующие шаги:
In a PowerShell prompt, start a trace using
adbadb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace- Флаг
--timeзадает продолжительность собираемой трассировки. В этом примере продолжительность трассировки составляет 10 секунд. - Аргументы после флага
--timeуказывают, какие события следует отслеживать. В этом примереgfxобозначает графику, управление окнами оконwmи информацию о планировании процессовsched. Это распространенные флаги для профилирования игр, и полный справочник доступен по ссылке. - Флаг
--outуказывает выходной файл, который на следующем шаге будет загружен из эмулятора на хост-машину.
- Флаг
Pull the trace from your host
adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.traceOpen the trace in the Perfetto UI
- Open ui.perfetto.dev .
- В левом верхнем углу в разделе «Навигация» выберите «Открыть файл трассировки» .
- Откройте файл
example.trace, который вы скачали на предыдущем шаге, в папкеDownloads/.
Inspect the trace in the Perfetto UI. Some tips:
- Каждый процесс имеет свою собственную строку, которую можно развернуть, чтобы отобразить все потоки в этом процессе. Если вы профилируете игру, то её процесс, скорее всего, будет в первой строке.
- Для увеличения и уменьшения масштаба удерживайте клавишу Control и используйте колесико мыши.
- При использовании события
schedдля каждого потока отображается строка, показывающая, находится ли этот поток в состоянии выполнения, готовности к выполнению, сна или блокировки. - При включении такого события, как
gfx, вы можете увидеть различные графические вызовы, выполняемые разными потоками. Вы можете выбрать отдельные «фрагменты», чтобы увидеть, сколько времени они заняли, или перетащить курсор вдоль строки, чтобы внизу открылся раздел «фрагменты», показывающий, сколько времени заняли все фрагменты в выбранном временном окне.
Graphics Profiling
С помощью RenderDoc можно выполнить профилирование графики.
- Установите переменную среды
ANDROID_EMU_RENDERDOCв непустую строку (например,"1"). Установите переменную среды
TMPв значение%USERPROFILE%\AppData\LocalLow. Это укажет Renderdoc размещать свои файлы журналов в доступном месте внутри песочницы эмулятора.Если вы используете бэкэнд Vulkan , выберите «Настройки графики» > «Неявные слои экземпляра Vulkan» и убедитесь, что установлен флажок VKLAYER_RENDERDOC_Capture .
Запустите Google Play Games на эмуляторе разработчика для ПК. При включенной поддержке в верхней части экрана будет отображаться наложение RenderDoc.
Запускайте RenderDoc в любое время до или после запуска Google Play Games на ПК в эмуляторе разработчика.
Нажмите «Файл» > «Подключиться к работающему экземпляру» и выберите crosvm .
Specify Environment Variables
Для корректной работы Renderdoc необходимо добавить или изменить переменные среды в Windows. Изменить переменные среды можно с помощью пользовательского интерфейса, PowerShell или cmd.exe.
Use the UI
- Нажимать
Win+R to open the run dialog. - Введите
sysdm.cpl, чтобы открыть окно « Свойства системы» . - Выберите вкладку «Дополнительно» , если она еще не активна.
- Click the Environment Variables button.
Здесь вы можете либо нажать кнопку «Создать» , чтобы создать новую переменную среды, либо выбрать переменную и нажать кнопку «Редактировать» , чтобы отредактировать её.
Используйте PowerShell
In a PowerShell window, type:
$Env:VARIABLE_NAME=VALUE
Замените VARIABLE_NAME и VALUE значениями, которые вы хотите установить. Например, чтобы установить ANDROID_EMU_RENDERDOC в значение "1" , введите:
$Env:ANDROID_EMU_RENDERDOC="1"
Используйте cmd.exe
In a cmd.exe window, type:
set VARIABLE_NAME=VALUE
Замените VARIABLE_NAME и VALUE значениями, которые вы хотите установить. Например, чтобы установить ANDROID_EMU_RENDERDOC в значение "1" , введите:
set ANDROID_EMU_RENDERDOC="1"
Tips for Android 11 (API level 30) or higher
Приложение Google Play Games на ПК обновлено до последних версий Android. Вот несколько советов по работе с последней версией Android.
Keep tools up to date
Android Studio устанавливает версию adb, совместимую с эмулятором разработчика; однако некоторые игровые движки включают более старую версию adb. В этом случае после установки эмулятора разработчика вы можете найти совместимую версию adb по адресу C:\Program Files\Google\Play Games Developer Emulator\current\emulator .
Если вы запускаете одну версию adb , она завершает работу другой. Это означает, что если ваш игровой движок автоматически запускает собственный экземпляр adb , вам, возможно, придется перезапускать и повторно подключать версию adb , которая поставляется с эмулятором разработчика, при каждом развертывании.
Если вы используете пакет Android-приложения, вам необходимо установить последнюю версию Bundletool из репозитория GitHub .
Scoped Storage
Android 11 (уровень API 30) или выше включает в себя функцию ограниченного хранилища (scoped storage ), которая обеспечивает лучшую защиту данных приложений и пользователей на внешних носителях. Помимо обеспечения совместимости вашей игры с требованиями ограниченного хранилища , вам необходимо выполнить дополнительные шаги для загрузки файлов расширения APK (obb) или данных ресурсов в эмулятор Google Play Games на ПК. Если у вас возникнут проблемы с доступом к этим файлам из вашей игры, выполните следующие действия:
- Create a directory that your app can read.
- Push your expansion files to the emulator.
adb shell mkdir /sdcard/Android/obb/com.example.gameadb push main.com.example.game.obb /sdcard/Android/obb/com.example.game
Package Visibility
Из-за новых правил видимости пакетов приложениям, ориентированным на 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 для ПК. Лучше всего использовать его для тестирования игры перед релизом, чтобы проверить весь пользовательский опыт после первоначального выпуска.