...
🤳 Блог Android новостей, посвященный советам экспертов, новостям, обзорам, телефонам Android, приложениям, инструкциям, планшетам и мобильным телефонам.

Android Game SDK: что это такое и как использовать в своих приложениях

573

Android Game SDK представляет собой новый набор библиотек от Google, предназначенных для помощи облегчить лучшее развитие игры. По крайней мере, так оно и обещает быть в недалеком будущем. На данный момент Android Game SDK – это всего лишь одна библиотека: Android Frame Pacing Library, по-видимому, также известная как «Swappy».

Объявление было сделано в начале декабря 2019 года, и его можно считать давно назревшим включением. Надеемся, что будущие итерации помогут упростить процесс разработки игр, позволяя разработчикам быстрее разрабатывать и выпускать головоломки, платформеры или даже 3D-игры, не полагаясь на сторонние движки, такие как Unity и Unreal.

Этот пост будет часто обновляться по мере добавления новых элементов в Android Game SDK, так что добавьте эту страницу в закладки и возвращайтесь. А пока мы рассмотрим библиотеку времени кадра.


Как работает библиотека времени размещения кадров

Эта библиотека разработана, чтобы помочь играм поддерживать стабильную частоту кадров с минимальной задержкой ввода. Это достигается путем синхронизации цикла рендеринга игры с подсистемой отображения ОС и оборудованием. Подсистема дисплея направлена ​​на уменьшение разрывов, которые иногда могут возникать при переключении оборудования с одного кадра на другой в середине процесса обновления. Это достигается за счет буферизации предыдущих кадров, обнаружения поздних представлений и повторения отображения этих прошлых кадров в случае обнаружения позднего кадра.

Android Game SDK: что это такое и как использовать в своих приложениях

От Google

Однако это может допускать несоответствия в синхронизации, что приводит к несогласованному времени отображения кадров. Например, если кадр отображается быстрее, это может сократить количество времени, которое предыдущий кадр проводит на экране. Однако, если рендеринг кадра занимает слишком много времени, он может быть представлен для дополнительного кадра.

Библиотека определения скорости кадров решает эти проблемы с помощью Android Choreographer API, чтобы синхронизировать игру с подсистемой отображения. Это достигается за счет использования расширения метки времени представления в API OpenGL и Vulkan, которое гарантирует, что кадры представлены в правильное время. Он также использует ограждения синхронизации, чтобы предотвратить заполнение буфера. Также поддерживается несколько частот обновления, что позволяет разработчикам ориентироваться на разные типы устройств, включая дисплеи с частотой 90 Гц и 120 Гц, а также параметры настройки. Время представления кадра автоматически настраивается с учетом аппаратного обеспечения устройства.


Как использовать библиотеку кадровой синхронизации Android Game SDK

Если в вашей игре используется Vulkan на OpenGL, вы сможете использовать эту библиотеку. Для этого сначала вам нужно скачать Android Game SDK здесь.

Чтобы увидеть, как это работает, вы также можете скачать здесь образец Bouncy Ball для тестирования с OpenGL. Вы можете найти инструкции для Vulkan здесь. Откройте проект, затем запустите приложение, чтобы убедиться, что оно работает.

Затем свяжите проект с библиотекой. Для статических библиотек добавьте gamesdk / include в пути включения компилятора и swappy / swappyGL.h для интеграции с OpenGL ES. В большинстве случаев заголовочный файл будет содержать все необходимые функции.

Наконец, добавьте следующий путь к вашим путям библиотеки компоновщика:

gamesdk/libs/

Конечно, вы замените жирный текст на соответствующую версию процессора / NDK и т.д.

Инициализируйте экземпляр Android Frame Pacing, используя:

void SwappyGL_init(JNIEnv *env, jobject jactivity)

И уничтожьте указанный экземпляр с помощью:

void SwappyGL_destroy()

Теперь следующие функции позволят вам настроить интервалы обмена и периоды обновления:

void SwappyGL_setSwapIntervalNS(uint64_t swap_ns)

Вызывайте их сразу после инициализации SwappyGL_init(), которая должна быть как можно ближе к моменту запуска вашего движка. Передайте продолжительность кадра в SwappyGL_setSwapIntervalNS (), используя константы SWAPPY_SWAP_60FPS, SWAPPY_SWAP_30FPS или SWAPPY_SWAP_20FPS (где это необходимо).

Теперь выполните замену кадров с помощью bool SwappyGL_swap (отображение EGLDisplay, поверхность EGLSurface). Это обертывает метод eglSwapBuffers (), используемый Open GL ES, поэтому вам следует заменить все экземпляры новой версией.

Вы можете проверить, включена ли регулировка частоты кадров в любой момент, используя bool SwappyGL_isEnabled ().

Для получения более подробных инструкций по использованию библиотеки определения скорости кадров посетите ее официальную страницу руководства для разработчиков Android.

Android Game SDK: что это такое и как использовать в своих приложениях

Использование Android Game SDK в Unity

Библиотека времени размещения кадров также включена в Unity версии 2019.2 и выше. Просто установите флажок Оптимизированная частота кадров в настройках Android, и вы автоматически включите более плавную частоту кадров для своих игр.

И снова Unity значительно упрощает жизнь разработчикам игр!


Смотреть вперед

Лично я считаю, что пора проявить любовь к разработчикам игр в Google, поэтому я считаю это очень положительным моментом. Сама библиотека Frame Pacing также, вероятно, будет долгожданным дополнением, особенно для более требовательных игр, которые хотят предложить плавно-плавную частоту кадров. Однако это небольшое начало, поэтому я готов скрестить пальцы за несколько более широко полезных библиотек, которые скоро дебютируют с Android Game SDK.

Источник записи: https://www.androidauthority.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее