Разработка с помощью эмулятора разработчика игр Google Play для ПК

Эмулятор Google Play Games on PC Developer Emulator — это эмулятор Google Play Games для ПК, ориентированный на разработчиков. В отличие от игрового процесса, вы можете устанавливать и отлаживать собственные пакеты. Вы также можете симулировать различные конфигурации игрового процесса, такие как соотношение сторон экрана, эмуляция мыши и графическая подсистема, чтобы гарантировать ожидаемую производительность игры на различных конфигурациях ПК.

Запуск эмулятора

После установки в меню «Пуск» появится элемент «Эмулятор разработчика Google Play Игр» и ярлык на рабочем столе для запуска эмулятора. Эмулятор останется в системном трее после закрытия окна.

Войти

При первом запуске эмулятора вам будет предложено войти в свою учётную запись Google. Используйте те же учётные данные, которые вы планируете использовать для разработки.

Вы можете выйти из системы, щёлкнув правой кнопкой мыши по значку в области уведомлений, выбрав «Параметры разработчика» и нажав «Принудительный выход» . После этого эмулятор немедленно перезапустится и предложит вам снова войти в систему.

После запуска вы увидите типичный домашний экран Android. Щелчки левой кнопкой мыши преобразуются в нажатия пальцем, как в режиме эмуляции мыши. Игры, загруженные из сторонних источников для разработки, отображаются в списке приложений, который можно открыть, щёлкнув и перетащив значок вверх на рабочем столе (эмуляция свайпа вверх на телефоне или планшете).

Помимо перевода мыши, эмулятор разработчика Google Play Games on PC предоставляет сочетания клавиш для улучшения навигации:

  • ctrl + h : нажмите кнопку «Домой»
  • ctrl + b : нажмите кнопку «Назад»
  • Ф11 или альт + энтер : переключение между полноэкранным и оконным режимами
  • Shift + Tab : открыть наложение Google Play Игр на ПК, включая текущие сопоставления клавиш для Input SDK

Установка игры

Эмулятор разработчика Google Play Games on PC использует Android Debug Bridge (adb) для установки пакетов.

совместимость с adb

Текущие версии adb совместимы с эмулятором Google Play Games on PC Developer Emulator. Кроме того, совместимая версия устанавливается в 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 .

  • Запустите игру одним из следующих способов:

    • Введите 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 Игр на ПК ориентирован на эффективность работы разработчиков, а не на удобство для конечных пользователей. Это означает, что вы получаете беспрепятственный доступ к системе Android, включая использование стандартного лаунчера Android вместо интерфейса Google Play Игр на ПК, а также управление функциями, которые в противном случае автоматически включаются и отключаются для игроков.

Тестирование ввода мыши

В процессе разработки эмулятор разработчика Google Play Games on PC по умолчанию использует эмуляцию сенсорного экрана вместо прямого ввода с помощью мыши. Вы можете включить прямой ввод с помощью мыши, щёлкнув правой кнопкой мыши по значку на панели задач, выбрав «Параметры разработчика» и затем «Режим ПК» (KiwiMouse) .

В Google Play Играх на ПК есть два режима мыши: режим эмуляции, преобразующий щелчки мыши в одиночные нажатия, и сквозной «режим ПК», позволяющий играм обрабатывать действия мыши автоматически и выполнять захват указателя. Подробнее о вводе мыши в Google Play Играх на ПК см. в разделе «Настройка ввода мыши» .

В клиенте плеера эмуляция отключается путем добавления в манифест следующего:

<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 Игры на ПК использует Vulkan для рендеринга игр, что характерно как для Android, так и для ПК. Для изоляции сред ПК и Android используется слой «песочницы». Поскольку многие игры по-прежнему используют OpenGL ES для рендеринга, ANGLE преобразует команды OpenGL ES в команды Vulkan, совместимые с хост-компьютером.

Аналогично, Google Play Игры на ПК обеспечивает максимальную совместимость игр и минимизирует усилия разработчиков, автоматически конвертируя удобные для мобильных устройств форматы текстур, такие как ETC1 и ETC2, в форматы, совместимые с ПК, во время выполнения. Для достижения наилучших результатов избегайте этого преобразования, используя форматы, поддерживаемые видеокартами ПК, например, 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 задаёт длительность трассировки. В данном примере она составляет 10 секунд.
    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. Несколько советов:

    1. Каждому процессу соответствует своя строка, которую можно развернуть, чтобы увидеть все потоки в этом процессе. Если вы профилируете игру, её процесс, скорее всего, будет в первой строке.
    2. Вы можете увеличивать и уменьшать масштаб, удерживая клавишу Control и используя колесо прокрутки.
    3. При использовании sched события для каждого потока отображается строка, показывающая состояние потока: запущен, готов к запуску, спит или заблокирован.
    4. При включении события, например, gfx , вы можете видеть различные графические вызовы, выполненные разными потоками. Вы можете выбрать отдельные «срезы», чтобы увидеть, сколько времени они заняли, или перетащить строку, чтобы открыть раздел «Срезы» внизу и увидеть, сколько времени заняли все срезы в выбранном временном интервале.

Графическое профилирование

С помощью RenderDoc можно выполнить некоторое графическое профилирование.

  1. Задайте для переменной среды ANDROID_EMU_RENDERDOC непустую строку (например, "1" ).
  2. Установите переменную окружения TMP в значение %USERPROFILE%\AppData\LocalLow . Это указывает Renderdoc размещать файлы журналов в доступном месте внутри песочницы эмулятора.

  3. Если вы используете бэкэнд Vulkan , выберите «Настройки графики» > «Неявные слои экземпляра Vulkan» и убедитесь, что установлен флажок VKLAYER_RENDERDOC_Capture .

  4. Запустите эмулятор разработчика Google Play Games на ПК. Если поддержка включена, сверху отображается оверлей RenderDoc.

  5. Запускайте RenderDoc в любое время до или после запуска эмулятора разработчика Google Play Games на ПК.

  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 (уровень API 30) или выше

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 уровня 30) и выше реализовано хранилище с ограниченным доступом , которое обеспечивает лучшую защиту данных приложений и пользователей на внешнем накопителе. Помимо обеспечения совместимости игры с требованиями к ограниченному доступу к хранилищу , необходимо выполнить дополнительные действия для загрузки файлов расширения APK (OBB) или данных ресурсов в эмулятор разработчика Google Play Games на ПК. Если у вас возникли проблемы с доступом к этим файлам из игры, выполните следующие действия:

  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 Store. Чтобы протестировать встроенную покупку (IAP) с помощью игры, загруженной из стороннего приложения, необходимо добавить запрос к пакету com.android.vending в файле AndroidManifest.xml следующим образом:

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

Установка вашей игры в потребительский клиент

Вы не сможете установить игру на потребительском клиенте, пока она не будет добавлена в каталог игровых сервисов Play. После того, как ваша игра будет выпущена, вы можете создать внутреннюю тестовую версию для проверки будущих обновлений перед выпуском.

Клиентская часть игры не поддерживает функции эмулятора Google Play Games on PC Developer Emulator, ориентированные на разработчиков. Лучше всего использовать его для контроля качества игры перед релизом, чтобы протестировать сквозной игровой процесс после первого релиза.