Документация Справочник

Откуда данные

Источник и точность каждого вида данных. Если что-то «выглядит не так», начните с этой страницы.

ДанныеИсточникТочность
Юниты, ресурсы, приказы, способности, баффы, инвентарьБлок мира, который рантайм публикует каждые 50 msПериод публикации (можно уменьшить до 16 ms)
События урона и убийствРантайм записывает прямо в игровом потоке, каждый ударМгновенно
Прочие события (появление, гибель, смена приказа, повышение уровня…)Сравнение двух соседних публикацийПериод публикации
Таблица производства (тренировка / исследование / строительство / улучшение)Поля таймера в способностях производства движка + прошедшее время, которое накапливает рантаймОколо ±0.2 игровой секунды
Боевые характеристики, таблица бонусов типов атаки и брониВстроенные таблицы данных игры (извлекаются из вашей локальной копии игры)Без учёта модификаторов от предметов, аур и баффов
Поиск путиПроходимость рельефа в движке (клетка 128) + деревья + площадь зданий, A* на стороне SDKОдна клетка; проходы уже клетки считаются непроходимыми
Игровое время сутокJASS GetFloatGameState(GAME_STATE_TIME_OF_DAY)Период публикации
ВидимостьМаска видимости, которую рантайм считает для каждого юнита по каждому игрокуПериод публикации
Счётчики технологий, выполнимость, остаток золота в рудникеЗапрос через быструю полосу напрямую к движкуМгновенно

Игровые данные не распространяются с кодом

Таблицы юнитов, способности, предметы, герои, баффы, таблица бонусов урона и т. п. взяты из игровых файлов Blizzard и в репозиторий не входят. Когда вы укажете папку игры в «Центре управления» Farsight, они будут автоматически извлечены из вашей собственной игры; можно запустить извлечение и вручную:

python data/tools/extract_game_data.py

Результат извлечения лежит в data/game/ (в git не попадает): исходные .slk / .txt, а также подготовленные units.json, names.json, skills.json, items.json, heroes.json, buffs.json.

Несколько конкретных чисел

ВеличинаЗначение
Сутки480 игровых секунд (день и ночь — по 240 секунд), один час = 20 игровых секунд; матч начинается в 8 утра
День6:00 ~ 18:00
Коэффициент брони0.06 (из таблиц данных игры)
Ёмкость блока мира16 игроков, 1024 юнита, 256 наборов подробных данных юнитов, 256 предметов на земле, 128 записей производства
ДеревьяДо 4096 разрушаемых объектов, обновление каждые 2 секунды
Кольцо событий8192 записи; при слишком медленном чтении события теряются (SDK это обнаруживает)
Клетки карты128 игровых единиц на клетку, максимум 256 × 256

Примеры, откалиброванные измерениями

  • Время производства: крестьянин 14.9, ферма 34.9, улучшение Iron Forged Swords 59.9 игровой секунды — совпадает с тем, что публикует рантайм (расхождение меньше 0.2 секунды);
  • Боевые характеристики сверены с игровой панелью: Паладин — 650 здоровья, 255 маны, броня 3.9, атака 24 ~ 34; пехотинец с первым улучшением атаки — 13 ~ 15;
  • Урон до учёта брони в событиях урона движка (14 / 15 / 15) попадает в диапазон, рассчитанный stats();
  • Поиск пути: Echo Isles — 116 × 88 клеток, путь по земле до главного здания соперника 10642 (по прямой 9856), построение сетки 18 ms, один проход A* ≈1 ms.