Інтелект комп’ютера в стратегіях реального часу, Комп’ютерні ігри, Різне, статті

Рівень 1. Інстинкт самозбереження.

Назва цього, самого нижнього рівня умовно, але досить точно відображає його призначення. Він визначає, як повинен вести себе юніт в разі нападу на нього. Зазвичай, можливі дві лінії поведінки – відповісти на атаку або, в разі неможливості цього, постаратися уникнути нападу. В обох випадках можливе велика кількість нюансів.

Hаприклад, при відповіді на атаку перевіряється, не атакує чи вже воїн іншу мету і чи є необхідність переключатися на нову мету. Юніти, не вміють вести ближній бій (танки, катапульти, …) повинні постаратися попередньо відійти на необхідну для стрільби дистанцію. У більшості ігор воїн може постаратися покликати на допомогу найближчих сусідів, якщо вони самі ще не здогадалися цього зробити.

Відступ зазвичай необхідно для юнітів, не пристосованих до ведення війни (селян, будівельників, робітників). Тут потрібно вирішити, чи треба просто відбігти від ворога на безпечну відстань, або шукати порятунку в найближчому поселенні або загоні. Іноді в іграх, де присутні різні роди військ (піхота, авіація, флот) навіть бойовому юниту доводиться відступати, якщо він в силу конструктивних особливостей не призначений для всіх типів можливого бою (наприклад, танк повинен уникати винищувачів і т.п.).

Рівень 2. Сканування місцевості.

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

Глибина огляду зазвичай залежить від дальності стрільби юнітів, хоча для воїнів, керованих комп’ютером рекомендується робити її рівною максимальній дальності стрільби. В цьому випадку, далеко стріляючий катапульта або вертоліт не зможуть підібратися непоміченими до близько атакуючому мечоносців або піхотинцеві. Втім, цей момент в різних іграх реалізований по-різному.

Алгоритмів сканування досить багато – попарне порівняння координат юнітів, спіральний огляд місцевості, посекторний огляд, попереднє поділ місцевості на квадрати (хешування). Докладний огляд їх був представлений в ZX Format # 8 у статті “Епопея”.

Описані вище базові рівні інтелекту зазвичай реалізуються як для воїнів, керованих комп’ютером, так і для воїнів, керованих людиною. Хоча варіант для воїнів комп’ютера варто робити більш гнучким і передбачати якомога більше різних варіантів.

Рівень 3. Тактичний.

Тут визначаються базові дії юніта, цілком залежні від його умінь і властивостей. Тому з повним правом цього рівня можна дати іншу назву – професійний. Для кожного типу компьтерних героїв зазвичай розробляється власний тактичний (професійний) блок.
Hаиболее часто використовуються три типи таких блоків:
для юнітів, зайнятих розробкою та видобутком ресурсів;
для юнітів, що стоять на охороні;
для юнітів, що йдуть в атаку.

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

Блок правил для охорони наказує дії по захисту ввіреній території. Зазвичай він зводиться до наступного – “стій на місці і нічого не роби”. Дійсно, майже всі завдання з охорони вирішуються двома нижніми рівнями інтелекту. Єдине додаткове правило визначає спосіб повернення на місце після відбиття атаки.

Дії атакуючих юнітів, як правило, діляться на дві фази. Перша – “йди до точки збору”. Друга – “йди в атаку”. В цей блок можуть бути додані умови відступу (наприклад, від боягузтва, від поранень або якщо поряд немає своїх), якщо, знову ж, цим не займається стратегічний блок.

Крім описаних вище найбільш поширених склепінь правил, в будь-якій грі звичайно існує деяка кількість спеціальних тактичних правил для малопоширених типів юнітів:
для чарівників і магів (тут зазвичай визначаються пріоритети при виборі одного заклинання з багатьох і при виборі об’єкта застосування заклинання);
для патрулюють юнітів (в цілому схожі з охоронцями);
для транспортних кораблів (кого і як підібрати на борт, і кого і як десантувати. Природно, на борт беруться тільки атакуючі юніти, а не охоронці або працівники. Місце десантування визначається наступним рівнем комп’ютерного інтелекту – стратегічним);
для ремонтників (хоча в більшості ігор правила таких юнітів є підмножиною правил ресурсодобитчіков);
для головних героїв або плохішаев, якщо такі є на рівні (тут вже що вам фантазія підкаже), і так далі …

