Разработка AR-игры с геолокацией (Location-Based AR)

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Разработка AR-игры с геолокацией (Location-Based AR)
Сложный
от 2 недель до 3 месяцев
Часто задаваемые вопросы

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

Этапы разработки

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

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Разработка AR-игры с геолокацией (Location-Based AR)

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

Позиционирование: точность GPS и её ограничения

CLLocationManager на iOS дает точность 5–65 метров в зависимости от условий. FusedLocationProviderClient (Google Play Services) на Android — 3–20 метров. Для игрового опыта «монстр стоит в 3 метрах от меня» это неприемлемо.

Компенсация через ARKit/ARCore World Tracking. Алгоритм: GPS даёт грубую позицию → AR-сессия уточняет относительное движение через VIO → при следующем GPS-фиксе корректируем world anchor. ARCore Geospatial API (Streetscape Geometry + VPS) даёт точность 10–30 см в покрытых зонах — для городских игр это достаточно.

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

Серверная архитектура location-based игры

Игровые объекты (монстры, артефакты, точки сбора) хранятся в геобазе данных с spatial индексом. Для PostGIS: ST_DWithin(location, ST_Point(lon, lat)::geography, radius_meters) — запрос всех объектов в радиусе. Клиент отправляет координаты каждые N секунд, сервер возвращает актуальный список объектов в видимой зоне.

Для realtime: WebSocket соединение вместо polling. При перемещении другого игрока или появлении нового объекта → push через WebSocket → клиент обновляет AR-сцену.

Геошардинг: при масштабировании делим карту на hex-сетку (H3 от Uber — хорошая библиотека) и назначаем сервисы по секторам.

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-изображения с иконками объектов.

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

Батарея. GPS + ARKit + рендер = iPhone садится за 2–3 часа. Оптимизация: CLLocationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters (не Best) при движении пешком, уменьшать частоту GPS-запросов при низкой скорости перемещения.

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

Spoofing. Jailbreak/root + GPS spoofing — классическая проблема. Детекция: CLLocation.horizontalAccuracy аномально низкая при spoofing, резкие телепортации (скорость > 50 м/с), JailbreakDetector библиотеки. Серверная валидация: сервер проверяет физическую возможность перемещения между точками.

Сроки

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