# ARGENT — дорожная карта разработки

**Тип:** рабочий план производства / Development Roadmap  
**Версия:** 1.0 · 30 сентября 2026  
**Статус:** проектный план, не обещание сроков  
**Основа:** `ARGENT_GDD.md` (концепция 0.1) и показанный прототип на Unreal Engine 5.

> **Цель:** довести ARGENT от существующего прототипа с RTS-камерой, меню, картой и размещением зданий до воспроизводимого матча, где территория, производство, постоянные расходы, война и дипломатия создают разные стратегии. Существующие рабочие системы не переписывать без технической необходимости.

## 0. Правила ведения проекта

- **Один вертикальный срез за раз.** Новая механика добавляется только после того, как предыдущая работает в игровом цикле, а не только в отдельной тестовой сцене.
- **UE5:** C++ для состояния игры, расчётов, сохранения и сетевой авторитетности; Blueprint для представления, анимации, прототипов и настройки контента; Data Assets / Data Tables для баланса.
- **Один источник истины:** правила игры в GDD, реализация и ограничения в этом плане, числовые параметры в таблицах баланса.
- **Никакой непрозрачной экономики:** любой прирост или расход ресурса должен иметь источник, видимый игроку.
- **Сетевая готовность с первого вертикального среза:** не откладывать архитектуру мультиплеера до завершения одиночной игры. Полноценный сетевой режим вводить после базового игрового цикла.
- **Примерные сроки** рассчитаны для небольшой команды с готовым UE5-прототипом. Для одного разработчика сроки могут быть существенно больше. Приоритет определяется критерием готовности, а не календарём.

### Статусы задач

`[ ]` не начато · `[-]` в работе · `[x]` завершено · `[?]` требует решения. Ниже задачи намеренно не отмечены выполненными: видеозапись подтверждает наличие видимых элементов прототипа, но не их внутреннюю реализацию и тестовое покрытие.

## 1. Карта этапов

| Этап | Результат | Приоритет | Ориентир* | Зависимости |
|---|---|---|---|---|
| 0. Аудит прототипа | Подтверждённая техническая база, реестр готовых систем | P0 | 3–5 дней | Нет |
| 1. Игровое ядро | Игрок, ратуша, поселенцы, команды, завершение матча | P0 | 1–2 недели | 0 |
| 2. Территории | Смежный захват, туман войны, свойства зон | P0 | 2–3 недели | 1 |
| 3. Строительство | Слоты, здания, работники, истощение, улучшение зон | P0 | 2–3 недели | 2 |
| 4. Экономика | Доходы, расходы, содержание, резервы, кризис | P0 | 2–3 недели | 3 |
| 5. Военный вертикальный срез | Армия, фронт, рейд, победа/поражение, ИИ | P0 | 3–5 недель | 4 |
| 6. Наука и специализация | Три ветки, краткосрочные/долгосрочные выборы | P1 | 2–3 недели | 5 |
| 7. Делегации и открытая дипломатия | Разведка, контакт, влияние, двусторонняя торговля | P1 | 3–5 недель | 5 |
| 8. Сеть и матч | Авторитетный сервер, 1v1, синхронизация экономики | P0/P1 | 3–6 недель | 5; архитектурная подготовка с 1 |
| 9. Тайные операции и море | Кражи, претензии, контрразведка, порты, высадки | P2 | 4–8 недель | 7, 8 |
| 10. Фракции и мета-баланс | Люди, Древние, Проклятые; разные экономические циклы | P2 | 5–8 недель | 5–9 |
| 11. Alpha → Beta → Release | Контент, UX, оптимизация, QA, баланс, сборки | P0 | По результатам тестов | 0–10 |

\*Ориентиры этапов **не следует складывать в дату релиза**: некоторые работы идут параллельно, а баланс и QA повторяются после каждого этапа.

---

## Этап 0. Аудит существующего проекта

**Задача:** зафиксировать реальное состояние UE5-проекта и не уничтожить уже работающий прототип очередной «идеальной архитектурой».

- [ ] Создать ветку/тег `baseline-prototype` и резервную копию проекта.
- [ ] Проверить открытие проекта в текущей версии UE5 и воспроизводимую сборку Development.
- [ ] Инвентаризировать существующие меню, выбор фракции, RTS-камеру, выбор юнитов, карту, размещение зданий, UI и сохранения.
- [ ] Зафиксировать, какие системы реализованы в C++, какие в Blueprint, где хранятся игровые данные.
- [ ] Найти дублирующиеся расчёты ресурсов, временные заглушки и связи Blueprint, затрудняющие сетевую синхронизацию.
- [ ] Добавить минимальные smoke-тесты: запуск матча, размещение здания, завершение матча, перезапуск.
- [ ] Составить список «сохранить / доработать / заменить» по каждой существующей системе.

