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

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

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

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

Войти

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

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

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

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

  • Ctrl + Ч : нажмите кнопку домой
  • Ctrl + Б : нажмите кнопку «Назад»
  • F11 или альт+ввод : переключение между полноэкранным и оконным режимом
  • шифт + таб : открыть оверлей Google Play Games на ПК, включая текущие сопоставления клавиш для Input SDK.

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

Эмулятор разработчика игр Google Play для ПК использует 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 .

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

    • Введите 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 Games на ПК, а также контроль над функциями, которые в противном случае автоматически включаются и отключаются для игроков.

Тестирование ввода с помощью мыши

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

В Google Play Games для ПК есть два режима мыши: эмулируемый режим, который преобразует щелчки мыши в одиночные нажатия, и сквозной «режим ПК», который позволяет играм самостоятельно обрабатывать действия мыши и выполнять захват указателя. Подробную информацию о вводе с помощью мыши в 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 Games на ПК использует ANGLE в качестве уровня совместимости, чтобы гарантировать правильную обработку вызовов OpenGL ES хост-компьютером с использованием серверной части DirectX или Vulkan. Эмулятор также поддерживает напрямую Vulkan, но не DirectX. Этот слой также преобразует форматы сжатых текстур, предназначенные только для мобильных устройств, в форматы, совместимые с ПК. Щелкнув правой кнопкой мыши значок на панели задач и выбрав «Переопределить графический стек» , вы можете либо установить значение по умолчанию для вашей системы, либо принудительно включить или выключить 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 для ПК, ориентированные на разработчиков. Это лучше всего использовать для контроля качества игры перед ее выпуском, чтобы протестировать все аспекты взаимодействия с игроком после первоначального выпуска.