Розробка AI супротивників мобільної гри

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

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Розробка AI супротивників мобільної гри
Складний
~3-5 днів
Часті запитання

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

Етапи розробки

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

  • 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

Розробка ШІ-противників у мобільних грах

ШІ-противник у мобільній грі балансує між «достатньо складно, щоб залишатися цікавим» та «достатньо передбачувано, щоб гравець почував прогрес». Противник, який завжди перемагає, вбиває мотивацію за п'ять хвилин. Той, який завжди програває — за десять.

Ієрархічні державні машини проти дерев поведінки

Для більшості мобільних ігор вибір зводиться до двох архітектур.

Finite State Machines (FSM) прості, передбачувані та легко налагоджуються. Ворог у стані Patrol → бачить гравця → переходить до Chase → втрачає видимість → входить Search → повертається до Patrol. Реалізується за кілька годин. Проблема: як логіка ростиме складнішою, граф станів вибухає, а умови переходу починають перекриватися.

Behaviour Trees (BT) — це ієрархічні структури, побудовані з вузлів Selector, Sequence, Condition та Action. Масштабуються краще, їх легше читати дизайнерам та вони підтримують переривання. Більшість AAA-ігор використовують BTs, і мобільні ігри з нетривіальними боями також повинні.

Unity не має вбудованої підтримки BT, але існують відкриті бібліотеки—Fluid Behaviour Tree та NodeCanvas (платна, але повна). Godot має плагін Beehave. Мінімальна реалізація BT:

// Unity: спрощений вузол Sequence
public class SequenceNode : BehaviourNode {
    private List<BehaviourNode> children;
    private int currentIndex = 0;

    public override NodeStatus Tick(AIContext context) {
        while (currentIndex < children.Count) {
            var status = children[currentIndex].Tick(context);
            if (status == NodeStatus.Running) return NodeStatus.Running;
            if (status == NodeStatus.Failure) {
                currentIndex = 0;
                return NodeStatus.Failure;
            }
            currentIndex++;
        }
        currentIndex = 0;
        return NodeStatus.Success;
    }
}

Сприйняття: як ШІ бачить світ

Ключове питання не «що робить противник», а «що він знає про світ». Без належної системи сприйняття дерево BT працює з телепатією: вороги знають положення гравця крізь стіни та реагують миттєво.

Field of View — це конус видимості з кутом та дальністю:

bool CanSeePlayer(Transform enemy, Transform player, float viewAngle, float viewDistance) {
    Vector3 dirToPlayer = (player.position - enemy.position).normalized;

    if (Vector3.Angle(enemy.forward, dirToPlayer) > viewAngle / 2f)
        return false; // поза кутом огляду

    float dist = Vector3.Distance(enemy.position, player.position);
    if (dist > viewDistance) return false;

    // Raycast перевіряє наявність стін між ними
    return !Physics.Raycast(enemy.position, dirToPlayer, dist,
                             LayerMask.GetMask("Obstacles"));
}

Слух включає звукові події через чергу: кроки, постріли, падіння предметів. Кожна подія має радіус та затухання. Противник реагує на події в межах радіуса, навіть без видимості джерела.

Пам'ять зберігає останнє відоме положення гравця. Якщо втратити видимість, рухатися до цього положення (не поточного), потім перейти до Search.

Масштабування складності

Фіксована складність погана. Dynamic Difficulty Adjustment (DDA) адаптує поведінку до продуктивності гравця. Прості параметри налаштування:

Параметр Легко Середньо Складно
Час реакції противника 1.2 сек 0.6 сек 0.2 сек
Поле огляду 60° 90° 120°
Точність стрільби 40% 70% 90%
Час патруля 8 сек 5 сек 3 сек

Завантажуйте ці параметри з конфігу, щоб дизайнери могли налаштовувати без перекомпіляції. DDA автоматично зміщує параметри на основі win rate за останні N сесій.

Продуктивність мобільних пристроїв

ШІ-тики не повинні виконуватися кожен кадр. З 20 ворогами на екрані:

  • BT Tick: кожні 100–200ms замість кожного кадру
  • Raycast для видимості: використовуйте LOD — далекі враги перевіряють рідше
  • Pathfinding: тільки при зміні цілі, не кожний тик

Unity's NavMesh працює добре на мобільних пристроях, але перерахування шляхів для всіх агентів в одному кадрі викликає спайки. Розподіліть перерахування шляху через CoroutineManager або Job System.

Огляд процесу

Проаналізуйте ігрові механіки та вимоги поведінки противників: сценарії та рівні складності.

Спроектуйте ШІ-архітектуру: виберіть FSM / BT, систему сприйняття, пам'ять.

Реалізуйте базову поведінку, інтегруйте з системою навігації (NavMesh).

Налаштуйте параметри складності, реалізуйте DDA.

Тестуйте та балансуйте: вимірюйте смерті гравця, час до перемоги, win rate на рівні.

Оцінки часових рамок

Базовий FSM-противник із патруля та переслідуванням: 3–5 днів. Повна система з BT, сприйняттям, DDA та кількома типами противників: 3–6 тижнів залежно від складності поведінки.