**Критерий завершения:** проект запускается из чистого checkout, есть карта текущих систем и короткий видеоролик контрольной сборки.

**Артефакты:** `docs/architecture/current_state.md`, `docs/known_issues.md`, тег исходной версии.

## Этап 1. Игровое ядро и первый цикл

**Задача:** игрок может начать и закончить простейший матч.

- [ ] Состояние игрока: фракция, стартовая зона, ратуша, список подконтрольных территорий.
- [ ] Одна ратуша как критический объект; её уничтожение приводит к поражению.
- [ ] Ратуша создаёт поселенцев за настраиваемую цену и время.
- [ ] Команды RTS: выделение, перемещение, назначение работ, отмена действия, очередь производства.
- [ ] Отображение текущих ресурсов, рабочих, занятости и состояния ратуши.
- [ ] Настроить все цены, скорости и лимиты в Data Assets / таблицах, без захардкоженных значений в UI.
- [ ] Простой противник-заглушка с ратушей для тестирования условия победы.

**Критерий завершения:** от главного меню до победы/поражения без консольных команд и ручной расстановки акторов в редакторе.

## Этап 2. Территориальная карта и туман войны

**Задача:** создать главное ограничение ARGENT: последовательную экспансию через соседние земли.

- [ ] Представить карту как граф зон: `ZoneId`, соседи, владелец, тип местности, ресурсные узлы, строительные слоты, уровень, береговая линия.
- [ ] Определить стартовые позиции по краям карты; проверить сопоставимость доступных ресурсов.
- [ ] Реализовать разведку и туман войны с отдельными состояниями: неизвестно / разведано / видно сейчас.
- [ ] Разрешить мирное присоединение только соседних нейтральных зон; цену вынести в данные.
- [ ] При захвате открыть новые соседние зоны; запретить захват несмежных территорий.
- [ ] Реализовать захват вражеской приграничной зоны и смену владельца.
- [ ] Подсветить границы, доступные цели, стоимость и причину запрета захвата.
- [ ] Автоматические тесты графа: соседство, анклавы, потеря пограничной зоны, смена владельца.

**Критерий завершения:** игрок за один матч может разведать, присоединить 3–5 территорий, потерять одну и увидеть корректное изменение доступных направлений экспансии.

**Решить до начала:** что происходит с отрезанными от столицы территориями: сохраняют владельца, получают штраф логистики или становятся недоступны для строительства.

## Этап 3. Здания, рабочие и истощение

**Задача:** территория становится экономическим решением, а не декоративной областью.

- [ ] Сохранить свободное размещение здания внутри зоны, ограничив его числом слотов.
- [ ] Настроить типы зон и разрешённые/запрещённые постройки.
- [ ] Первые здания: ферма, лесопилка, рудник, склад, дом, казарма.
- [ ] Привязать добычу к назначенным поселенцам и доступному ресурсному узлу.
- [ ] Конечные залежи камня/железа; понятный прогноз истощения.
- [ ] Снос здания и возврат строительного слота; стоимость демонтажа/возврат материалов вынести в баланс.
- [ ] Улучшение зоны с условными 3 до 4 слотов; проверить, не становится ли улучшение обязательным всегда.
- [ ] Очереди строительства и понятные сообщения «не хватает ресурса», «нет слота», «узел истощён».

**Критерий завершения:** игрок захватывает зону с едой и камнем, строит ферму/рудник/третье здание, истощает рудник, сносит его и заменяет другой постройкой.

## Этап 4. Экономика и кризис снабжения

**Задача:** сделать потерю экономики стратегически опасной, но не мгновенно фатальной.

- [ ] Единый экономический тик и журнал источников дохода/расхода.
- [ ] Ресурсы первого прототипа: еда, древесина, деньги, камень; железо добавить при необходимости военного/технологического прогресса.
- [ ] Производство зданий с учётом работников и конечных залежей.
- [ ] Постоянные расходы на поселенцев, воинов, здания и, если подтвердится балансом, дальние территории.
- [ ] Резервы/склады, видимый прогноз «запасов хватит на N минут».
- [ ] Три стадии кризиса: дефицит → нарушение снабжения → истощение армии; **не** удалять войска мгновенно.
- [ ] Разделить причины дефицита: производство, разрушение, расходы, торговля, рейды.
- [ ] Отчёт экономики: «почему сейчас +5, а через минуту −3».
- [ ] Тесты на отсутствие отрицательных ресурсов, двойных начислений и расхождений после сохранения/загрузки.

