Кто пишет клиенты для игр?

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

Фрагмент из видео <a href="https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DPNpxtl8KReg&postId=822598" rel="nofollow noreferrer noopener" target="_blank">Gameplay Programming At Ubisoft</a> Ubisoft
217217

Помимо написания логики в лоб, существует два самых популярных подхода к гибкому заданию поведения ИИ — это Behaviour Tree или GOAP.А FSM? 🤔

1

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

3