Создание моментальных игр на Unity в Google Play Instant
Привет! Перевели статью от Google с пошаговой инструкцией создания Instant Game в Google Play для игр на Unity.
Google анонсировал сервис Google Play Instant в марте 2018-го; с тех пор гейм-девелоперы могут создавать игры с мгновенным погружением. Существует несколько способов привлечения игроков в мгновенные игры: от кнопки TRY NOW («Попробуйте сейчас!») в Google Play до обычной ссылки, которую могут расшарить друг другу пользователи. Благодаря этому разработчики могут продемонстрировать свою игру и привлечь новых пользователей. В этой статье рассказывается о том, как создать билд готовой к выпуску мгновенной игры на Unity с нуля, а также преимущества мгновенных игр. Продолжение под катом.
При помощи сервиса Google Play Instant вы можете вывести свои игры на новый уровень:
1. Повысить возможности нахождения (discoverability)
Благодаря Google Play Instant игрокам будет легче найти и попробовать вашу игру. Пользователи могут запустить вашу игру из Google Play Store одним кликом — рядом с кнопкой загрузки появится кнопка TRY NOW, также с мобильного сайта можно перейти на мгновенную игру, просто нажав на веб-баннер.
И это еще не все. Пользователи могут попробовать вашу игру по расшаренной ссылке через Google Search, социальные сети, мессенджеры, электронную почту и другие платформы.
2. Подвести к установке
Так как игрокам не нужно устанавливать игру на устройство, они с большим энтузиазмом согласятся ее попробовать. Мгновенные игры не требуют времени на установку и не занимают память на устройстве юзера. Они дают пользователю шанс увидеть лучшее, что есть в игре, а затем установить полную версию без потери прогресса.
3. Улучшить удержание (retention)
Когда вы даете пользователю шанс попробовать вашу игру, они убеждаются в том, что она стоит того, чтобы ее установить. Также уменьшается количество пользователей, которые удаляют игру сразу после установки. Пользователи устанавливают игру осознанно и наслаждаются ей, что повышает количество игроков, которые ее установили.
Гейм-девелоперы уже оценили преимущества мгновенных игр в сравнении с устанавливаемыми играми (кейсы тут на английском):
Это еще только начало! Здесь можно посмотреть другие успешные кейсы использования Google Play Instant.
Как безболезненно интегрировать Google Play Instant с игрой на Unity?
Вы можете собрать мгновенную игру и разместить ее на внутренней платформе для тестирования за несколько часов. Вы сможете протестировать свою игру и тут же ее показать (если она не превышает лимит 13,5 Мб для игр на Unity). Вы увидите кнопку TRY NOW в Play Store. После того, как игра размещена в тестовом окружении, нужно сфокусироваться на следующем:
В зависимости от сложности игры и деталей имплементации зависит время, которое вы потратите на выполнение этих шагов.
Что дальше?
Создайте мгновенную игру за 5 шагов.
Шаг 1: Создаем рабочую среду
Перед тем, как приступить к созданию мгновенной игры, пробегитесь по чек-листу, дабы убедиться в том, что у вас есть все, что требуется.
- Unity версии 5.6 или новее (мы не рекомендуем использовать сборку старее 2017.4)
- Плагин на Unity Google Play Instant (asset store) (source)
- Устройство с Android (физическое или виртуальное) с версией не старее Android 5.0 (Lollipop), работающее в режиме разработчика и с включенной отладкой USB
- Доступ к исходному коду APK для сборки версий отладки (debug) и релизной версии
- Установленное окружение для тестирования на Google Play Console
- Учетная запись в Unity Development Beta (обязательно для продакшна)
Шаг 2: Собираем и тестируем мгновенную игру
Теперь вы конвертируете существующую игру в мгновенную игру. Не беспокойтесь пока об уменьшении размера или сборке билда для мгновенной игры — эта инструкция даст вам возможность понять, как выглядит весь процесс.
1. Выберите PlayInstant → Build Settings
2. В выпадающем меню смените Android Build Type на Instant
- Пока вы не настроите ссылку на цифровой ассет (Digital Asset Link), не заполняйте строку Instant Apps URL
- Если нужно, вы можете указать другое окружение в строке Override Scene
- Если вы используете цифровые ассеты, выберите соответствующий манифест в поле AssetBundle Manifest
- Нажмите Save
3. Выберите PlayInstant → Player Settings. В настройках будет всплывающее окно:
- Нажмите на кнопку Update рядом с пунктами списка Required changes, чтобы сохранить настройки перед тем, как запустить мгновенное приложение
- Мы рекомендуем обновить настройки согласно Recommended changes (нацелено в основном на снижение размера)
- Закройте всплывающее окно
4. После настройки выберите PlayInstant → Build and Run, чтобы запустить мгновенное приложение на подключенном устройстве.
Шаг 3: Загружаем во внутреннее окружение для тестирования
Последний шаг с созданной мгновенной игрой — возьмите билд и загрузите его во внутреннюю среду для тестирования Play Store (в ней может находиться одновременно до 100 тестирующих). Чтобы загрузить игру на внутреннюю платформу для тестирования, не обязательно соблюдать лимит в 13,5 Мб.
- Выберите PlayInstant → Build for Play Console
- Зайдите в Google Play Console, убедитесь, что выбрано нужное приложение, откройте вкладку Android Instant Apps.
- Выберите Instant app internal test и следуйте инструкциям на этой странице, чтобы загрузить файл, который вы создали в процессе выполнения 1-го шага. Больше информации в этом гайде по релизу мгновенного приложения: releasing an instant app.
Управление релизом мгновенного приложения через Google Play Console
Примечание: убедитесь, что вы должным образом настроили доступ для списка внутренних тестировщиков приложения. Изменение настроек здесь: App releases → Instant app internal test → Manage Testers.
Шаг 4: Уменьшаем до лимитных 13,5 Мб
После ознакомления со всеми техническими тонкостями тестирования билда мгновенной игры нужно решить, как будет выглядеть игра и приступить к уменьшению размера. Не переживайте, если игра много весит — разработчики со сборками размером более 350 Мб могут безболезненно запускать мгновенные игры. Вот несколько техник уменьшения объема сборки:
Оптимизация настроек
Как мы видели раньше в: PlayInstant → Player Settings, это меню предлагает некоторое количество рекомендаций для снижения размера сборки. Перечисленные изменения уменьшают размер игры:
- Монобилды должны поддерживать сокращение неиспользуемого кода
- Графический API только OpenGLES2
- Билды IL2CPP должны поддерживать сокращение неиспользуемого кода
Упрощение игрового контента
Не пытайтесь впихнуть всю игру в мгновенное приложение. Мгновенная игра должна показать геймплей — продемонстрируйте туториал или несколько особенных уровней. Уберите ненужные текстуры, модельки, изображение и аудиосопровождение — словом, все то, не является основой геймплея.
Наконец, чтобы уменьшить размер, сожмите цифровые объекты:
- Разрешение текстур
- Количество полигонов в 3D-моделях
- Качество аудиодорожек
О лучших практиках UX в мгновенных приложениях читаем здесь: instant game UX best practices.
Использование ассетов (Asset Bundles)
Наборы ассетов (Asset Bundles) помогут вам загружать ассеты прямо в процессе исполнения игры. Если ассеты не будут загружены до запуска, они не будут учитываться в лимите 13,5 Мб. Это самый распространенный способ для разработчиков игр снизить размер мгновенной игры. Вам нужно три компонента:
- Набор ассетов, созданный из окружения вашей мгновенной игры.
- Загрузочный экран, который покажет пользователю информацию о загрузке ассетов в фоновом режиме.
- Веб-сервер или CDN в качестве хоста ассетов.
Мы расскажем вам о самом быстром и эффективном способе использования ассетов через инструмент Quick Deploy, включенный в плагин для Unity в Google Play Instant. Этот инструмент позволит создать набор ассетов и рабочий экран, во время которого будут подгружаться ваши ассеты. Для третьего шага просто разместите ассеты на любом хосте, поддерживающем HTTPS и публичные файлы — например, на собственном сервере, в Google Cloud Storage или на стороннем CDN.
Примечание: вы можете использовать столько наборов ассетов, сколько захотите, но каждый ассет не должен превышать размер 15 Мб.
- Выберите PlayInstant → Quick Deploy
- Откройте вкладку Bundle Creation, выберите окружение для динамического показа. После этого выберите Build AssetBundle внизу экрана и загрузите файл на ваш веб-сервер или CDN.
- Откройте вкладку Loading Screen и введите URL для вашего набора ассетов, а также фоновые текстуры, которые вы хотите использовать для загрузочного экрана (хватит и одной по умолчанию). После завершения нажмите Create Loading Scene.
У вас должен получиться загрузочный экран, который будет вызывать ваш набор ассетов. Можно поискать кастомный автогенерируемый скрипт загрузочного экрана для Unity, если хотите посмотреть, как он делается, или настроить его так, как удобно вам.
Шаг 5: Помогаем игроку перейти от мгновенной игре к установленной игре
Теперь нам нужно подумать, как пользователь будет переходить от мгновенной игры к полной. Если нужно, вы можете перенести данные через диалог, используя Cookie API (встроены в плагин Unity в Google Play Instant).
Обновление мгновенной игры до установленного приложения
Ваша игра должна предложить пользователю способ установки полной версии — всплывающая подсказка или кнопка (но только не во время игрового процесса!). Когда пользователь готов установить игру, плагин вызывает ShowInstallPromptmethod
и направляет пользователя в Google Play:
using GooglePlayInstant;
…
public void install() {
InstallLauncher.ShowInstallPrompt();
}
Сохранение данных при обновлении до устанавливаемой версии (опционально)
В некоторых случаях вам потребуется сохранить данные игрока и его прогресс во время мгновенной игры. Например:
- Когда игрок приобретает внутриигровые покупки или кастомизирует персонажа
- Если мгновенная игра похожа на игровой туториал (у игрока должна быть возможность пропустить обучение в установленной игре)
- Чтобы вознаградить игрока за то, что он установил игру из мгновенной версии
Можно использовать Cookie API, которые идут в плагине Google Play, этот инструмент позволит вам легко записать и прочитать строки с данными до и после установки, соответственно:
1. Вызовите CookieApi.SetInstantAppCookie
, чтобы сохранить строки с данными из мгновенной игры
using GooglePlayInstant;
…
public void StoreData(string data) {
CookieApi.SetInstantAppCookie(data);
}
2. Вызовите CookieApi.GetInstantAppCookie
в установленной игре, чтобы вернуть строки с данными
using GooglePlayInstant;
…
var data = CookieApi.GetInstantAppCookie(data);
Эти шаги помогут вам освоить процесс создания игры через Google Play Instant. По ссылкам вы можете прочитать больше документов, изучить часто задаваемые вопросы или получить информацию о мгновенных играх.