Бот для StarCraft II, написанный на Python с использованием библиотеки python-sc2.
Занимает топ‑15% на платформе aiarena.net благодаря адаптивной стратегии, основанной на статистике сыгранных партий.
Профиль на aiarena
-
Адаптивный выбор стратегии – перед каждой игрой бот анализирует файл
data/statistics.txt, где хранятся результаты предыдущих боёв с конкретным оппонентом. На основе формулы, учитывающей победы, поражения и ничьи, выбирается одна из трёх ранних атак:- Zergling‑Drone Rush – массовые зерглинги и дроны.
- Roach Rush – быстрый переход на роачей.
- Ravager Rush – использование равагеров с умением Corrosive Bile.
-
Оптимизированные ранние атаки – каждая стратегия реализована в отдельном классе (
ZerglingDroneStrategy,RoachStrategy,RavagerStrategy), что позволяет тонко настраивать тайминги, состав армии и микроуправление. -
Централизованная система действий –
ActionRegistryуправляет приоритетным выполнением команд (движение, атака, строительство), предотвращая конфликты между подсистемами. -
Умное управление юнитами:
- OverlordManager – расставляет оверлордов для разведки по заранее рассчитанным позициям.
- RavagerManager – отвечает за уклонение от Corrosive Bile и выбор целей для способности.
- Speed‑mining – оптимизирует добычу минералов, перераспределяя дронов между шахтами.
-
Расширенный микро‑ и макроконтроль – модули
universal_functionsиcoordinate_functionsсодержат десятки вспомогательных методов для точного перемещения, поиска целей, обхода препятствий и управления королевами.
src/
├── bot_main.py # Основной класс бота SmallBly
├── managers/
│ ├── action_registry.py # Реестр действий с приоритетами
│ ├── overlord_manager.py # Управление оверлордами
│ └── ravager_manager.py # Управление равагерами
├── strategies/
│ ├── zergling_drone_rush.py # Стратегия зерглинг‑дрон раша
│ ├── roach_rush.py # Стратегия роач раша
│ └── ravager_rush.py # Стратегия равагер раша
└── utils/
├── coordinate_functions.py # Геометрические и координатные функции
├── speed_mining.py # Оптимизация майнинга
└── universal_functions.py # Универсальные хелперы
Проект начинался в школьные годы как площадка для экспериментов со стратегиями. Сейчас я нахожусь в процессе рефакторинга кодовой базы (устранение God Objects, улучшение модульности). Главный фокус проекта всегда был на разработке алгоритмов и поиске эффективынх эвристик.