Статус: Draft


Принцип

Весь рандом идёт через инъектируемый seeded-сервис IRngService (на базе System.Random / xorshift), а не через глобальный UnityEngine.Random. Забег детерминирован стартовым сидом: один сид → одинаковая генерация.

Зачем это критично (не только ради «начать по сиду»):

  • Реплеи — бой переигрывается по логу команд + сиду;
  • Сравнение AI-профилей — один и тот же бой честно прогоняется с разными профилями на одном сиде;
  • Мультиплеер — синхронизация результатов между клиентами (host-authoritative).

Боевая симуляция при этом детерминирована (фиксированный тик, без Unity-физики, без UnityEngine.Random, детерминированный порядок итерации) — см. 5. Технологический стек и архитектура.

Возможность начинать забег по заданному сиду (ручной ввод / шаринг) сохраняется как фича.


Темы для описания

  • Генерация карты акта (структура, узлы, развилки)
  • Генерация наград после боя
  • Генерация пула магазина
  • Рандомизация ивентов
  • Система сидов: ввод вручную, отображение, шаринг
  • Воспроизводимость в мультиплеере (синхронизация рандома между клиентами)