SMART BOT AI - Модульная система улучшения ботов
Версия: V 2.1.0 Beta
ОПИСАНИЕ
Плагин
SMART BOT AI - это модульная система для улучшения поведения ботов в Counter-Strike: Source. Плагин позволяет ботам учиться на поведении реальных игроков, использовать умные тактики, находить укрытия и двигаться более реалистично.
ОСНОВНЫЕ ВОЗМОЖНОСТИ
- Изучение поведения игроков - боты запоминают, где игроки предпочитают прятаться, изучают паттерны движения и стрельбы
- Умный поиск укрытий - боты автоматически находят и используют укрытия, запоминают часто используемые позиции
- Реалистичное поведение - человеческие задержки реакции, неточности в прицеливании, реалистичная стрельба с паузами
- Адаптивный ИИ - боты учатся на основе опыта, изменяют тактику в зависимости от ситуации
- Система траекторий - боты могут следовать по записанным траекториям движения игроков
- Распределение задач - боты автоматически распределяются по задачам (A плент, B плент, лобовая атака)
- Интеграция с NavMesh - использование навигационной сетки из nav-файлов для оптимального движения
УСТАНОВКА
- Скопируйте файл smart_bot_ai.smx в папку
addons/sourcemod/plugins/
- Перезапустите сервер или выполните команду
sm plugins reload smart_bot_ai
- Плагин автоматически создаст директорию
при первом запуске
НАСТРОЙКА (ConVars)
Основные настройки:
| ConVar | Значение по умолчанию | Описание |
|---|
|
| 1 | Включить/выключить плагин (0 = выключен, 1 = включен) |
|
| 0 | Режим отладки (0 = выключен, 1 = включен). Включает подробное логирование в консоль сервера |
|
| 1 | Использовать стандартный ИИ Valve (1 = да, 0 = только модули). При 0 боты используют только кастомные модули и траектории |
|
| 2 | Сложность ботов (0-3, как в CS:S). 0 = легкий, 1 = нормальный, 2 = сложный, 3 = эксперт |
Модуль изучения (Learning):
| ConVar | Значение по умолчанию | Описание |
|---|
sm_smartbot_learning_enabled
| 1 | Включить изучение поведения игроков |
sm_smartbot_learning_track_interval
| 1.0 | Интервал отслеживания позиций игроков в секундах (0.5-5.0). Меньше значение = чаще отслеживание |
sm_smartbot_learning_min_routes
| 50 | Минимальное количество маршрутов для активации модуля |
Модуль точек укрытия (Cover Points):
| ConVar | Значение по умолчанию | Описание |
|---|
sm_smartbot_cover_enabled
| 1 | Включить модуль точек укрытия |
|
| 100.0 | Радиус для определения точки укрытия в юнитах (50.0-500.0) |
sm_smartbot_cover_min_points
| 10 | Минимальное количество точек укрытия для активации модуля |
Модуль навигации (Navigation):
| ConVar | Значение по умолчанию | Описание |
|---|
|
| 1 | Включить модуль навигации |
sm_smartbot_nav_autogenerate
| 1 | Автоматически генерировать waypoints при движении игроков |
sm_smartbot_nav_waypoint_distance
| 100.0 | Минимальное расстояние между waypoints в юнитах (50.0-500.0). Меньше значение = гуще сеть waypoints |
sm_smartbot_nav_min_usage
| 1 | Минимальное использование позиции для создания waypoint (1-100). Меньше значение = быстрее создание waypoints |
sm_smartbot_nav_min_waypoints
| 20 | Минимальное количество waypoints для активации модуля |
Модуль засад (Ambush):
| ConVar | Значение по умолчанию | Описание |
|---|
sm_smartbot_ambush_enabled
| 1 | Включить модуль засад |
sm_smartbot_ambush_minwait
| 5.0 | Минимальное время ожидания в засаде в секундах (1.0-60.0) |
sm_smartbot_ambush_maxwait
| 15.0 | Максимальное время ожидания в засаде в секундах (1.0-120.0) |
Модуль боя (Combat):
| ConVar | Значение по умолчанию | Описание |
|---|
sm_smartbot_combat_enabled
| 1 | Включить модуль боя |
sm_smartbot_combat_improve_aim
| 1 | Улучшить прицеливание ботов (1 = включено, 0 = выключено) |
sm_smartbot_combat_reaction_time
| 0.2 | Время реакции ботов в бою в секундах (0.0-1.0). Больше значение = медленнее реакция |
Модуль движения (Movement):
| ConVar | Значение по умолчанию | Описание |
|---|
sm_smartbot_movement_enabled
| 1 | Включить модуль движения |
sm_smartbot_movement_use_cover
| 1 | Использовать точки укрытия для движения (1 = включено, 0 = выключено) |
sm_smartbot_movement_use_nav
| 1 | Использовать навигацию (waypoints) для движения (1 = включено, 0 = выключено) |
sm_smartbot_movement_use_navmesh
| 1 | Строить пути по NavMesh для более реалистичного движения (1 = включено, 0 = выключено) |
sm_smartbot_movement_path_refresh
| 2.5 | Минимальный интервал в секундах для пересчета пути NavMesh (0.5-10.0) |
sm_smartbot_movement_path_rebuild
| 128.0 | Расстояние в юнитах, при изменении цели больше которого перестраивается путь (16.0-1024.0) |
sm_smartbot_movement_node_reach
| 35.0 | Расстояние в юнитах, в пределах которого узел пути считается достигнутым (8.0-200.0) |
КОМАНДЫ
Все команды требуют права доступа
ROOT (флаг z).
Основные команды:
-
- Перезагрузить все данные из файлов (точки укрытия, waypoints, траектории и т.д.)
-
- Сохранить все данные в файлы немедленно
-
- Очистить все данные (точки укрытия, waypoints, траектории)
-
- Показать статистику плагина (количество точек укрытия, waypoints, траекторий и т.д.)
-
- Показать список всех модулей и их статус
-
sm_smartbot_module_enable <номер>
- Включить модуль по номеру (номер можно узнать через sm_smartbot_modules)
-
sm_smartbot_module_disable <номер>
- Выключить модуль по номеру
-
- Открыть меню управления маршрутами ботов (рисование маршрутов, просмотр сохраненных траекторий)
-
- Сгенерировать навигационную сеть из траекторий и waypoints (сохраняется в configs/smart_bot/nav_network_[mapname].cfg)
СИСТЕМА ТРАЕКТОРИЙ
Плагин поддерживает систему записи и воспроизведения траекторий движения игроков. Боты могут следовать по записанным траекториям, что делает их движение более реалистичным.
Автоматическая запись траекторий:
- Когда
установлен в 0, плагин автоматически начинает записывать траектории всех игроков на сервере
- Траектории записываются каждые 0.1 секунды (TRAJECTORY_RECORD_INTERVAL)
- При окончании раунда все траектории сохраняются в файл
configs/smart_bot/trajectories_[mapname].cfg
- Траектории автоматически загружаются при загрузке карты
Ручное создание маршрутов (для админов):
- Используйте команду
для открытия меню управления маршрутами
- Выберите "Начать рисование маршрута" - за вами будет следовать красная линия
- Двигайтесь по карте, создавая маршрут для ботов
- Выберите "Остановить рисование" для сохранения маршрута
- Маршрут сохраняется в файл
trajectories_[mapname].cfg
- В следующем раунде боты начнут следовать по созданным маршрутам
Особенности системы траекторий:
- Каждый бот получает свою уникальную траекторию (боты не идут все по одному маршруту)
- Боты автоматически обходят препятствия при движении по траектории
- Если бот застревает на траектории, ему автоматически назначается новая
- Траектории работают даже при включенном Valve AI (параллельное использование)
- Боты смотрят в направлении движения, а не просто используют записанные углы
РАСПРЕДЕЛЕНИЕ БОТОВ ПО ЗАДАЧАМ
Плагин автоматически распределяет ботов по задачам в начале каждого раунда:
- 33% ботов получают задачу идти к A пленту
- 33% ботов получают задачу идти к B пленту
- 34% ботов получают задачу лобовой атаки (используют обычную логику выбора целей)
Боты автоматически находят позиции бомб через:
- Поиск entity
и
- Уточнение позиций через NavMesh (поиск ближайшей навигационной области)
- Использование часто используемых waypoints как альтернативу
ФАЙЛЫ И ДАННЫЕ
Плагин автоматически создает и использует следующие файлы:
Структура директории:
configs/smart_bot/
├── coverpoints_[mapname].cfg - Точки укрытия для карты
├── nav_waypoints_[mapname].cfg - Навигационные waypoints для карты
├── player_patterns.cfg - Паттерны поведения игроков (общий для всех карт)
├── trajectories_[mapname].cfg - Записанные траектории движения для карты
└── nav_network_[mapname].cfg - Сгенерированная навигационная сеть (создается через sm_smartbot_generate_nav)
Автоматическое сохранение:
- Данные автоматически сохраняются каждые 5 минут
- Данные сохраняются при окончании раунда
- Данные сохраняются при выгрузке плагина
ИНТЕГРАЦИЯ С NAVMESH
Плагин интегрирован с навигационной сеткой NavMesh из nav-файлов:
- Использует существующие nav-файлы, созданные через
(требует)
- Уточняет позиции бомб через ближайшие навигационные области
- Строит оптимальные пути через NavMesh для движения ботов
- Использует NavMesh для поиска путей к целям (A/B пленты)
Для создания nav-файла используйте команды:
и
в консоли сервера. Подробнее:
Редактирование навигационной сетки - Valve Developer Community
МОДУЛИ ПЛАГИНА
Плагин состоит из 6 модулей, каждый из которых можно включать/выключать независимо:
- Модуль изучения (Learning) - отслеживает поведение игроков, запоминает маршруты и паттерны движения
- Модуль точек укрытия (Cover Points) - находит и запоминает позиции укрытий, используемые игроками
- Модуль навигации (Navigation) - создает сеть waypoints на основе движения игроков
- Модуль засад (Ambush) - организует групповые засады ботов
- Модуль боя (Combat) - улучшает прицеливание и реакцию ботов в бою
- Модуль движения (Movement) - управляет движением ботов, выбором целей и построением путей
РЕКОМЕНДАЦИИ ПО НАСТРОЙКЕ
Для реалистичного поведения ботов:
- Установите
sm_smartbot_use_valve_ai 0
для использования только кастомных модулей
- Дайте игрокам поиграть несколько раундов, чтобы плагин записал траектории и создал waypoints
- Используйте
для создания маршрутов вручную (опционально)
- Настройте
sm_smartbot_combat_reaction_time
для более реалистичной реакции (0.2-0.4 секунды)
Для производительности:
- Увеличьте
sm_smartbot_learning_track_interval
до 2.0-3.0 для снижения нагрузки
- Увеличьте
sm_smartbot_nav_waypoint_distance
до 150.0-200.0 для меньшего количества waypoints
- Отключите неиспользуемые модули через
sm_smartbot_module_disable
Для лучшего обучения:
- Уменьшите
sm_smartbot_nav_min_usage
до 1 для быстрого создания waypoints
- Уменьшите
до 75.0-80.0 для более точных точек укрытия
- Используйте
для мониторинга процесса обучения
РЕШЕНИЕ ПРОБЛЕМ
Боты не двигаются или двигаются неправильно:
- Проверьте, что
установлен в 1
- Проверьте, что модуль движения включен:
sm_smartbot_movement_enabled 1
- Убедитесь, что есть сохраненные траектории или waypoints (используйте)
- Если траекторий нет, дайте игрокам поиграть несколько раундов или создайте маршруты вручную
Боты идут все в одну точку:
- Убедитесь, что есть несколько сохраненных траекторий (боты должны получать разные траектории)
- Проверьте, что
установлен в 0 или что траектории назначены правильно
- Используйте
для проверки назначения траекторий
Данные не сохраняются:
- Проверьте права доступа к директории
- Используйте команду
для принудительного сохранения
- Проверьте логи сервера на наличие ошибок
ТЕХНИЧЕСКИЕ ДЕТАЛИ
- Максимальное количество точек укрытия: 500
- Максимальное количество паттернов игроков: 1000
- Максимальное количество waypoints: 1000
- Максимальное количество сохраненных траекторий: 1000
- Максимальное количество точек в траектории: 5000
- Интервал записи траекторий: 0.1 секунды
- Интервал автосохранения: 5 минут
АВТОР И ВЕРСИЯ
- Автор: DENZEL519&AI
- Версия: 2.1.0 Beta
- Требования: SourceMod 1.10+, Counter-Strike: Source
ПОДДЕРЖКА
При возникновении проблем:
- Включите режим отладки:
- Проверьте логи сервера в
- Используйте команду
для проверки состояния плагина
- Убедитесь, что все модули включены и работают корректно