Мобільні симулятори: офлайн-прогресія, фізика, агенти

Мобільні симулятори: офлайн-прогресія, фізика, агенти Нам часто замовляють мобільні симулятори — від фермерських таймерних ігор до повноцінних фізичних симуляцій транспорту чи будівництва. Об'єднує їх одне: складні взаємопов'язані системи, які мають працювати узгоджено та забезпечувати «живе» від

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Мобільні симулятори: офлайн-прогресія, фізика, агенти
Складний
від 2 тижнів до 3 місяців

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

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1217
  • 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

Мобільні симулятори: офлайн-прогресія, фізика, агенти

Нам часто замовляють мобільні симулятори — від фермерських таймерних ігор до повноцінних фізичних симуляцій транспорту чи будівництва. Об'єднує їх одне: складні взаємопов'язані системи, які мають працювати узгоджено та забезпечувати «живе» відчуття світу навіть при закритому застосунку. Ми розробляємо такі проекти під ключ: від концепту до релізу в сторах.

Як забезпечити офлайн-прогресію без втрати даних?

Головна технічна особливість симуляторів — offline progression. Гравець повертається через 8 годин, і за цей час мали відбутися події: дозріли культури, виробилися ресурси, завершилися виробничі ланцюжки.

Наївний підхід — при відкритті гри запустити цикл з кроком deltaTime і порахувати все з моменту останнього збереження. Це працює для простих систем. При складних взаємозалежностях (ресурс A потрібен для виробництва B, B потрібен для C, і у A може закінчитися запас у середині періоду) — потрібна дискретна симуляція з фіксованим тіком.

Реалізація: зберігаємо lastTickTimestamp. При відкритті обчислюємо missedTicks = (now - lastTick) / tickInterval. Запускаємо симуляцію на missedTicks кроків з tickInterval (наприклад, 1 хвилина). Кожен тік — детермінований: застосовуємо виробництво, споживання, події. Обмеження: maxOfflineTicks (наприклад, 8 годин = 480 тіків), решта — втрачається або накопичується в overflow buffer.

Метод Складність Продуктивність Підходить для
Простий цикл на відкритті Низька Висока Прості лінійні процеси
Дискретна симуляція з тіками Середня Середня Взаємозалежні ланцюжки
Гібридний (тіки + тригери) Висока Низька Дуже складні системи з event-driven

Для ігор з ринковою економікою (ціни змінюються кожні 15 хвилин) використовуємо гібридний підхід: тіки для базового виробництва та окремі події для зовнішніх впливів. Це знижує навантаження на процесор на 30% порівняно з повною симуляцією.

Фізика в транспортних та будівельних симуляторах

Для фізичних симуляторів (автобус, кран, дорожнє будівництво) в Unity використовуємо Configurable Joint для складних зчленувань + Rigidbody.AddForceAtPosition для фізично коректного керування. Стандартні WheelCollider хороші для базової автомобільної фізики, але для нестандартних транспортних засобів їх limitations швидко проявляються.

Важливо: фізичні симулятори з великою кількістю Rigidbody (30+) на сцені вимагають налаштування Physics.simulationMode. Використання SimulationMode.Script (ручний виклик Physics.Simulate(fixedDeltaTime)) дає точний контроль над порядком кроків — критично коли фізика поєднується з ігровою логікою.

На Android фізика з Vulkan і ARMv8 — значно швидша через NEON SIMD оптимізації в PhysX (приріст продуктивності до 80%). Якщо таргет — low-end Android з OpenGL ES 3.0, обмежуй кількість активних rigidbody через Sleep Threshold та Rigidbody.IsSleeping().

Параметр Vulkan / ARMv8 OpenGL ES 3.0 / ARMv7
Швидкість фізики Висока (NEON SIMD) Середня (без NEON)
Макс. активних Rigidbody 60+ 30
Рекомендований simulationMode Automatic або Script Script з ручним керуванням

Чому агентна модель підходить для менеджмент-симуляторів?

Для симуляторів типу «тайкун» (ресторан, аеропорт, лікарня) — агентна модель. Кожен NPC — автономний агент з Behaviour Tree або Utility AI. Unity NavMesh Agent для переміщення, кастомна система задач для дій (взяти замовлення, принести, прибрати).

При великій кількості агентів (50+) переходимо на ECS-based agents через Unity DOTS: позиції та стани в NativeArray, шлях обчислюємо через Job System. Unity DOTS — офіційний пакет для роботи з ECS. NavMesh Agents на DOTS поки в preview, але для 2D ізометричних симуляторів своя тайлова навігація через A* Pathfinding Project (Aron Granberg) дає кращий результат — у 2-3 рази швидше за NavMesh.

Приклад: поведінка офіціанта в симуляторі ресторану Агент: офіціант. Behaviour Tree: - Прийняти замовлення (перейти до столу, отримати замовлення) - Доставити замовлення на кухню (перейти до кухні, передати замовлення) - Забрати готові страви (перейти до роздачі, взяти піднос) - Подати страви клієнтам (перейти до столу, віддати піднос) - Прибрати посуд (перейти до столу, забрати тарілки) Паралельно: якщо вільний — прийняти нове замовлення. Якщо клієнт пішов без оплати — викликати менеджера.

Як налаштувати агентів: покрокова інструкція

  1. Визначте типи агентів (офіціант, кухар, відвідувач).
  2. Створіть Behaviour Tree для кожного типу з Fallback/Sequence/Parallel.
  3. Налаштуйте NavMesh або тайлову навігацію.
  4. Додайте систему задач (команди) через чергу.
  5. Оптимізуйте кількість активних агентів: не більше 30 на low-end пристроях, до 100 на high-end.

Збереження складного стану

Симулятори з сотнями об'єктів та їх станами — це сотні кілобайт даних збереження. JsonUtility Unity не справляється зі складними графами об'єктів. Використовуємо Newtonsoft.Json (com.unity.nuget.newtonsoft-json) з кастомними конвертерами або MemoryPack для бінарної серіалізації (швидше в 5–10 разів для великих обсягів). Newtonsoft.Json — де-факто стандарт для .NET.

Автозбереження через UniTask.Delay на фоновому потоці — серіалізація в Task.Run, запис на диск у UniTask.SwitchToMainThread мінімальним способом. Креш під час запису не має пошкодити існуюче збереження — пишемо у тимчасовий файл, потім атомарно перейменовуємо.

Що входить у роботу

  • Концепт-документ з описом архітектури та метрик.
  • Прототип ключової механіки (офлайн-симуляція, фізика, агенти).
  • Повний код з коментарями та README.
  • Інструкція по збірці (build для iOS/Android).
  • Підтримка після релізу — баг-фіксинг, оптимізація, оновлення під нові версії ОС.

Терміни та вартість

Терміни розробки: від 4 місяців для простих симуляторів до 15 місяців для складних проектів з фізикою. Вартість розраховується індивідуально — зв'яжіться з нами, щоб ми оцінили ваш проект за 2 дні безкоштовно. Середня вартість проекту — від $15,000 до $50,000.

Ми займаємося мобільною розробкою більше 7 років, випустили 15 проектів в App Store та Google Play. Гарантуємо якість та супровід після релізу. Звертайтеся — обговоримо деталі вашого симулятора. Отримайте консультацію по вашому проекту прямо зараз.