Рівень 4. Стратегічний.

Цей рівень фактично керує всіма юнітами комп’ютера. В ідеалі, комп’ютер повинен це робити не гірше гравця-людини. Від реалізації правил цього рівня залежить, наскільки розумною і цікавою буде ваша гра. На жаль, готових рецептів тут немає (інакше всі ігри були б розумними і цікавими :). Розглянемо, по крайней мере, що тут необхідно реалізувати.

По-перше, комп’ютер повинен управляти виробництвом воїнів для майбутніх атак. Крім того, якщо це передбачено грою, він повинен виробляти нових юнітів, які прийдуть на зміну загиблим охоронцям або загиблим працівникам.

По-друге, комп’ютер повинен займатися апгрейдами і дослідженнями.

По-третє, він повинен займатися організацією атак. Для цього він повинен спочатку вибрати місце попереднього збору (якщо, звичайно, його воїни не йдуть у бій відразу після того, як їх зробили). Потім, за закінчення якогось часу або, коли набереться необхідний за чисельністю (по силі) загін, комп’ютер повинен відправити його в бій. Попередньо необхідно вибрати об’єкт або місце мети. Тут же необхідно управляти транспортами (якщо такі є).

По-четверте, комп’ютер повинен стежити за станом своїх будівель і здоров’ям юнітів, щоб вчасно займатися ремонтом і лікуванням. Втім, ці функції можуть самостійно виконуватися на третьому рівні відповідними типами юнітів (лікарями, ремонтниками). При необхідності комп’ютер може вміти будувати нові будівлі – в замін зруйнованих або для нарощування своєї потужності.

Hе варто говорити, що всі перераховані дії (особливо організація атак) повинні виконуватися якомога різноманітнішим і нетривіальні, щоб гра була по-справжньому захоплюючою.

Зручно, що комп’ютер на цьому рівні має приймати дійсно тільки загальні, стратегічні рішення. Конкретні варіанти реалізації таких рішень юніти комп’ютера вибирають самостійно, керуючись трьома нижніми рівнями інтелекту. Фактично, комп’ютер тут просто вказує номер завдання для кожного юніта (плюс супутні параметри, наприклад, координати місця дії або об’єкта нападу) і не дбає про його подальше виконання.

Третій і четвертий рівні інтелекту зазвичай програмують тільки для комп’ютера. Проте, в нашому світі ледарів і розумових вирожденцев, мабуть, не так довго залишилося чекати, коли автори ігор почнуть реалізовувати ці рівні і для юнітів людини (в тій чи іншій мірі). Щоб грає не дуже напружував свою єдину сіру звивину :).

Чому я прийняв саме такий розподіл на рівні для AI комп’ютера? Дуже просто – практика створення ігор “Чорний Ворон I і II” показує, що саме в такому порядку найлегше розробляти і налагоджувати програми інтелекту. Послідовно реалізуючи перераховані рівні, ви отримуєте приблизно наступне:

Рівень 0 (без інтелекту). Юніти комп’ютера стоять на місці і не рухаються.
Рівень 1. Те ж, що і рівень 0. Юніти комп’ютера не реагують на ваші бойові одиниці, поки ті не завдадуть удар першими.
Рівень 2. Те ж, що й рівень 1. До того ж, юніти комп’ютера реагують на наближення ваших солдатів і намагаються їх атакувати.
Рівень 3. Те ж, що й рівень 2. Однак йде активна видобуток ресурсів, чарівники намагаються чаклувати і гадить вам, охоронці комп’ютера повертаються назад після відображення вашої атаки. Hо ніяких активних дій проти вас комп’ютер не робить.
Рівень 4. ПОЛHОЦЕHHАЯ ГРА!

Ось, власне і все, що ми хотіли вам сказати …

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*