Flocking (стая)— это алгоритм, моделирующий коллективное поведение сущностей, таких как стая птиц или рой рыб. В контексте RTS (Real-Time Strategy, стратегия в реальном времени) это может быть использовано для управления группами юнитов. Суть алгоритма в том, чтобы каждая сущность принимала решение о своем движении на основе состояний соседних сущностей.
Простыми словами:
Flocking — это когда каждый персонаж смотрит, что делают его соседи, и принимает решение, куда ему двигаться, чтобы вписаться в общую картину. Например, если все идут влево, то и он пойдет влево.
### Основные правила flocking включают
1. **Separation (Разделение)**: Каждый агент старается держаться на безопасном расстоянии от других, чтобы избежать столкновения.
2. **Alignment (Выравнивание)**: Агенты стараются двигаться в том же направлении, что и их соседи.
3. **Cohesion (Сцепление)**: Агенты стремятся оставаться близко к "центру масс" своей группы.
### Производительность
Количество операций зависит от числа соседних юнитов, поэтому имеет смысл ограничивать радиус "видимости" для каждого юнита.