Skip to content

maxGrigorenko/StarCraft2_Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StarCraft2 Бот – smallBly

Бот для StarCraft II, написанный на Python с использованием библиотеки python-sc2.
Занимает топ‑15% на платформе aiarena.net благодаря адаптивной стратегии, основанной на статистике сыгранных партий.
Профиль на aiarena

Ключевые особенности

  • Адаптивный выбор стратегии – перед каждой игрой бот анализирует файл data/statistics.txt, где хранятся результаты предыдущих боёв с конкретным оппонентом. На основе формулы, учитывающей победы, поражения и ничьи, выбирается одна из трёх ранних атак:

    1. Zergling‑Drone Rush – массовые зерглинги и дроны.
    2. Roach Rush – быстрый переход на роачей.
    3. 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, улучшение модульности). Главный фокус проекта всегда был на разработке алгоритмов и поиске эффективынх эвристик.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages