Разработка
Как мы сделали SPACE INVADERS: World Defense
Мы с удовольствием покажем вам, как разрабатывалась игра, как мы использовали наши новейшие функции и инструменты для создания первого в своем роде процедурного, глобального AR-геймплея.
Дерек Брайди, инженер по связям с разработчиками, ARCore, и Брэдфорд Ли, менеджер по маркетингу продуктов, дополненная реальность:
В честь 45-летия игры SPACE INVADERS мы совместно с TAITO, японским разработчиком оригинальной аркадной игры, и компанией UNIT9 выпустили SPACE INVADERS: World Defense — захватывающую игру, в которой используются самые передовые AR-технологии, основанные на определении местоположения. Игроки по всему миру могут выйти на улицу и исследовать свои районы, защищать Землю от виртуальных космических захватчиков, которые появляются из близлежащих строений, и зарабатывать очки, уничтожая их, — и все это с помощью дополненной реальности.
Игра работает на базе наших новейших технологий ARCore — Geospatial API, Streetscape Geometry API и Geospatial Creator. Мы с удовольствием покажем вам, как разрабатывалась игра, как мы использовали наши новейшие функции и инструменты для создания первого в своем роде процедурного, глобального AR-геймплея.
Geospatial API: превратите мир в игровую площадку
Geospatial API позволяет удаленно прикреплять контент к любому участку, нанесенному на карту Google Street View, и создавать более богатые и насыщенные впечатления, связанные с реальными локациями в глобальном масштабе. SPACE INVADERS: World Defense доступна в более чем 100 странах мира в районах с высоким покрытием службы визуального позиционирования (VPS) в Street View, что позволяет адаптировать игровой процесс как к оживленной городской среде, так и к небольшим городам и деревням.
Для игроков, проживающих в районах без покрытия VPS, мы недавно обновили игру, добавив в нее новый режим Indoor Mode, который позволяет защищать Землю от космических захватчиков в любых условиях — как в помещении, так и на улице.
Новый Indoor Mode в игре Space Invaders позволяет перенести захватывающий игровой процесс в любое закрытое здание.
Создание начального пользовательского потока
ARCore Geospatial API использует изображения с камеры устройства пользователя для поиска характерных точек и сравнивает их с изображениями из Google Street View для точного позиционирования устройства в реальном пространстве.
Geospatial API основан на VPS с десятками миллиардов изображений в Street View, что позволяет разработчикам удаленно создавать привязанные к миру впечатления в более чем 100 странах.
Для этого пользователю необходимо взять в руки телефон и панорамировать местность таким образом, чтобы собрать достаточно данных для точного определения местоположения пользователя. Для этого мы применили хитроумную технику, чтобы заставить пользователей сканировать местность, требуя от них отслеживать космический корабль в поле зрения камеры.
Чтобы начать игру, проследите за космическим кораблем, чтобы просканировать окрестности.
Используя этот пользовательский поток, мы постоянно проверяем, достаточно ли данных собрал геопространственный API для обеспечения высокого качества работы:
if (earthManager.EarthTrackingState == TrackingState.Tracking) { var yawAcc = earthManager.CameraGeospatialPose.OrientationYawAccuracy; var horiAcc = earthManager.CameraGeospatialPose.HorizontalAccuracy; bool yawIsAccurate = yawAcc <= 5; bool horizontalIsAccurate = horiAcc <= 10; return yawIsAccurate && horizontalIsAccurate; }
Преобразование окружающей среды в игровую площадку
После сканирования окрестностей игра использует сетчатые данные из Streetscape Geometry API, чтобы алгоритмически сделать игру в разных местах уникальной. Каждое место в реальном мире имеет свой рельеф и планировку города, что по-своему влияет на игровой процесс.
Геймплей меняется в зависимости от местоположения — от городов в Чехии (слева) до Нью-Йорка (справа).
В игре космические захватчики могут появляться из зданий, поэтому мы создали тестовые примеры с использованием геометрии зданий, полученных в разных частях света. Это позволило обеспечить оптимальную работу игры в различных условиях — от местных деревень до шумных городов.
Визуализация того, как алгоритм размещает порталы в реальном мире.
Вход в измерение Захватчиков
В результате проведенных исследований мы выяснили, что пользователям может быть утомительно держать руку вверх в течение длительного времени при работе с дополненной реальностью. Это знание повлияло на разработку игрового процесса — мы создали измерение Захватчиков (Invader’s), чтобы дать игрокам возможность расслабить руку с телефоном и повысить комфорт пользователя.
Наш любимый «вау»-момент, который действительно демонстрирует возможности Geospatial API, — это переход между реальным AR и виртуально сгенерированным 3D-измерением.
Игровой переход от реального мира AR к 3D-измерению.
Этот эффект достигается за счет смешивания изображения с камеры с шейдером виртуального окружения, который рендерит здания и местность в ярко выраженном wireframe стиле.
В редакторе Unity Измерение Захватчиков появляется вокруг игрока, обеспечивая плавный переход между двумя режимами.
После того как игрок попадает в измерение Захватчиков, его космический корабль летит по алгоритмически сгенерированной траектории через его окрестности. Для этого создается пространственное изображение с камеры, расположенной сверху. На этом изображении красные каналы представляют собой здания, а синий — пространство, которое потенциально может быть использовано для траектории полета. Затем на этом изображении создается сетка с точками, по которым должна проходить траектория, и с помощью A* алгоритма поиска находится траектория, проходящая по всем точкам.
Наконец, сгенерированная A-Star траектория полета подвергается постобработке для сглаживания возможных флуктуаций, резких поворотов и столкновений.
Для сглаживания траектории движения космического корабля флуктуации устраняются путем дискретизации траектории через заданный интервал узлов. Затем, анализируя углы вдоль траектории, мы определяем, есть ли на ней резкие повороты. Если крутой поворот присутствует, мы вводим две дополнительные точки для его скругления. Наконец, мы проверяем, не столкнется ли этот сглаженный путь с какими-либо препятствиями, и в случае их обнаружения настраиваем его на облет.
Визуализация карты глубины и сгенерированного образца траектории в измерении захватчиков.
Создание глобального игрового опыта
Ключевым моментом при создании игры стало то, что сложность контекстной генерации требует проведения тестирования по всему миру. С помощью Unity мы привнесли в тестовые примеры множество сред, что позволило нам быстро итерировать и проверять изменения в алгоритмах. Это дало нам уверенность в развертывании игры в глобальном масштабе.
Визуализация SPACE INVADERS с помощью Geospatial Creator
Мы использовали Geospatial Creator на базе ARCore и фотореалистичные 3D-плитки из Google Maps Platform, чтобы проверить, как виртуальный контент, такой, как Space Invaders, будет выглядеть рядом с конкретными достопримечательностями Токио в Unity.
С помощью фотореалистичных 3D-плиток мы смогли визуализировать Invaders в определенных местах, включая Токийскую башню в Японии.
Будущие обновления и релизы
С момента запуска игры мы прислушивались к отзывам наших игроков и активно обновляли и улучшали игровой процесс.
- Мы добавили новый режим игры — Indoor Mode, который позволит всем игрокам, не имеющим VPS, или тем, кто не хочет использовать AR-режим, испытать игру.
- Чтобы стимулировать пользователей играть в AR-режиме, баллы были перебалансированы, чтобы наградить игроков, играющих на улице, больше, чем тех, кто играет в помещении.
Загрузите игру на Android или iOS сегодня и вступайте в ряды элитных защитников Земли, чтобы соревноваться в своем районе за самый высокий балл. Чтобы узнать о последних обновлениях игры, следите за нами в Twitter, чтобы узнать, как мы улучшаем игру. Кроме того, посетите наши сайты ARCore и Geospatial Creator, чтобы узнать, как начать работу с AR-технологией Google.
-
Интегрированные среды разработки2 недели назад
Лучшая работа с Android Studio: 5 советов
-
Новости4 недели назад
Видео и подкасты о мобильной разработке 2024.43
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2024.44
-
Исследования2 недели назад
Поможет ли новая архитектура React Native отобрать лидерство у Flutter в кроссплатформенной разработке?