**Критерий завершения:** после уничтожения двух производственных зданий игрок видит падение дохода при прежних расходах; запасы расходуются, начинается кризис, а восстановление экономики возвращает войска к нормальному снабжению.

## Этап 5. Военный вертикальный срез — первый настоящий матч

**Задача:** доказать, что территориальная экономика и война работают вместе.

- [ ] 4–6 базовых типов боевых юнитов, роли и контрроли.
- [ ] Быстрый RTS-контроль: рамка выделения, группы, attack-move, приоритет целей, базовые построения.
- [ ] Казарма, набор, лимит войск, стоимость производства и содержания.
- [ ] Захват только смежных вражеских зон; атака строений и гарнизонов.
- [ ] Диверсионный рейд в тыл: разрешить разрушение и грабёж, запретить присоединение изолированной зоны.
- [ ] Простой ИИ: добыча → расширение → оборона → нападение на уязвимую экономическую зону.
- [ ] Условия победы/поражения через ратушу; послематчевая статистика доходов, потерь, захваченных зон и стоимости армии.
- [ ] Минимум 10 тестовых партий с разными стартовыми территориями.

**Критерий завершения — M1 «Играбельная ARGENT»:** матч 1v1 с ИИ на карте из 12–16 зон, с одной фракцией, экономикой, рейдом и завершением партии. Игрок может победить прямым штурмом или сначала обрушить снабжение противника.

**Не входит в M1:** тайная дипломатия, полноценный флот, все три фракции, сложная политика нейтральных народов.

## Этап 6. Наука и стратегическая специализация

- [ ] Три базовые ветки: продовольствие, древесина/производство, военное дело.
- [ ] На каждой ветке решения «немедленный бонус» против «долгосрочный прирост».
- [ ] Научный ресурс и способ его получения: отдельное проектное решение, без добавления лишней валюты автоматически.
- [ ] 12–15 технологий для первого прохода; описания эффектов и требования.
- [ ] Сбросить/запретить взаимоисключающие выборы в соответствии с утверждёнными правилами.
- [ ] Тесты раннего военного, экономического и позднего технологического путей.

**Критерий завершения:** не менее трёх осмысленных билдов; исследование влияет на реальные решения, а не просто повышает цифры.

## Этап 7. Делегация, контакты и открытая торговля

- [ ] Один базовый тип юнита «Делегация» с действиями по специализации.
- [ ] Разведка и обнаружение нейтральных народов / других игроков.
- [ ] Открытый визит к столице; принимающий игрок видит присутствие делегации.
- [ ] Асимметричное влияние A→B и B→A; журнал изменений и понятные источники очков.
- [ ] Торговый маршрут и обмен ресурсами; базовая цена, транспортные ограничения и взаимная выгода.
- [ ] Реакции принимающей стороны: принять, отказать, отозвать доступ, направить контрделегацию.
- [ ] Разрыв публичных договоров при войне; дипломатические последствия агрессии для отношений с нейтральными народами.
- [ ] Проверить, что дипломатия не блокирует возможность обычной игры без неё.

**Критерий завершения — M2 «Три пути развития»:** экономика, война и открытая дипломатия дают разные, сопоставимые по жизнеспособности стратегии.

**Пока не утверждать:** автоматическую навязанную убыточную торговлю без контрмер. Прототипировать отдельно с ограничением максимального ущерба и прозрачным интерфейсом.

## Этап 8. Сетевой матч и воспроизводимость

- [ ] Авторитетная симуляция экономики, владения зонами, производства, боя и дипломатических действий.
- [ ] Репликация ресурсов, очередей, зон, состояния зданий и результатов приказов.
- [ ] Сетевые тесты 1v1 с задержкой и потерей пакетов; защита от повторных команд и двойных транзакций.
- [ ] Переподключение или понятное завершение матча при обрыве: выбрать по бюджету.
- [ ] Проверка расхождения состояний на 30–45-минутном матче.
- [ ] Лобби, выбор фракции, карта, старт/завершение матча.

**Критерий завершения — M3 «Сетевая ARGENT»:** два игрока проводят полный матч без расхождения ресурсов и владения территориями. Если сетевой режим не входит в первый релиз, зафиксировать это решением и сохранить серверно-совместимую архитектуру.

## Этап 9. Тайные операции, претензии и море

