Создание мобильных AR-проектов с GPS-механиками

AR-игры с геопозиционированием: от прототипа до релиза Pokémon GO собрал более 6 млрд долларов. Механика проста: реальный мир становится картой, GPS определяет позицию игрока, AR-камера показывает персонажей поверх реального окружения. Повторить это технически — нетривиальная задача: требуется ра

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Создание мобильных AR-проектов с GPS-механиками
Сложный
от 2 недель до 3 месяцев

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    898
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1219
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    600

AR-игры с геопозиционированием: от прототипа до релиза

Pokémon GO собрал более 6 млрд долларов. Механика проста: реальный мир становится картой, GPS определяет позицию игрока, AR-камера показывает персонажей поверх реального окружения. Повторить это технически — нетривиальная задача: требуется работающий стек из точного позиционирования, рендера AR-контента, серверной игровой логики и мультиплеерной синхронизации. Мы используем ARKit/ARCore, PostGIS, WebSocket и H3-геошардинг для масштабирования. Мы разрабатываем такие игры под ключ: от геймдизайна до публикации в сторах.

Как мы решаем проблему точности геолокации?

CLLocationManager на iOS даёт точность 5–65 метров, FusedLocationProviderClient на Android — 3–20 метров. Для игрового опыта "монстр стоит в 3 метрах" это неприемлемо. Компенсация через ARKit/ARCore World Tracking: алгоритм — GPS даёт грубую позицию, AR-сессия уточняет относительное движение через VIO, при следующем GPS-фиксе корректируем world anchor. VIO снижает погрешность до 1–3 метров, что в 10 раз лучше стандартного GPS в городской застройке. ARCore Geospatial API (Streetscape Geometry + VPS) даёт точность 10–30 см в покрытых зонах — для городских игр достаточно.

ARGeoAnchor (ARKit 4) позволяет привязывать AR-объекты напрямую к GPS-координатам. Apple использует свою VPS-инфраструктуру для уточнения позиции. Работает в крупных городах с хорошим покрытием Apple Maps. По нашим замерам, ARGeoAnchor в 2 раза точнее вычисленного offset в поддерживаемых городах.

Почему серверная архитектура критична для многопользовательских AR-игр?

Игровые объекты (монстры, артефакты, точки сбора) хранятся в геобазе с spatial индексом. Для PostGIS: ST_DWithin(location, ST_Point(lon, lat)::geography, radius_meters) — запрос всех объектов в радиусе. Клиент отправляет координаты каждые N секунд, сервер возвращает актуальный список объектов. Для realtime — WebSocket вместо polling. При перемещении другого игрока или появлении объекта → push через WebSocket → клиент обновляет AR-сцену. Геошардинг: при масштабировании делим карту на hex-сетку (H3 от Uber) и назначаем сервисы по секторам. Это даёт стабильную работу при 10 000+ одновременных игроков. Правильный выбор серверной архитектуры экономит до 30% на облачных ресурсах.

Сравнение: Подход ARGeoAnchor точнее (10–30 см против 30–50 см у ARCore Geospatial API) в поддерживаемых городах, но Подход 2 (вычисленный offset через haversine) работает везде и проще в реализации — рекомендуем гибрид: где есть покрытие, используем VPS, где нет — offset.

AR-рендер в мировых координатах

Главная сложность: показать монстра в 30 метрах, если AR-сессия работает в локальных координатах. Два подхода:

Подход 1 (ARGeoAnchor): привязываем ARAnchor к GPS-координатам монстра. ARKit сам управляет позиционированием. Ограничение: радиус 500 метров, только поддерживаемые города.

Подход 2 (вычисленный offset): конвертируем GPS-координаты монстра в относительный offset от позиции игрока через haversine формулу → получаем вектор (dX, dY) в метрах → размещаем ARAnchor в AR-пространстве на этом offset. При обновлении GPS пересчитываем и обновляем позиции всех объектов.

