Конечные автоматы — это математические модели, которые представляют различные «состояния» в зависимости от определенного набора доступных входных данных. Модель может находиться только в одном состоянии в каждый момент времени, и внешний вход вызывает переход, при котором модель переключается на другой вход.

Примером может служить светофор. Их можно абстрагировать как простую машину с тремя состояниями: зеленый, желтый и красный. Состояние по умолчанию может быть назначено зеленому цвету, который будет меняться только тогда, когда датчики улавливают автомобили на перпендикулярной дороге (внешний ввод). Затем модель перейдет в желтый цвет на заданное количество секунд и автоматически перейдет в красный. Точно так же красный цвет затем переходит в желтый, а затем в зеленый при получении обратной связи от датчика.

В игровом дизайне конечные автоматы часто используются для создания ИИ для различных врагов. Это имеет смысл, так как враги часто следуют заранее запрограммированным действиям: бездействуют, атакуют, следуют за игроком, убегают и т. д. Следуя принципам проектирования конечного автомата, проектирование ИИ на самом деле становится намного проще. Для моей игры я хочу создать летающий дрон, который атакует игрока, когда он или она приближается к нему. Таким образом, его состояние по умолчанию будет бездействующим или, возможно, прикрепленным к потолку. Когда игрок входит в его поле зрения и оказывается достаточно близко (внешний ввод), он переходит к атаке, в которой пытается поддерживать постоянное расстояние от игрока и стреляет в него. Вот и все  всего два состояния могут описать действия моего летающего дрона-врага.

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