**Подэтап A — интриги:**
- [ ] Тайное размещение агента через делегацию; разведка, кража со склада, скрытая торговля, саботаж.
- [ ] Защита: дружинники/стража, обнаружение, поимка и стоимость содержания.
- [ ] Претензии как отдельный дипломатический ресурс: доказанная кража, нарушение договора, нападение.
- [ ] Ультиматумы: компенсация, торговые уступки, территориальное требование; другая сторона может отказать.
- [ ] Противодействие тайным операциям и предел их эффективности, включая операции во время войны.

**Подэтап B — море:**
- [ ] Порт, верфь, корабли, перевозка войск, морские торговые маршруты.
- [ ] Высадка для грабежа тыла без автоматического захвата изолированной территории.
- [ ] Береговая разведка и оборона; риск, стоимость и сезонность морских походов.
- [ ] Отдельное решение о поздней технологии плацдармов.

**Критерий завершения:** защищающийся игрок получает информацию, на которую можно реагировать; атакующий рискует ресурсами и репутацией, а не бесплатно разрушает чужую экономику.

## Этап 10. Три фракции и нейтральные народы

| Фракция | Игровая идея | Проверка баланса |
|---|---|---|
| Люди | Последовательное строительство, универсальная экономика, дипломатия и армия | Нет единственного обязательного билда |
| Древние | Оборона, автономность, эффективность ограниченных территорий | Не превращаются в неприступную крепость |
| Проклятые | Экспансия, большие строительные площади, поглощение нейтрального населения | Сдерживающая стоимость расширения/содержания |

- [ ] Для каждой фракции: 1 уникальный экономический цикл, 1 военная особенность, 1 дипломатическая особенность, отличающиеся технологии.
- [ ] Нейтральные народы: торговля, присоединение, реакция на агрессию, доступные ресурсы.
- [ ] Проверить переход нейтральных жителей к Проклятым при захвате.
- [ ] Ввести фракционные ограничения постепенно, только после стабильного баланса базовой экономики.
- [ ] Минимум 20 партий на каждую пару фракций и на нескольких типах карты; анализировать не только победы, но и время кризиса, доходы, частоту рейдов.

**Критерий завершения — M4 «Асимметричная ARGENT»:** все три фракции играются по-разному, но каждая имеет реальные ответы на экономический, военный и дипломатический прессинг.

## Этап 11. Alpha, Beta, выпуск

### Alpha — все основные механики работают

- [ ] Закрыт список блокирующих ошибок M1–M4.
- [ ] Игровые подсказки и справка объясняют захват, расходы, снабжение, торговлю и претензии.
- [ ] Автоматизированные тесты критических правил, ручные регрессионные сценарии.
- [ ] Телеметрия матча: длительность, размер государства, доходы, расходы, причины поражения.

### Beta — понятно и стабильно

- [ ] Внешние игровые тесты с новичками без устных объяснений разработчика.
- [ ] Профилирование CPU/GPU, нагрузки AI, репликации и больших армий.
- [ ] Полировка камеры, интерфейса, звука, эффектов, анимаций, производительности.
- [ ] Проверка доступности UI, читаемости тумана войны и границ зон.
- [ ] Устранить стратегии без контригры и необъяснимые экономические скачки.

### Release candidate

- [ ] Сборка, установка, настройки графики и управления, отчёты о сбоях.
- [ ] Версионирование сохранений и совместимость сетевых сборок.
- [ ] Проверка полной партии от первого запуска до экрана итогов.
- [ ] Список известных ограничений и критерии отката релиза.

---

## 2. Минимальный технический каркас UE5

**Рекомендуемые модули, а не требование переписать существующие классы:**

| Подсистема | Ответственность | Правило |
|---|---|---|
| `GameMode / GameState / PlayerState` | Старт, фракции, состояние матча, победа/поражение | Сервер авторитетен |
| `Zone System` | Граф зон, владельцы, слоты, ресурсные узлы, доступность захвата | Изменения атомарны |
| `Economy System` | Производство, содержание, резервы, журнал доходов/расходов | Единый расчётный тик |
| `Unit / Orders` | Приказы, работа, бой, рейды, снабжение | Разделить симуляцию и визуал |
| `Building System` | Размещение, строительство, снос, улучшение | Проверка слота и владельца на сервере |
| `Fog of War` | Разведка и видимость | Не раскрывать скрытые данные клиенту |
| `Diplomacy System` | Контакты, влияние, договоры, претензии, агенты | A→B ≠ B→A |
| `Tech System` | Деревья технологий, выборы и эффекты | Данные отдельно от UI |
| `Match Telemetry` | Логи экономики, исходы и тестовые метрики | Включить до балансировки |

**Порядок интеграции:** сначала подключать новые подсистемы к существующей карте, UI и строительству; заменять существующий код только при обнаруженной архитектурной несовместимости.

