В этой заметке я хочу раскрыть, какие же всё-таки есть типы клиентских программистов в геймдеве, и чем каждый из них занимается. Статья носит ознакомительной характер и рассчитана в первую очередь на программистов, начинающих свой путь в геймдеве, так что в ней будут встречаться термины, не знакомые нетехническим специалистам.
Помимо написания логики в лоб, существует два самых популярных подхода к гибкому заданию поведения ИИ — это Behaviour Tree или GOAP.А FSM? 🤔
Хорошее замечание. Принцип FSM используется постоянно, поэтому я отнес его к "написанию логики в лоб". Он так или иначе наверняка присутствует во всех твоих AI.
К примеру, если у тебя есть простейшая механика - пушка, стреляющая в одну точку, и только тогда, когда она видит игрока. У нее будет 3 состоянии: "жду игрока", "стреляю" и "перезаряжаюсь" (переходы, очевидно, по кругу). Скорее всего ты опишешь эти состояния как минимум энамом. При этом у тебя может не быть отдельных классов, инкапсулирующих логику каждого стейта, а транзишены могут обрабатываться прямо в коде пушки. Но это все равно будет стейт машиной.
GOAP и Behaviour Tree - это тоже стейт машины но со своими обвесами.