Документация Справочник
Откуда данные
Источник и точность каждого вида данных. Если что-то «выглядит не так», начните с этой страницы.
| Данные | Источник | Точность |
|---|---|---|
| Юниты, ресурсы, приказы, способности, баффы, инвентарь | Блок мира, который рантайм публикует каждые 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.