Реализация AR-игровой механики в мобильном приложении

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

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

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

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

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

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

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

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

  • 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-игровой механики в мобильном приложении

AR-игры — не просто 3D-объекты на экране. Это физика, взаимодействие с реальным миром, управление жизненным циклом сцены и работа в условиях, когда пользователь двигается, перекрывает камеру рукой, и ARKit теряет трекинг в самый неподходящий момент.

Любая механика, которая выглядит просто в 2D или 3D-игре, в AR требует переосмысления.

Физика в AR: RealityKit vs SceneKit vs собственная

RealityKit — первый выбор для новых проектов. PhysicsBodyComponent + CollisionComponent дают нативную физику через ARKit's scene understanding:

var physicsBody = PhysicsBodyComponent(massProperties: .default, material: nil, mode: .dynamic)
physicsBody.isAffectedByGravity = true
entity.components[PhysicsBodyComponent.self] = physicsBody

var collision = CollisionComponent(shapes: [.generateBox(size: entity.visualBounds(relativeTo: nil).extents)])
entity.components[CollisionComponent.self] = collision

С включённым arView.environment.sceneUnderstanding.options = [.physics] AR-объекты корректно взаимодействуют с реальными поверхностями. Мяч катится по реальному столу, коробка стоит на реальной полке.

Проблема RealityKit — ограниченный контроль. Нет доступа к отдельным шагам физического движка, нет кастомных force generators. Для простых механик — достаточно. Для сложной игровой физики (ragdoll, fluid simulation, rope physics) — нужен SceneKit + PhysicsWorld или Unity с AR Foundation.

Управление в AR: жесты vs контроллер

Tap для размещения, pinch для масштаба, rotation — стандарт. Но в AR жесты конкурируют с движением камеры. Пользователь хочет повернуть объект — ARKit интерпретирует как трекинг руки.

Решение через UIGestureRecognizer с shouldRequireFailure(of:): tap распознаётся только если swipe не начался. Для rotation — UIPanGestureRecognizer с минимальным смещением в 20 поинтов перед активацией, чтобы случайное движение камеры не триггерило вращение.

Отдельная механика — «прицеливание» через центр экрана вместо тапа. В шутерах и стратегиях удобнее: raycast из arView.center каждый кадр, объект под прицелом подсвечивается, действие — по кнопке. Реализуется через ARView.raycast(from:allowing:alignment:) в CADisplayLink callback.

Самые частые проблемы AR-игровой механики

Потеря трекинга во время геймплея. ARKit переходит в .limited tracking state — объекты «плывут». Для AR-игр это катастрофа: враг телепортируется на 30 см, мяч проходит сквозь стену. Стратегия: при .limited «замораживаем» физику, показываем overlay «Наведите камеру на поверхность», возобновляем после .normal. Не прерываем игровой цикл — только паузируем физику.

AR-объекты за пределами видимости. Игрок поворачивается, AR-враг за спиной продолжает двигаться и атаковать. Нужна frustum culling не для рендеринга (ARKit делает это сам), а для игровой логики: AI врагов вне viewport может работать упрощённо или паузироваться.

Spawning на неровных поверхностях. Raycast возвращает нормаль поверхности через ARRaycastResult.worldTransform — четвёртый столбец матрицы даёт точку, X/Y/Z — ориентацию. Если поверхность наклонена под 30°, спавненный объект наклоняется вместе с ней. Для игр с «плоскими» объектами (жетоны, фишки) фиксируем вертикаль: берём только Y из нормали, строим transform с up = (0,1,0).

Кейс из практики

Мобильная AR-стратегия: башни, враги, реальный стол как карта. 6 типов юнитов, pathfinding по меш-поверхности. Главная проблема: ARMeshAnchor обновляется асинхронно — пока mesh перестраивается, pathfinding-граф устаревает. Решение: граф навигации обновлялся каждые 3 секунды на background thread через GCD, а юниты использовали закешированный граф. Юнит в процессе движения проверял коллизию с текущим мешем через raycast — так ловили ситуации «меш изменился, юнит идёт сквозь стену».

FPS держался на 60 на iPhone 13. На iPhone 11 проседал до 45 при 6+ юнитах. Решение: LOD для удалённых юнитов (упрощённые меши), отключение теней за пределами 0.5 метра.

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

  • Физика AR-объектов с взаимодействием с реальными поверхностями (RealityKit / SceneKit)
  • Система управления: жесты, прицеливание, UI-кнопки
  • Игровой цикл с обработкой потери ARKit трекинга
  • AI и pathfinding по AR-поверхностям
  • LOD-оптимизация для поддержки устройств от iPhone 11
  • Тестирование в условиях реального освещения

Сроки

Механика Сроки
Простые AR-мини-игры (tap, shoot) 2–4 недели
Стратегия / tower defense с AI 8–14 недель
Полноценный AR-шутер с сетевой игрой 16–24 недели

Стоимость рассчитывается после детального обсуждения механик.