1 неделю назад
Скромный ИИ Elden Ring: как FROMSOFT программирует поведение врагов
FROMSOFT славится сложным и разнообразным ИИ врагов. Но когда посмотреть на код Elden Ring (написанный на Havok Script, интерпретируемом Lua), видно что это не deep learning, а elegantly простая система. Основный инструмент, Goal (цель/состояние), не просто конечный автомат (FSM), а Pushdown Automaton (стек состояний). Каждый фрейм враг обновляет Goal на верхушке стека. Goal может push-ить sub-goals на стек, те выполняются следующие фреймы. Пример: CoolBossBattle (top-level) push-ит Attack goals разных типов: Когда Attack успешно выполнится, Goal pop-ится со стека. Если fail, раскручивается стек обратно к parent-Goal и тот push-ит новый action...