Якщо ви вперше розвиваєте AI, вам не доведеться турбуватися про такі речі, як стан стану, поведінкова математика або навіть отримати книгу з цього питання.
Ви можете буквально піти від чогось такого:
if( targetInRange == true )
{
FireAtTarget();
}
else if( bulletComingTowardsMe == true )
{
MoveAwayFromBullet();
}
else
{
WanderAroundAimlessly();
}
Основний аспект виправлення AI правильного - це продумати поведінку, яку ви хочете, щоб персонаж мав, і як цього можна реально досягти. Отже, для базового ворога космічного корабля я б уявив, що можливими діями, які він може здійснити, було б:
- Пересуватися
- Вогонь
- Втікай
І коли ці дії могли статися?
- Рухатися - нічого більше робити
- Вогонь - коли я помічаю ворога
- Втікайте - Коли мені мало здоров’я / Коли я веду вогонь / тощо
Після того, як ви зробите це через малу кількість "станів", в яких може знаходитися ваш персонаж, ви можете використовувати простий, якщо твердження, як те, що вище. Тоді я б рекомендував вам поглянути на рульове поведінку, оскільки це дуже прості способи поведінки, які можна здійснити, і це може призвести до справді гарного руху.
Більше можна знайти тут: http://www.red3d.com/cwr/steer/
І я б точно рекомендував книгу Мата Бакленда Програмування Гра AI на прикладі , особливо коли ви починаєте.
Коли вам це дуже зручно, я б запропонував переглянути державні та стратегічні схеми.
Сенс у тому, щоб почати з малого і простого. Не турбуйтеся про всі ці умови, що всі продовжують розмовляти про FSM та дизайнерські шаблони та що завгодно. Перш за все спроектуйте та побудуйте, а потім переживайте, як можна вдосконалити його, використовуючи існуючі методи чи стандарти.
Сподіваюся, що це допомагає!