Программы для прохождения компьютерных игр: боты, ИИ-агенты и компьютерное зрение

- -
- 100%
- +
ГЛАВА 13. Платформы и фреймворки (ViZDoom, ML-Agents, Gym)
Gymnasium — единый API сред. ViZDoom — быстрый FPS-полигон. ML-Agents — Unity, curriculum, imitation, self-play. StarCraft (pysc2) — макро/микро, туман войны. Библиотеки: SB3, CleanRL, RLlib, Sample Factory. Путь: Gym → Atari → ViZDoom → ML-Agents → свои обёртки.
ГЛАВА 14. ИИ-боты для FPS, MMO и стратегий
FPS: YOLO → трекер → lead → сглаженное наведение → отдача; критична latency. MMO: UI, SM/BT, маршруты, инвентарь, recovery; perception = CV + OCR; high-level — LLM. MOBA — очень сложно. RTS — API предпочтительнее vision. Sandbox — иерархия и LLM. Принципы: частота решений, разделение слоёв, recovery, телеметрия, перехват человеком.
ГЛАВА 15. Античит-системы и методы детекции
Античиты: клиентские (BE, EAC, Vanguard), серверные (статистика, ML), гибриды. Детектируют сигнатуры, память, DLL, хуки, невозможные действия, аномалии поведения, injected input. Vision без инжекта невидим для memory-проверок, уязвим к behavioral. Исследователям — только offline/research.
ГЛАВА 16. Vision-Language Models и LLM-агенты в играх
VLM: изображение + текст → текст (описание, план, команды). Прямой агент универсален, но дорог. Гибрид: локально 95–98 %, LLM при застревании и планировании. Память, инструменты, ReAct. SIMA — generalist по инструкциям. Жёсткий формат ответа, лимит частоты, логи, YOLO для координат.
ГЛАВА 17. Кейс-стади: реальные проекты и архитектуры
Кейсы: OpenCV fishing; YOLO-aim; MAA-ассистенты; Mineflayer (API-first); Peek-a-bot (RL in UE5); SIMA; гибридный LLM-RPG. Уроки: узкое — надёжно; общее — дорого; гибриды выигрывают; важна поддержка после патчей.
ГЛАВА 18. Инструменты, библиотеки и экосистема
Стек: Python; OpenCV, ultralytics, ONNX/TensorRT, EasyOCR; mss/dxcam, pydirectinput; PyTorch, Gymnasium, SB3; Roboflow, CVAT. Минимум: mss+OpenCV+pydirectinput+ultralytics. Для продакшена — TensorRT, трекер, конфиги, логи.
ГЛАВА 19. Будущее ИИ-ботов в гейминге
Тренды: generalist-агенты; agentic AI в геймдизайне; sample efficiency; связь с робототехникой; ужесточение античитов; этика и регуляция. Практика: крепкий perception, мультимодальность, модульность, этика.
ГЛАВА 20. Заключение и практические рекомендации
Итоги: vision универсален; гибриды практичнее end-to-end; данные и инженерия важнее хайпа; этика обязательна. Дорожная карта: OpenCV → SM → YOLO → Gym/PPO → LLM-гибриды. Не начинайте с онлайн-шутера; логируйте; работайте offline. Игры — лучшая песочница для ИИ при ответственном подходе.
ПРИЛОЖЕНИЕ A. Примеры кода и шаблоны проектирования
A.1. Каркас главного цикла бота
while running:
frame = capture.get_frame()
if frame is None:
continue
state = vision.analyze(frame)
actions = decisions.decide(state)
input_ctrl.execute(actions)
logger.tick(state, actions)
if emergency_stop_pressed():
break
A.2. Рекомендации по структуре проекта
bot/
main.py
capture.py
vision/
detector.py
ocr.py
state.py
decisions/
state_machine.py
policies.py
input_controller.py
config.yaml
templates/
weights/
logs/
A.3. Чек-лист перед запуском на реальной игре
• Dry-run vision без ввода
• Совпадение координат клика с картинкой
• Аварийный стоп работает
• Окно игры в ожидаемом режиме (windowed/borderless)
• Логи пишутся
• Нет работы на свёрнутом окне без явного флага
ПРИЛОЖЕНИЕ B. Глоссарий ключевых терминов
Agent, Behavioral cloning, Bounding box, Curriculum learning, DPI awareness,
End-to-end, Gymnasium, IoU, Latency, mAP, NMS, OCR, Partial observability,
Policy, Reward shaping, ROI, State machine, Template matching, VLM, YOLO,
PPO, DQN, TensorRT, ONNX, ByteTrack, Kalman filter, ReAct, SIMA.
ПРИЛОЖЕНИЕ C. Рекомендуемые ресурсы
Документация: OpenCV, ultralytics YOLO, Gymnasium, Stable-Baselines3, ViZDoom,
Unity ML-Agents, mss, dxcam.
Книги: Sutton & Barto — Reinforcement Learning: An Introduction.
Статьи: DQN, AlphaGo, AlphaStar, OpenAI Five, SIMA (DeepMind).
Принцип: изучать открытый код критически и применять только в этических рамках.
КОНЕЦ КНИГИ
Книга подготовлена в образовательных и исследовательских целях.
Используйте знания ответственно. Не применяйте описанные методы
для нарушения правил онлайн-игр и создания нечестного преимущества.
РАСШИРЕННЫЕ ПРАКТИЧЕСКИЕ МАТЕРИАЛЫ И УГЛУБЛЁННЫЕ РАЗДЕЛЫ
— -----------------------------------------------------------
Углубление: проектирование state machine
— -----------------------------------------------------------
Конечный автомат остаётся одним из самых надёжных способов организации поведения бота. Состояния должны быть взаимоисклюкающими и покрывать все разумные режимы: инициализация, ожидание, поиск цели, сближение, взаимодействие, бой, отступление, восстановление, обработка смерти, возврат к маршруту, авария.
Переходы задаются предикатами над состоянием мира (то, что вернул perception). Избегайте «скрытого состояния» в глобальных переменных — всё, от чего зависит переход, должно быть явно в state object. Для отладки логируйте каждую смену состояния с timestamp и причиной перехода. При росте сложности рассмотрите hierarchical state machines или behaviour trees.
— -----------------------------------------------------------
Углубление: сбор и разметка датасета для YOLO
— -----------------------------------------------------------
Качество детекции на 80 % определяется данными. Снимайте геймплей в разных локациях, при разном освещении и погоде, с разными эффектами. Включайте частично перекрытые объекты, крайние ракурсы, моменты вспышек. Размечайте аккуратно: бокс должен плотно охватывать объект, класс — быть согласованным. Используйте active learning: прогоняйте текущую модель по новым видео и доразмечайте кадры с низкой уверенностью или ошибками. Балансируйте классы. Документируйте версию игры и настроек графики, на которых собран датасет.
— -----------------------------------------------------------
Углубление: снижение latency пайплайна
— -----------------------------------------------------------
В динамичных жанрах задержка от появления врага до движения мыши критична. Профилируйте каждый этап: захват, copy на GPU, инференс, трекинг, расчёт движения, отправка ввода. Часто узкое место — не модель, а лишние конвертации цветов или захват всего стола вместо окна. Используйте FP16/INT8, TensorRT, фиксированный input size, асинхронность. Детекцию можно делать не на каждом кадре, опираясь на трекер между запусками.
— -----------------------------------------------------------
Углубление: reward shaping без reward hacking
— -----------------------------------------------------------
Промежуточные награды ускоряют обучение, но агент начинает оптимизировать прокси. Если награждать за урон, агент может «фармить» слабых врагов вместо цели эпизода. Если штрафовать смерть слишком сильно — станет трусливым. Проверяйте выученную политику визуально и по вторичным метрикам (успех задачи, время, разнообразие поведения). Curriculum и иерархия часто безопаснее сложных ручных формул награды.
— -----------------------------------------------------------
Углубление: гибрид LLM + классический CV
— -----------------------------------------------------------
Паттерн: perception всегда локальный и быстрый. LLM получает структурированное описание (список объектов, OCR-поля, текущее SM-состояние, последние события) плюс редкий скриншот. Ответ — строгий JSON с командой или планом. Парсер отвергает любой неразбираемый вывод. LLM вызывается по триггерам: застревание, новый квест, неизвестный UI, конец эпизода. Так сохраняются скорость, стоимость и предсказуемость.
— -----------------------------------------------------------
Глубокий разбор: vision-aim в FPS
— -----------------------------------------------------------
Полный конвейер: захват с минимальной latency → YOLO (nano/small + TensorRT) → NMS → ассоциация с треками → оценка скорости цели (Kalman или конечно-разностная) → расчёт точки упреждения с учётом скорости пули и расстояния → перевод в дельту мыши через чувствительность и raw input → движение по сглаженной траектории → выстрел с учётом разброса и режима огня → компенсация отдачи по пресету оружия. Каждый блок тестируйте отдельно. Человечность: распределение времени реакции, шум траектории, редкие «промахи», запрет на мгновенные развороты. Никогда не используйте такой пайплайн в рейтинговых онлайн-режимах.
— -----------------------------------------------------------
Глубокий разбор: фарм-бот MMO на vision
— -----------------------------------------------------------
Модули: навигация по точкам/миникарте; бой (агро, ротация способностей, зелья); лут; инвентарь и продажа; квестовые маркеры; обработка смерти и возврат; анти-AFK (редкие осмысленные действия). Perception: детектор мобов/NPC, цвет/template для маркеров, OCR для HP и количества предметов. SM или behaviour tree связывает модули. Логируйте причины простоев — обычно это ложные срабатывания UI или застревание в геометрии.
— -----------------------------------------------------------
Глубокий разбор: обучение PPO в ViZDoom
— -----------------------------------------------------------
Обёртка среды в Gymnasium, выбор observation (пиксели vs game variables), frame skip, reward shaping под сценарий (навигация, сражение). Stable-Baselines3 PPO: n_steps, batch_size, learning_rate, ent_coef, gamma. Смотрите кривые reward и episode length. Усложняйте сценарий curriculum-ом. Перенос в реальный шутер прямым копированием весов почти никогда не работает; переносятся идеи архитектуры и shaping.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
В: С чего начать, если я умею только базовый Python?
О: Установите OpenCV и mss. Сделайте скрипт, который показывает FPS захвата. Затем template matching по кнопке в любой single-player игре и клик через pydirectinput. Это уже бот.
В: Нужна ли видеокарта?
О: Для классического OpenCV — нет. Для YOLO в реальном времени желательна NVIDIA с CUDA/TensorRT. Для обучения детектора GPU сильно ускоряет процесс.
В: Можно ли полностью обойтись без нейросетей?
О: Да, для многих задач UI, цветов и стабильных объектов. Нейросети нужны при сильной вариативности внешнего вида и сложных сценах.
В: Как не получить бан?
О: Не запускайте ботов в онлайн-играх с античитом и ToS-запретом. Работайте в single-player, offline, собственных или research-средах.
В: Чем LLM лучше state machine?
О: Гибкостью в нестандартных ситуациях и способностью понимать текст/контекст. Хуже скоростью, стоимостью и предсказуемостью. Используйте вместе.
В: Сколько данных нужно для YOLO под одну игру?
О: Часто достаточно 300–1500 хорошо размеченных кадров при сильном предобучении и аугментациях, если домен узкий. Для сложных сцен — больше.
В: Что читать дальше?
О: Документацию ultralytics и Gymnasium; Sutton & Barto; блоги и статьи DeepMind по игровым агентам; исходники аккуратных open-source ассистентов.
— -------------------------------------------------------------------------------
Справочный блок: типичные параметры и рекомендации
— -------------------------------------------------------------------------------
• Целевой FPS perception в спокойных играх: 10–20; в FPS: 30–60+.
• Confidence YOLO: начинайте с 0.35–0.5 и подстраивайте.
• IoU NMS: 0.45–0.6 типичный диапазон.
• Задержка реакции «человечная»: не ниже ~0.15–0.2 с на визуальный стимул в среднем.
• Размер ROI: минимально достаточный; меньше ROI — быстрее и меньше false positives.
• Логи храните хотя бы несколько часов работы для разбора сбоев.
• Версионируйте веса моделей и конфиги вместе.
• Перед обновлением игры сохраняйте старые шаблоны и датасеты.
• Тестируйте на том же разрешении и настройках графики, на которых собирали данные.
• Имейте profile на игру: пути, ROI, hotkeys, sens, пороги.
Дополнение: при работе с несколькими мониторами всегда явно указывайте monitor index и проверяйте координаты клика на целевом дисплее.
Дополнение: для отладки OCR сохраняйте предобработанные ROI на диск — так легче понять, почему движок ошибся.
Дополнение: при imitation learning перемешивайте демонстрации разных сессий и игроков, если стиль должен быть общим, а не копией одного человека.
— -------------------------------------------------------------------------------
Справочный блок: типичные параметры и рекомендации
— -------------------------------------------------------------------------------
• Целевой FPS perception в спокойных играх: 10–20; в FPS: 30–60+.
• Confidence YOLO: начинайте с 0.35–0.5 и подстраивайте.
• IoU NMS: 0.45–0.6 типичный диапазон.
• Задержка реакции «человечная»: не ниже ~0.15–0.2 с на визуальный стимул в среднем.
• Размер ROI: минимально достаточный; меньше ROI — быстрее и меньше false positives.
• Логи храните хотя бы несколько часов работы для разбора сбоев.
• Версионируйте веса моделей и конфиги вместе.
• Перед обновлением игры сохраняйте старые шаблоны и датасеты.
• Тестируйте на том же разрешении и настройках графики, на которых собирали данные.
• Имейте profile на игру: пути, ROI, hotkeys, sens, пороги.
Дополнение: при работе с несколькими мониторами всегда явно указывайте monitor index и проверяйте координаты клика на целевом дисплее.
Дополнение: для отладки OCR сохраняйте предобработанные ROI на диск — так легче понять, почему движок ошибся.
Дополнение: при imitation learning перемешивайте демонстрации разных сессий и игроков, если стиль должен быть общим, а не копией одного человека.
— -------------------------------------------------------------------------------
Справочный блок: типичные параметры и рекомендации
— -------------------------------------------------------------------------------
• Целевой FPS perception в спокойных играх: 10–20; в FPS: 30–60+.
• Confidence YOLO: начинайте с 0.35–0.5 и подстраивайте.
• IoU NMS: 0.45–0.6 типичный диапазон.
• Задержка реакции «человечная»: не ниже ~0.15–0.2 с на визуальный стимул в среднем.
• Размер ROI: минимально достаточный; меньше ROI — быстрее и меньше false positives.
• Логи храните хотя бы несколько часов работы для разбора сбоев.
• Версионируйте веса моделей и конфиги вместе.
• Перед обновлением игры сохраняйте старые шаблоны и датасеты.
• Тестируйте на том же разрешении и настройках графики, на которых собирали данные.
• Имейте profile на игру: пути, ROI, hotkeys, sens, пороги.
Дополнение: при работе с несколькими мониторами всегда явно указывайте monitor index и проверяйте координаты клика на целевом дисплее.
Дополнение: для отладки OCR сохраняйте предобработанные ROI на диск — так легче понять, почему движок ошибся.
Дополнение: при imitation learning перемешивайте демонстрации разных сессий и игроков, если стиль должен быть общим, а не копией одного человека.
— -------------------------------------------------------------------------------
Справочный блок: типичные параметры и рекомендации
— -------------------------------------------------------------------------------
• Целевой FPS perception в спокойных играх: 10–20; в FPS: 30–60+.
• Confidence YOLO: начинайте с 0.35–0.5 и подстраивайте.
• IoU NMS: 0.45–0.6 типичный диапазон.
• Задержка реакции «человечная»: не ниже ~0.15–0.2 с на визуальный стимул в среднем.
• Размер ROI: минимально достаточный; меньше ROI — быстрее и меньше false positives.
• Логи храните хотя бы несколько часов работы для разбора сбоев.
• Версионируйте веса моделей и конфиги вместе.
• Перед обновлением игры сохраняйте старые шаблоны и датасеты.
• Тестируйте на том же разрешении и настройках графики, на которых собирали данные.
• Имейте profile на игру: пути, ROI, hotkeys, sens, пороги.
Дополнение: при работе с несколькими мониторами всегда явно указывайте monitor index и проверяйте координаты клика на целевом дисплее.
Дополнение: для отладки OCR сохраняйте предобработанные ROI на диск — так легче понять, почему движок ошибся.
Дополнение: при imitation learning перемешивайте демонстрации разных сессий и игроков, если стиль должен быть общим, а не копией одного человека.
— -------------------------------------------------------------------------------
Справочный блок: типичные параметры и рекомендации
— -------------------------------------------------------------------------------
• Целевой FPS perception в спокойных играх: 10–20; в FPS: 30–60+.
• Confidence YOLO: начинайте с 0.35–0.5 и подстраивайте.
• IoU NMS: 0.45–0.6 типичный диапазон.
• Задержка реакции «человечная»: не ниже ~0.15–0.2 с на визуальный стимул в среднем.
• Размер ROI: минимально достаточный; меньше ROI — быстрее и меньше false positives.
• Логи храните хотя бы несколько часов работы для разбора сбоев.
• Версионируйте веса моделей и конфиги вместе.
• Перед обновлением игры сохраняйте старые шаблоны и датасеты.
• Тестируйте на том же разрешении и настройках графики, на которых собирали данные.
• Имейте profile на игру: пути, ROI, hotkeys, sens, пороги.
Дополнение: при работе с несколькими мониторами всегда явно указывайте monitor index и проверяйте координаты клика на целевом дисплее.
Дополнение: для отладки OCR сохраняйте предобработанные ROI на диск — так легче понять, почему движок ошибся.
Дополнение: при imitation learning перемешивайте демонстрации разных сессий и игроков, если стиль должен быть общим, а не копией одного человека.
— -------------------------------------------------------------------------------
Справочный блок: типичные параметры и рекомендации
— -------------------------------------------------------------------------------
• Целевой FPS perception в спокойных играх: 10–20; в FPS: 30–60+.
• Confidence YOLO: начинайте с 0.35–0.5 и подстраивайте.
• IoU NMS: 0.45–0.6 типичный диапазон.
• Задержка реакции «человечная»: не ниже ~0.15–0.2 с на визуальный стимул в среднем.
• Размер ROI: минимально достаточный; меньше ROI — быстрее и меньше false positives.
• Логи храните хотя бы несколько часов работы для разбора сбоев.
• Версионируйте веса моделей и конфиги вместе.
• Перед обновлением игры сохраняйте старые шаблоны и датасеты.
• Тестируйте на том же разрешении и настройках графики, на которых собирали данные.
• Имейте profile на игру: пути, ROI, hotkeys, sens, пороги.
Дополнение: при работе с несколькими мониторами всегда явно указывайте monitor index и проверяйте координаты клика на целевом дисплее.
Дополнение: для отладки OCR сохраняйте предобработанные ROI на диск — так легче понять, почему движок ошибся.
Дополнение: при imitation learning перемешивайте демонстрации разных сессий и игроков, если стиль должен быть общим, а не копией одного человека.
— -------------------------------------------------------------------------------
Справочный блок: типичные параметры и рекомендации
— -------------------------------------------------------------------------------
• Целевой FPS perception в спокойных играх: 10–20; в FPS: 30–60+.
• Confidence YOLO: начинайте с 0.35–0.5 и подстраивайте.
• IoU NMS: 0.45–0.6 типичный диапазон.
• Задержка реакции «человечная»: не ниже ~0.15–0.2 с на визуальный стимул в среднем.
• Размер ROI: минимально достаточный; меньше ROI — быстрее и меньше false positives.
• Логи храните хотя бы несколько часов работы для разбора сбоев.
• Версионируйте веса моделей и конфиги вместе.
• Перед обновлением игры сохраняйте старые шаблоны и датасеты.
• Тестируйте на том же разрешении и настройках графики, на которых собирали данные.
• Имейте profile на игру: пути, ROI, hotkeys, sens, пороги.
Дополнение: при работе с несколькими мониторами всегда явно указывайте monitor index и проверяйте координаты клика на целевом дисплее.
Дополнение: для отладки OCR сохраняйте предобработанные ROI на диск — так легче понять, почему движок ошибся.
Дополнение: при imitation learning перемешивайте демонстрации разных сессий и игроков, если стиль должен быть общим, а не копией одного человека.
— -------------------------------------------------------------------------------
Справочный блок: типичные параметры и рекомендации
— -------------------------------------------------------------------------------
• Целевой FPS perception в спокойных играх: 10–20; в FPS: 30–60+.
• Confidence YOLO: начинайте с 0.35–0.5 и подстраивайте.
• IoU NMS: 0.45–0.6 типичный диапазон.
• Задержка реакции «человечная»: не ниже ~0.15–0.2 с на визуальный стимул в среднем.
• Размер ROI: минимально достаточный; меньше ROI — быстрее и меньше false positives.
• Логи храните хотя бы несколько часов работы для разбора сбоев.
• Версионируйте веса моделей и конфиги вместе.
• Перед обновлением игры сохраняйте старые шаблоны и датасеты.
• Тестируйте на том же разрешении и настройках графики, на которых собирали данные.
• Имейте profile на игру: пути, ROI, hotkeys, sens, пороги.
Дополнение: при работе с несколькими мониторами всегда явно указывайте monitor index и проверяйте координаты клика на целевом дисплее.
Дополнение: для отладки OCR сохраняйте предобработанные ROI на диск — так легче понять, почему движок ошибся.
Дополнение: при imitation learning перемешивайте демонстрации разных сессий и игроков, если стиль должен быть общим, а не копией одного человека.
— -------------------------------------------------------------------------------
Справочный блок: типичные параметры и рекомендации
— -------------------------------------------------------------------------------
• Целевой FPS perception в спокойных играх: 10–20; в FPS: 30–60+.
Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.