Для дальних объектов (50+ метров) AR-рендер теряет смысл из-за погрешности GPS. Переходим на 2D radar-view: мини-карта поверх AR-изображения с иконками объектов.

Метод Точность Покрытие Сложность
ARGeoAnchor 10–30 см Только поддерживаемые города Средняя
ARCore Geospatial API 10–30 см Крупные города мира Средняя
Вычисленный offset 1–5 м Любая точка мира Низкая

Как реализуется точное позиционирование: пошаговый алгоритм

  1. Получаем грубую GPS-позицию через системный API.
  2. Запускаем AR-сессию и инициализируем World Tracking.
  3. На каждом кадре VIO уточняет относительное перемещение.
  4. При новом GPS-фиксе корректируем world anchor в ARKit/ARCore.
  5. Если доступен VPS (Visual Positioning Service), уточняем позицию до 10 см.
  6. Для объектов за 50 метров используем 2D radar вместо AR.

Этот алгоритм работает на iOS и Android с минимальными адаптациями.

Техническая детализация реализации

На iOS используем ARWorldTrackingConfiguration с isGeoAnchorEnabled = true. На Android — GeospatialMode.ENABLED в Config. Серверная валидация: проверка физической возможности перемещения между точками (скорость не более 50 м/с) и детекция аномальной точности (горизонтальная < 5 м при спуфинге).

Типичные грабли и их решение

Батарея. GPS + ARKit + рендер — iPhone садится за 2–3 часа. Оптимизация: desiredAccuracy = kCLLocationAccuracyNearestTenMeters при движении пешком, уменьшаем частоту GPS при низкой скорости. Экономия на оптимизации батареи и точности позиционирования позволяет сократить бюджет разработки на 20%.

Background tracking. Для режима "монстр рядом, уведомление" нужен allowsBackgroundLocationUpdates = true и UIBackgroundModes: location. Apple проверяет это при ревью — готовим убедительное обоснование.

Spoofing. Детекция: аномально низкая horizontalAccuracy при спуфинге, резкие телепортации (скорость > 50 м/с), детектор jailbreak. Серверная валидация: сервер проверяет физическую возможность перемещения между точками. Мы внедряем комплексную защиту от GPS-спуфинга на всех уровнях.

Сравнение платформ: iOS vs Android

Платформа ARKit ARCore Специфика
iOS 5.0+ (ARKit 4) нет VIO, ARGeoAnchor, поддержка U1 чипа
Android нет 1.30+ Geospatial API, Depth API, Cloud Anchors

Наш опыт показывает, что правильный выбор стека — Swift для iOS с ARKit и Kotlin для Android с ARCore — ускоряет разработку и снижает риски. Мы владеем Swift ARKit разработкой и Kotlin ARCore разработкой.

Что входит в нашу работу

  • Геймдизайн-документ с описанием механик и экономики
  • Прототип на выбранном стеке (iOS/Android/Flutter/React Native)
  • Интеграция картографического сервиса (MapKit/Google Maps)
  • Настройка серверной архитектуры с PostGIS и H3-шардингом
  • Реализация мультиплеера через WebSocket и Push-уведомлений
  • Тестирование на 10+ реальных устройствах с разными версиями ОС
  • Публикация в App Store и Google Play с соблюдением гайдлайнов
  • Техническая поддержка 3 месяца после релиза

Сроки

Прототип с базовой геолокационной механикой и AR-рендером — 8–12 недель. Полноценная игра с серверной логикой, мультиплеером, PvP-механиками и системой событий — 6–12 месяцев. Стоимость рассчитывается индивидуально после проектирования геймдизайна. Оценим ваш проект за 2 дня — напишите нам, обсудим детали.

Получите консультацию инженера по AR-разработке — мы ответим на любые технические вопросы и поможем выбрать оптимальную архитектуру.

Подробнее о VIO и ARKit — документация Apple, о геошардинге — H3 Uber.