Все заметки

Искусственный интеллект

Искусственный интеллект.

Чтобы игровой объект обзавёлся мозгом, я добавил специальный компонент, где указывается название стратегии, которая будет определять поведение объекта. Система, отвечающая за работу ИИ, создаёт экземпляры этих стратегий по одной на игрока и далее в рамках game loop-а раз за разом вызывает у каждой из них метод update() куда передаётся всякая полезная информация вроде количества миллисекунд прошедших с предыдущей итерации. Стратегия же позволяет использовать всю эту информацию чтобы выбрать точку перемещения и мишень для стрельбы.

Это все сильно напоминает сервис CodingGame, где программисты соревнуются в написании ИИ для какой-нибудь игры. Вам предоставляют необходимый набор сведений о противниках и окружающей среде, а ваша задача, используя все это, – переиграть оппонента, написав более умный и крутой ИИ.

Мне же хотелось поскорее вдохнуть жизнь в игру, поэтому алгоритм поведения противника я хотел сделать как можно более простым. Ну скажем пусть ИИ будет раз в несколько секунд выбирать случайную точку лежащую внутри игровой арены и будет туда бежать, попутно обстреливая случайных противников. Да иногда они будут врезаться друг в друга и тупить, но этим можно пока что пренебречь.

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