## 3. Контрольные игровые сценарии

| ID | Сценарий | Что должно быть доказано |
|---|---|---|
| T01 | Старт с одной ратушей | Поселенцы создаются; уничтожение ратуши завершает матч |
| T02 | Захват соседней зоны | Следующая зона становится доступной, несмежная остаётся недоступной |
| T03 | Истощение рудника | Добыча останавливается; снос освобождает слот |
| T04 | Рейд по двум фермам | Доход падает, расходы сохраняются, резервы расходуются |
| T05 | Восстановление после рейда | Игрок способен выйти из кризиса, если сохранил ресурсы/территории |
| T06 | Атака в тыл | Здания можно разрушить, изолированную территорию нельзя присоединить |
| T07 | Торговля двух игроков | У каждого корректно списываются и начисляются ресурсы |
| T08 | Дипломатическое влияние | Очки A→B и B→A считаются независимо |
| T09 | Пойманный агент | Появляется доказанная претензия и доступное ответное действие |
| T10 | Морская высадка | Рейд возможен, но не отменяет правила территориального захвата |
| T11 | Сетевая экономика | Ресурсы и владельцы зон совпадают у обоих клиентов и сервера |
| T12 | Фракционный матч | Каждая фракция имеет работоспособный путь к победе |

## 4. Открытые решения: принять до написания соответствующей системы

| Вопрос | Когда решить | Способ проверки |
|---|---|---|
| Валюта и формула присоединения территорий | До этапа 2 | Сравнить раннее расширение и улучшение старых зон |
| Судьба территорий, отрезанных от ратуши | До этапа 2 | Тест разрыва линии фронта |
| Цена и длительность улучшения строительных слотов | До этапа 3 | Сравнить специализацию и универсальную застройку |
| Нужен ли отдельный ресурс для науки/улучшений | До этапа 6 | Проверить сложность интерфейса и выборы игрока |
| Порог и длительность экономического кризиса | До этапа 5 | Серия рейдов с разными резервами |
| Можно ли навязывать убыточную торговлю | До этапа 7 | PvP-тест с контрмерами и ограничением ущерба |
| Как работают скрытые сделки во время войны | До этапа 9 | Тест обнаружения, риска и контрразведки |
| Морские плацдармы или только рейды | До этапа 9 | Проверить, не ломают ли они фронт |
| Какая цена свободной застройки Проклятых | До этапа 10 | Сравнить экономику на равном числе зон |
| Длительность матча и основные условия победы | После M1 | Телеметрия 10–20 партий |

## 5. Definition of Done для каждой задачи

Задача считается выполненной, когда: (1) механика работает в обычном матче; (2) цена/эффект настраиваются без изменения кода, если это балансный параметр; (3) игрок получает понятную обратную связь; (4) пройдены профильные тесты и проверены регрессии; (5) при наличии сети результат совпадает на сервере и клиентах; (6) обновлены GDD, changelog и запись демонстрации.

## 6. Рекомендуемая структура репозитория

```text
ARGENT/
├── Source/                      # UE5 C++
├── Content/                     # карты, Blueprints, UI, модели, эффекты
├── Config/
├── Tests/                       # функциональные/автоматизированные тесты
├── docs/
│   ├── ARGENT_GDD.md
│   ├── ARGENT_Development_Roadmap.md
│   ├── architecture/
│   ├── balance/
│   │   ├── resources.csv
│   │   ├── buildings.csv
│   │   ├── units.csv
│   │   └── technologies.csv
│   ├── decisions/               # ADR: принятые проектные решения
│   ├── test_plans/
│   └── changelog.md
└── README.md
```

## 7. Ближайший спринт: с чего начать прямо сейчас

**Цель ближайшего спринта:** доказать территориальный цикл, не трогая пока сложную дипломатию.

1. Провести аудит текущего UE5-проекта и записать, что реально готово.
2. На существующей карте обозначить 8–12 зон и граф соседства.
3. Добавить владельца зоны, подсветку доступных соседей и простую цену присоединения.
4. Привязать существующее размещение зданий к лимиту зоны.
5. Реализовать хотя бы один ресурсный узел с конечным запасом.
6. Проверить полный сценарий: ратуша → поселенцы → разведка → соседняя зона → постройка → добыча → истощение → снос.

**Демонстрация спринта:** непрерывная запись 5–10 минут без редакторских команд. Следующий спринт начинается после прохождения этого сценария.

---

**Связанный документ:** `ARGENT_GDD.md`. Изменения правил сначала фиксировать как проектное решение, затем обновлять GDD и только после этого переводить задачу в разработку.
