Перейти к содержанию

План реализации проекта по фичам

Дата: 16 октября 2026. Первый игровой тест — Android, по решению пользователя. План подготовлен по документации; это порядок будущей работы, а не подтверждение готовности текущей игры. Код и Unity-ассеты при составлении плана не проверялись и не изменялись. Все игровые проверки ниже пока не выполнены; их выполняет пользователь вручную.

Отдельное задание художнику: ассеты и очередность поставок.

Операционная очередь: трекер первых 50 задач, разбитый на арт, игровые механики и интерфейс/метаигру. Трекер содержит первую партию, не заменяет и не сокращает полный план F1–F7. Задача UI-ICON-GENERATOR ведётся как UI-036; упоминание ниже — ссылка на ту же работу, не отдельная задача.

1. Что означает «после каждой фичи рабочая игра»

Каждая поставка заканчивается Android-сборкой, в которой можно начать с нового профиля, играть, развиваться в пределах выпущенного контента, умереть, возродиться и продолжить после перезапуска. Уже выпущенные механики продолжают работать. Новая механика включает данные, игровой эффект, интерфейс, сохранение и завершённый контентный пример. Один экран без логики или один обработчик без доступного игроку применения не считаются готовой фичей.

Для разработки допустимы законченные временные визуалы. Каждый объект, включая заглушки, должен быть конкретным префабом. Поставка финального арта не должна требовать переписывать бой, переходы или выдачу наград.

Границы фич сохраняются по реестру: Core Gameplay — одна фича, включая бой, оружие, спавнеры, карту, магазин и пользовательские сервисы. Pass — отдельная фича с бесплатной и платной частью вместе. Разбиение оборудования, квестов и дерева на ID в реестре пока является проектным предложением. Обозначения F1–F7 ниже — пакеты реализации; F6 и F7 продолжают Core Gameplay и не добавляют новых выключателей.

До завершения F1 внутренние сборки являются техническими прототипами. Первый игровой тест проводится после F1: три полноценные арены и работающий магазин. Более ранний прототип без магазина не подменяет этот критерий.

2. От чего отталкиваемся

Состояние взято из flow, боевого прототипа, инвентаря, UI, города и каталога оборудования. Их ручная игровая приёмка остаётся невыполненной. Несохранённые в Git изменения рабочего проекта не считаются принятыми или завершёнными только по наличию файлов.

Область Описанные заготовки Что ещё требуется для готовой игры
Запуск и навигация Boot, постоянный UI/flow, отдельные сцены 20 локаций, меню-панели, Addressables Принять запуск/переходы вручную, убрать доступ к невыпущенному контенту из обычного профиля, подключить настоящие условия открытия
Бой NukeECS: движение, автонаведение, снаряды, здоровье, примитивные противники Целевые правила урона, награды характеристиками, физические препятствия, проходимость, разные атаки, правильная смерть и спавнеры
Экипировка Владение, копии, T/L/E, три башни, три предметных слота, drag-and-drop и попап Реальные индивидуальные параметры моделей, источники добычи, эволюция, способности и эффекты оборудования
Сохранения Безопасная запись и recovery; в последней инвентарной документации профиль v4 Сверить актуальный формат перед изменениями, дополнять версию/миграции для каждой новой системы, принять восстановление вручную
Окружение Location01: город 250 × 170 м из 18 районов Выбрать окончательную компоновку A01 и довести её до проходимой арены; остальные 19 сцен — заглушки
Каталоги 41 префаб оружия, 60 предметов, 19 обычных врагов, 60 боссов Заглушки не означают готовый баланс, механику, анимации или финальный арт
Метаэкраны Навигация и демонстрационные состояния Подключать реальные данные вместе с соответствующей фичей; скрывать недоступные действия

Не планируем повторно создавать эти системы с нуля. Сначала подтверждаем их работоспособность и дорабатываем локально. Если необходим большой рефакторинг, он оформляется отдельно с конкретным ROI по правилам проекта.

3. Очередь поставок

Пакет Состав Играбельный результат Зависит от
F1. Core Gameplay — стартовый сектор Навигация, бой, сохранения, награды, спавнеры, оружие, три арены, магазин, минимальные настройки/обучение, управление фичами Полный цикл первых трёх арен с семью моделями оружия, повторным фармом и магазином; первый Android-тест Существующие заготовки и решения D01–D06
F2. Оборудование Двигатель, ПВО, РЭБ: добыча, экипировка, уровни, эволюция, пассивы Рабочие сборки с одним согласованным предметом каждой категории F1
F3. Задания и сюжет Общие условия, ручные награды, диалоги, объекты, десять квестов Первые три арены имеют завершённую сюжетную цепочку; бой и карта работают независимо от неё F1; F2 — только для заданий на предметы
F4. Ингредиенты и дерево Первый Scrap, десять ингредиентов, пять страниц с согласованным стартовым набором узлов Можно добывать доступные ресурсы и осмысленно развивать танк через дерево F1; дополнительные зависимости отдельных узлов — по их эффектам
F5. Pass Постоянные пассы, 25 задач, бесплатные и покупаемые награды Несколько пассов ведут независимый прогресс, покупки и получение восстановимы F1 и общие условия/награды из F3; сюжетная цепочка не обязательна
F6. Core Gameplay — полный сектор Поэтапное расширение карты, арсенала и врагов до 20 локаций Каждая выпущенная ветка целиком проходима, итог — весь сектор F1; интеграции F2–F5 включаются только при готовности
F7. Core Gameplay — сервисы и выпуск Аккаунт, уведомления, поддержка, завершение обучения/настроек, оптимизация и выпуск Android-версия с готовыми выбранными сервисами и пройденной ручной приёмкой Рабочий сектор выбранного объёма; сервисы не блокируют локальный прогресс

Это последовательность интеграции. Художник готовит следующие пакеты параллельно. F3 и F4 не зависят друг от друга; F5 можно разрабатывать после общих условий и наград, не ожидая всех десяти сюжетных квестов. Полный набор 60 предметов не является условием начала F3–F7.

4. F1 — Core Gameplay: первые три арены

F1.0. Принять текущую основу

  • [ ] UI-ICON-GENERATOR (feature): автоматическая генерация 101 иконки пушек и предметов из снимков соответствующих моделей в ракурсе три четверти, импорт и привязка по ID. Требования и приёмка: реестр иконок UI.
  • [ ] Сверить текущую схему JSON, цепочку миграций и реальные точки владения системами с последней документацией. Сохранить существующие профили и стабильные ID.
  • [ ] Пройти существующие ручные чек-листы запуска, UI, экипировки и боя. Найденные отклонения от уже принятого поведения оформить как отдельные bugfix; реализацию нового поведения — как feature.
  • [ ] Убедиться, что Boot загружает последнюю успешно загруженную локацию, новый профиль начинает в A01 с одной K-W1 «Основой» и двумя пустыми башнями.
  • [ ] Проверить путь HUD → панель → вложенный попап → возврат к источнику → тот же бой. Меню не заменяет сцену или танк, а пауза не останавливает анимации UI.
  • [ ] Зафиксировать рабочий Android-профиль сборки, тестовые устройства и целевые бюджеты FPS/памяти/времени загрузки. Числовые бюджеты согласовать до оптимизации.

Результат: воспроизводимый исходный прототип и список конкретных оставшихся задач. Эта проверка не считается завершением F1 и не открывает игровой тест.

F1.1. Завершить одну арену с базовым боем

  • [ ] Выбрать компоновку A01: доработка нынешнего TestCity либо перенос веб-плана с каналом. Сохранить ID сцены и миссии. Районы использовать как модули одной локации.
  • [ ] Авторить безопасный бункер, маршруты, границы, препятствия и точки боёв. Проверить доступность всей игровой области, ширину проходов и разворот танка; убрать временное ограничение движения там, где оно отрезает контент.
  • [ ] Обеспечить физическое блокирование танка окружением и обычными наземными врагами. Само столкновение не наносит урон; для контактной атаки нужен отдельный признак врага.
  • [ ] Реализовать движение врагов по пригодным маршрутам без застревания в городской застройке. Конкретный способ навигации выбрать при реализации с учётом ECS и бюджета Android.
  • [ ] Подключить настоящие атаки четырёх типов A01: пять отдельных стрелков в группе, пикап, фургон с боковой стрельбой без высадки, стрелок за укрытием. Временный одинаковый ближний бой всех заглушек не является итогом.
  • [ ] Завершить попадания, смерть и смену целей, препятствия, полоски HP и читаемость атак. Полоска врага показывает принятые данные здоровья, уязвимости и награды; отдельный информационный попап врага не добавляется.
  • [ ] Заменить временную смерть «подождать 3 секунды и восстановить весь бой»: сразу начинается подъём из бункера, HP = 100% текущего максимума, атакующие теряют игрока, вражеские снаряды/опасные зоны удаляются. Награды и спавнеры не сбрасываются, отдельной неуязвимости нет.

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

F1.2. Подключить постоянный рост, боевые правила и награды

  • [ ] Ввести конфигурации атак, защиты и наград отдельно от внешнего вида. Тип атаки, уязвимость врага и тип боссовой наградной пушки — независимые поля.
  • [ ] Начислять постоянную характеристику за гибель врага. Увеличение максимального HP наградой добавляет столько же текущего HP. Награда начисляется один раз, выгрузка врага не считается гибелью.
  • [ ] Реализовать пять типов урона и индивидуальные нейтральные профили, слабости, сопротивления и иммунитеты. A01-пехота имеет огненную слабость и кинетический ×1; первая арена проходима «Основой».
  • [ ] Подключить общую + типовую броню, пробитие, крит, уклонение с уменьшением на величину блока. Сохранить порядок: крит → профиль типа → броня → блок при уклонении. Коэффициенты и формула брони остаются балансом.
  • [ ] Соблюдать бюджет атаки из каталога: абсолютная прибавка один раз на цикл; каждый снаряд очереди — отдельный цикл; площадь не делит урон между целями; общие и типовые процентные прибавки перемножаются, включая прибавки внутри категории. У смешанной атаки общий абсолютный бонус получает только основной компонент.
  • [ ] Сделать необходимые первым трём аренам очереди, снаряды, площади, химические/огненные зоны, DoT и контроль. Расширенные паттерны добавлять вместе с использующим их контентом, а не ради отдельного технического полигона.
  • [ ] Фиксировать параметры атакующего при создании снаряда/зоны/DoT; защиту цели читать при попадании. Снятие модели не удаляет уже созданные эффекты.
  • [ ] Соблюдать правила независимых DoT от разных пушек, обновления эффекта той же пушкой и отдельных лимитов; зоны одной пушки складывают урон. Замедления суммируются до индивидуального лимита, повторное оглушение действующей оглушённой цели игнорируется.
  • [ ] Для нужных составов реализовать самоподрыв и взрывы при смерти с цепными реакциями: собственный тип каждого взрыва, обычная награда и одно событие гибели на цель.
  • [ ] Сделать общий контейнер Reward и единый способ применения награды с ID операции. Боевые награды автоматические; попап не является повторной выдачей. Небольшие награды не прерывают каждое убийство модальным окном.
  • [ ] Подключить попап наград с карточками сверху и разными форматами абсолютных величин, процентов и процентных пунктов; косметика анимации может дорабатываться без изменения операции выдачи.
  • [ ] Добавить в профиль характеристики и журнал необходимых операций; новая версия, миграция, примеры старых сохранений и recovery обязательны.

Результат внутренней сборки: бой приносит постоянный рост, он сохраняется после смерти и перезапуска; возобновление операции не дублирует награду.

F1.3. Спавнеры, три босса и развитие оружия

  • [ ] Перенести поведение спавнеров по эталону WalkingCastles из progression.md: живой состав группы, активация рядом, выгрузка вдали, перезарядка после гибели всей группы.
  • [ ] Сохранять живой состав и UTC-окончание таймера. Не сохранять точные позиции/HP восстановленных врагов без нового решения. Переходы, смерть и загрузка не сбрасывают источники.
  • [ ] Реализовать повторяемые, суточные, одноразовые и окончательно исчерпаемые источники. Источники копий пушек неисчерпаемы; для обязательных заданий нужны неисчерпаемые подходящие цели.
  • [ ] Вне игры только истекают таймеры: никаких автоматических убийств, характеристик, ингредиентов, копий или прогресса задач. Временный час перезарядки босса держать в конфигурации до балансировки.
  • [ ] Подключить A01-B1 → K-W1, B2 → K-W2, B3 → C-W1 + открытие A02. Каждая повторная победа даёт одну копию своей модели. На боссе и игроке используется одна модель наградного оружия.
  • [ ] Оставить стартовых боссов простыми: обычное движение/стрельба B1/B2, неподвижная химическая база B3; без фаз, высадок, подкреплений и эволюционных активных атак.
  • [ ] Привязать отдельные параметры оружия к его ID и всем трём башням; базовая стрельба моделей должна различаться. Сохранить запрет одного ID в двух башнях и защиту последней установленной пушки.
  • [ ] Завершить арсенал: в списке только свободные модели, копии накапливаются в одной записи; обмен/перенос/отмена drag, сортировка, информационный попап, уровни и скины сохраняются.
  • [ ] Сделать ручную эволюцию пушки: первая цена 100 уровней, 150 → 50, одна операция на нажатие, L=0 допустим, T не уменьшается. Усиление от полученных копий не теряется при расходе уровней; формулу ранга согласовать.
  • [ ] Подключить активные способности выпущенных пушек после первой эволюции: 0–3 кнопки, каждое применение требует нового нажатия, нет цели — нет cooldown, расходуемого ресурса нет.
  • [ ] Хранить cooldown по модели: снятие/установка не сбрасывают его, во время снятия он продолжает истекать; смерть/смена локации сбрасывают открытые способности до готовности, эволюция — способность своей модели. Согласовать часы cooldown относительно игровой паузы и проверить это явно.
  • [ ] Цвет и частицы эволюционировавшего оружия меняются; бесконечные ранги используют конечный согласованный набор визуальных вариантов.
  • [ ] Ввести миграции боссов, источников, таймеров и эволюций без повторного проигрывания событий наград.

Результат внутренней сборки: у одной локации замкнутый цикл «бой → боссы → копии → сборка → эволюция → способность → повторный фарм» с постоянным прогрессом.

F1.4. Три арены, карта, магазин и первый Android-тест

  • [ ] Полностью собрать A02 «Алхимические болота» и A03 «Фронт терний»: маршруты, безопасные бункеры, рабочие противники и по три босса, а не маленькие сцены-заглушки.
  • [ ] Подключить первые семь моделей: K-W1, K-W2, C-W1, C-W2, F-W1, F-W2, K-W3. Утвердить неназначенные награды A02-B1 и A03-B1 без повторного источника C-W1/F-W1. Если выбраны предметы, F2 становится зависимостью этой части поставки либо выбирается другая согласованная награда.
  • [ ] Реализовать настоящее открытие 1 → 2 → 3 и отметку прохождения по третьему боссу. Сюжет не блокирует карту; победа не заставляет покинуть арену.
  • [ ] Поддержать полный граф карты и альтернативные входы в данных. Проверить развилку 3 → {4,5} и правило «4 ИЛИ 5 → 12» отдельными техническими конфигурациями. В обычной сборке будущие миссии показывать как ещё не выпущенный контент, без рабочей кнопки запуска заглушек; заработанное право доступа хранить.
  • [ ] Отключить navigationPreview в обычном профиле. Брифинг, загрузка, отмена/ошибка, возврат и сохранение новой текущей локации работают согласованно; ID фиксируется только после успешной загрузки.
  • [ ] Подключить функциональную миникарту HUD: геометрию доступной области и маркеры игрока, врагов/боссов и нужных целей. Использовать реальные данные текущей локации, переиспользуемые буферы и обновление по изменениям; демонстрационная картинка не считается готовой миникартой.
  • [ ] Выбрать Android-магазин/канал тестирования и минимальный ассортимент. Определить, какие товары и валюты разрешены существующим дизайном: магазин не должен создавать второй источник оружия. Кристаллы-валюта и ингредиент Crystal имеют разные ID.
  • [ ] Реализовать каталог, цены из платёжной среды, запуск/отмену/ожидание/ошибку покупки, подтверждение и выдачу без дублей, восстановление подтверждённых прав. Сначала проверка в тестовой платёжной среде выбранного Android-магазина.
  • [ ] Сохранить незавершённые покупки и права. Повторный callback, перезапуск и восстановление не дают повторной награды; отключение фичи не обрывает уже начатую подтверждённую операцию.
  • [ ] Подключить минимальные настройки и обучение движению, стрельбе, боссовым наградам, сборке и меню; гость играет без входа, интернет не требуется локальному сохранению.
  • [ ] Ввести и принять реестр фич/граф зависимостей и резервный профиль выключенного Core Gameplay. Проверять циклы/неизвестные ID/конфликты до применения, сохранять последнюю рабочую конфигурацию.
  • [ ] Реализовать локальное стабильное A/B-назначение по playerId и версии эксперимента, приоритет общего выключателя/зависимостей, отдельное открытие по прогрессу. Резервная основа сохраняет данные отключённых фич. Реальный эксперимент запускается только после готовности аналитики и критериев эксперимента.
  • [ ] Подключить обязательную аналитику готовых действий: сессии, входы/выходы локации, попытки боссов, смерти, гибели/награды, открытия, сборки, улучшения/эволюции/способности, покупки и выдачи. Остальные события добавляются вместе с F2–F5 по реестру событий.
  • [ ] На Android вручную пройти новый профиль до A03 без дерева, предметов, сюжета и Pass, затем повторный фарм, перезапуск и покупку/восстановление в тестовой среде. Прогресс не теряется при сворачивании приложения.

F1 готова: три арены проходимы; семь пушек можно получить, развивать и использовать; повторные источники и сохранение работают; магазин завершает тестовую покупку и восстановление. Сборка пригодна для первого игрового теста. Незавершённые дополнительные системы недоступны игроку.

5. F2 — Оборудование: три осмысленных слота

Зависимость: Core Gameplay. Первый объём — один согласованный двигатель, один ПВО и один РЭБ. Все 60 предложенных моделей не требуются этому этапу.

  • [ ] Выбрать три модели, базовые эффекты, пассивы эволюции, стоимость и реальные доступные источники. ENG-I1 «Импульсный двигатель» закреплён за A05-B1: не переносить его первую выдачу в A01–A03 ради теста. До готовности A05 использовать согласованные другие модели/источники; техническая выдача через инструменты не заменяет игровой источник в принятой поставке.
  • [ ] Ввести конфигурации параметров, владение, выдачу копий и применение бонусов; несколько источников предмета разрешены, копии повышают общую модель.
  • [ ] Довести существующие три типовых слота и инвентарь: замена, снятие, несовместимый слот, информационный попап, сохранение сборки.
  • [ ] Реализовать двигатель, модификацию атак ПВО и воздействие РЭБ на врагов. Сразу подключить по одному полному контентному примеру с собственным игровым назначением.
  • [ ] Реализовать ручную эволюцию без максимального ранга: временная цена 100 уровней, остаток вплоть до нуля, новые пассивы по конфигу. Бонусы за уровни пересчитываются по текущему остатку, ранг даёт отдельный скачок мощности. Не копировать правило сохранения усиления оружия на предметы.
  • [ ] Пассивы срабатывают автоматически без кнопки. Эволюция предмета не меняет его цвет/эффекты; VFX самого игрового срабатывания возможен по согласованному эффекту.
  • [ ] Сохранить cooldown снятой модели; смерть/переход/эволюция сбрасывают соответствующие cooldown. Уже созданные снаряды и зоны продолжают действовать со своими параметрами.
  • [ ] При изменении максимального HP предметом сохранить абсолютное текущее HP и ограничить новым максимумом; это не лечение как награда максимальным HP за убийство.
  • [ ] Подключить флаги оборудования по принятому реестру, каскад, сохранение отключённых данных, резервные боссовые награды. Урон пассивов передавать в общую атрибуцию способностей.
  • [ ] Дополнить профиль, миграции, аналитику получения/экипировки/развития; вручную проверить замену, повторную выдачу, смерть и перезапуск.

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

6. F3 — Задания и первые десять сюжетных квестов

Зависимость: Core Gameplay; сюжет строится поверх общих условий/наград. Оборудование требуется только конкретным задачам, которые его используют.

  • [ ] Создать общие условия и счётчики: гибели по виду/категории/роли/локации, боссы, прохождение, фактический урон, посещение, взаимодействие, составные цели. Одно событие продвигает все подходящие активные задачи ровно один раз в каждой.
  • [ ] Различить «на любой из списка» и «на каждой из списка». Валидировать доступность условий при выбранных фичах и открытых локациях.
  • [ ] Валидировать неисчерпаемый источник каждого требуемого типа цели с учётом локационных ограничений. Нельзя выпускать задачу, чей единственный источник окончательно исчерпывается; не заменять её случайно по ходу игры.
  • [ ] Реализовать атрибуцию: смертельный тип определяет типовое убийство; урон способностей оружия и предметов суммируется по цели, порог — 20% её максимального HP, учитывается фактически снятое HP после защиты без overkill. Урон чужих цепных взрывов не добавляется в урон способности.
  • [ ] Разделить выполнение и ручное получение награды. Для сюжетной цепочки следующий квест открывается только после получения награды предыдущего. Боевые копии от босса не выдаются повторно через награду квеста.
  • [ ] Реализовать журнал, карточку задачи, маркеры, начальные/итоговые радиодиалоги, портреты Веры, Крама и Рудина. Диалоги ставят бой на паузу и безопасно возвращают игрока к источнику.
  • [ ] Реализовать сохранённые сюжетные объекты: находки, разрушенные цели, взаимодействия рядом, зоны удержания, дополнительный контент квестов. Отдельно согласовать доступность объектов квеста №9 при возврате.
  • [ ] Подключить десять заданий: 01–04 на A01, 05–07 на A02, 08/10 на A03, 09 на трёх уже открытых локациях. Количества и длительности оставить конфигурацией.
  • [ ] Устранить старые дубли оружия в текстах квестов 05/08, согласовать спорные взаимодействия и внешний вид контейнера B3 с актуальной стационарной базой.
  • [ ] Поддержать пять универсальных типов как расширяемые шаблоны. Охота, поиск, саботаж и удержание используются первым контентом; сопровождение/эвакуацию с движущейся союзной машиной подключать отдельной законченной квестовой поставкой после согласования маршрута, провала и восстановления. Не выдавать её за готовую по наличию текста.
  • [ ] Сохранить частичные этапы, найденное и вручную полученные награды; смерть и выход не сбрасывают сюжет. Повторное посещение не запускает завершённую одноразовую цепочку заново.
  • [ ] Добавить миграции, флаги общих задач/сюжета/диалогов/объектов, аналитику выполнения и получения. При отключении несовместимых систем заранее подготовить выполнимые задачи либо приостановить их по утверждённому правилу.

F3 готова: десять квестов можно пройти и вручную получить награды без потери этапов при смерти/переходах. Квест №9 использует возврат на открытые арены без повторного обязательного убийства всех боссов. Прохождение карты не зависит от получения сюжетных наград. Обработчики условий/наград пригодны для Pass независимо от сюжетных диалогов.

7. F4 — Ингредиенты и дерево прокачки

Зависимость: Core Gameplay → ингредиенты → дерево → страницы. Дополнительные зависимости узлов определяются их действием, а не принадлежностью странице.

  • [ ] Назначить конкретного босса Фронта терний и количество первого Scrap. Это разовая стартовая выдача без покупки unlock и без требования полного прохождения A03.
  • [ ] Первое получение Scrap одновременно открывает ресурс, дерево, экраны и кнопки. Устранить противоречащую старую формулировку «только после прохождения третьей арены».
  • [ ] Реализовать 10 стабильных ID: Scrap, Alloy, Gear, Powder, Circuit, Crystal, Reactor Cell, Energy Core, Ancient Component, Prototype Core. Закрытый ингредиент имеет drop=0.
  • [ ] Отдельно начислять случайный ингредиент и гарантированную характеристику за гибель. Подбор с земли не нужен.
  • [ ] Реализовать последовательное открытие добычи за уже доступные ресурсы и проверить отсутствие циклических требований; дальнейший drop идёт только из подходящих конфигураций врагов.
  • [ ] Утвердить минимальный полезный набор узлов и цен для пяти страниц Damage, Defense, Mobility, Weapon, Special. Special включает только утверждённые эффекты; примеры Dash/Jump/Shield не становятся задачами разработки автоматически.
  • [ ] Сделать данные узла: ID, зависимости, максимальные/повторяемые уровни по дизайну, цена, эффект, условия фич и контента. Проверять совместимость эффекта с боем и применимым оружием.
  • [ ] Подключить пять страниц, состояния узлов и связей, кошелёк ресурсов, недостающие требования и предпросмотр. Пустая страница без утверждённых узлов не считается реализованной; её не показывать как готовую.
  • [ ] Покупать узел одной операцией: повторно проверить цену/условия, списать, применить, записать. Повторное нажатие и перезапуск не дублируют покупку/бонус.
  • [ ] Добавить сохранение, миграции, аналитику добычи/unlock/покупок; отключение страницы сохраняет купленное и ресурсы, приостанавливает бонусы/покупки без автоматического возврата цены.

F4 готова: из обычного прогресса можно получить Scrap, открыть дерево, добыть следующие разрешённые ресурсы и купить работающие узлы. Первые три арены остаются проходимы без дерева. Отключение дерева сохраняет игру и весь купленный прогресс.

8. F5 — Постоянные баттл пассы

Зависимость: pass → tasks.rewards → tasks.conditions → core.gameplay. Магазин уже работает в Core Gameplay. Бесплатная и платная части имеют один флаг; купленное право — отдельные данные конкретного пасса.

  • [ ] Утвердить группы локаций, каталог, условия открытия, 25 задач каждого пасса и обе награды за каждую. Для проверки одновременного прогресса подготовить минимум два пасса; это предлагаемая минимальная поставка.
  • [ ] Начать с шести основных шаблонов из спецификации: любые враги, конкретный вид, категория, элитные, боссы, прохождение. Расширенные условия подключать только с готовыми обработчиками и доступным контентом.
  • [ ] Считать только текущую задачу каждого пасса; следующее задание открывается при выполнении условий, без ожидания ручной награды. Счётчики разных пассов независимы.
  • [ ] Поддержать отдельное получение free/paid, накопленные неполученные награды и «забрать всё», если оставляем его в первой версии UI. Операции выдачи идемпотентны.
  • [ ] Покупка добавляет права на платные награды уже завершённых и будущих задач; бесплатный прогресс не сбрасывается. Пассы постоянные, без срока окончания.
  • [ ] Использовать готовые платежи Android, подтверждение и восстановление. Не продавать новые модели пушек в обход единственных боссовых источников.
  • [ ] Довести экран по Battle Pass v3: текущая задача, две дорожки, состояния закрыто/в процессе/можно забрать/получено, переключение пассов, корректные действия владельца и невладельца.
  • [ ] Валидировать выполнимость задач при наборе фич, доступных локациях, способностях и источниках. Подготовить альтернативные задания, где зависимость необязательна.
  • [ ] Утвердить обращение с оплаченными правами при отключении: исключать владельцев из эксперимента либо обеспечить получение оплаченного через базовый интерфейс прав. Не выбирать скрытие прав как молчаливый вариант.
  • [ ] Добавить миграции, события прогресса/claims/покупки/восстановления и проверку выключения Pass: магазин работает, предложения пассов недоступны, данные и права сохранены.
  • [ ] Реальный A/B запускать только после аналитики, основной метрики и условий остановки; готовность A/B-инфраструктуры не требует немедленного эксперимента с платежами.

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

9. F6 — Core Gameplay: расширение до полного сектора

Не строить все 17 оставшихся после F1 локаций одной технической задачей. Каждая поставка ниже содержит полноценные сцены, маршруты, бункеры, врагов, три босса на арену, награды, необходимое оружие и готовое оформление. Связанные механики окружения пока предложения: утвердить их до реализации и финального заказа арта.

Поставка Локации Зачем такая группа
F6.1. Первая развилка 4 «Броневой завод», 5 «Питомник войны», 12 «Утопленная лаборатория» Завод и питомник доступны независимо; каждый открывает лабораторию. Подготовить лабораторию одновременно с родителями, чтобы в выпущенной ветке не было запуска заглушки
F6.2. Продолжения обеих ветвей 6 «Рунический аэродром», 7 «Пепельный фронт», 13 «Разорванный виадук», 14 «Пепельная кальдера» Проверить независимые пути 5→6→7 и 12→13→14; ранний виадук не требует ветки аэродрома
F6.3. Замыкание длинной ветки 8 «Башни грозы», 9 «Железная столица», 10 «Кристаллическая цитадель», 11 «Беззвучный собор» Ввести взрывное оружие перед A10, замкнуть 11→12 без повторного открытия/сброса уже пройденной лаборатории
F6.4. Биомеханический фронт 15 «Кровавый арсенал», 16 «Сад плоти», 17 «Фиолетовый горизонт» Развить вторую ветку после A14 и её механики/оружие
F6.5. Финал сектора 18 «Обсерватория без неба», 19 «Врата пепла», 20 «Сердце разлома» Завершить путь к финальному боссу и X-W7; арена 21 не появляется

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

Для каждой поставки:

  • [ ] Согласовать карточки боссов и недостающих пушек; общий объём — 60 боссов и 41 уникальная пушка, из которых у 26 ещё нет полной числовой карточки. Переиспользование модели/рига допустимо при читаемой индивидуальности.
  • [ ] Настроить источники предметов и неназначенные награды B1, сохраняя единственное место фарма каждой пушки. A05-B1 выдаёт ENG-I1 «Импульсный двигатель».
  • [ ] Подключить необходимые признаки матрицы: медленные/быстрые, неподвижные пассивные, взрыв при смерти, самоподрыв, лёт, прыжок, инерционное качение. Дополнительную поддержку/обход/залпы вводить вместе с конкретным врагом.
  • [ ] Реализовать выбранную опасность биома с предупреждением, видимыми фазами, безопасным ответом игрока и восстановлением после смерти/загрузки. Магия и порталы не вводят шестой тип урона.
  • [ ] Проверить входные сборки на каждой ветке: награда третьего босса готовит следующий тип; обязательный босс не требует оружия из собственной награды. Ранняя A12 проходима через питомник без C-W3; A13 — без прохождения аэродрома.
  • [ ] Увеличивать коллекцию предметов законченными тройками/наборами только после выбора их эффектов. Не считать все 60 предложений обязательным уникальным игровым контентом без согласования.
  • [ ] Подключить принятые повторные атаки и визуальное снижение давления после освобождения. Конкретную модель фронта согласовать отдельно; обычный респавн не зависит от сюжетного оправдания.
  • [ ] Проверить брифинг, маркеры/связи карты, новые права доступа, боссовые уведомления, сохранения и миграции; старые профили не теряют уже открытые ветки.
  • [ ] Пройти каждую выпущенную ветку обычным прогрессом и проверить стабильность боя/памяти на Android с готовыми моделями и эффектами.

F6 готова: доступны и проходимы 20 полноценных локаций по графу ниже; весь арсенал имеет рабочее применение и источник, конечные источники не создают тупиков. Финальная награда сохраняется, фарм открытых локаций продолжается.

1 → 2 → 3 → {4, 5}
4 → 12
5 → {6, 12}
6 → 7 → 8 → 9 → 10 → 11 → 12
12 → 13 → 14 → 15 → 16 → 17 → 18 → 19 → 20

Для входа в 12 достаточно любого из 4, 5 или позднее 11. Номера — ID, а не требование пройти все меньшие номера.

10. F7 — Core Gameplay: сервисы и выпуск Android

Минимальные настройки и обучение уже обязательны в F1. Этот пакет завершает выбранные интеграции и выпуск; работа над производительностью, сохранением и стабильностью идёт на всех этапах.

  • [ ] Выбрать поставщика аккаунта и сделать гостевой вход/привязку без обязательной авторизации перед первым боем. Стабильный локальный playerId сохраняется.
  • [ ] Завершить настройки, обучение доступным механикам, пропуск/повтор через помощь, восстановление состояния подсказок после перезапуска.
  • [ ] Выбрать необходимые уведомления; запрос/отказ в разрешении и недоступность сервиса не блокируют игру. Не включать обещания офлайн-добычи.
  • [ ] Подключить помощь/поддержку и диагностику, которую игрок отправляет сам. Состав диагностических данных определить перед интеграцией.
  • [ ] Облачное хранение/синхронизацию не включать в этот объём без отдельного решения: источник прогресса — локальный версионный JSON.
  • [ ] Оптимизировать реальные тяжёлые сценарии: активные группы, снаряды, VFX, UI-списки, переходы и удерживаемые Addressables. Изменение качества не должно менять расчёты боя.
  • [ ] Довести поведение при сворачивании, потере фокуса, прерывании покупки/записи, нехватке места, повторном запуске, долгой сессии и переключении локаций.
  • [ ] Проверить поддерживаемые миграции от каждого старого формата, backup, повреждённый/обрезанный JSON, будущую версию и неизвестные ID; ошибка не создаёт молча новый профиль.
  • [ ] Пройти обязательную аналитику, повторную доставку событий/платежей, выключение фич и сохранность прав; завершить платформенные настройки и материалы выбранного канала распространения.
  • [ ] Подготовить итоговый Android-пакет и карточку версии: принятый контент, оставшиеся ограничения, выполненные ручные проверки и известные проблемы.

F7 готова: пользователь вручную принял Android-сборку выбранного объёма; сервисы работают в заявленном составе, отказ или недоступность не мешают локальной игре и сохранению.

11. Решения до соответствующего этапа

Таблица не блокирует составление плана и независимую работу. Решения принимаются до реализации затронутой механики; предложения не выдаются за уже утверждённые правила.

ID До какой работы Требуется решить
D01 F1.0 Классы Android-устройств и бюджеты производительности; первый тест Android уже выбран
D02 F1.1 Окончательная основа A01: нынешний TestCity или веб-план, расположение безопасного бункера и критерии проходимости
D03 F1.2 Рабочие числа боя и роста, формула брони, лимиты эффектов, цели по темпу первых боссов; все черновые коэффициенты явно помечать
D04 F1.3 Активная способность K-W1: сверхзаряд / форсаж огня / пробивной / ударный снаряд; дальнейшие цены эволюции и рост мощности
D05 F1.4 Награды A02-B1/A03-B1 без повторных источников пушек; минимальные товары/валюты, Android-магазин и тестовая платёжная среда
D06 Управление фичами F1 Утвердить предложенные ID/зависимости и резервный профиль выключенного Core Gameplay; момент применения новой конфигурации, правила завершения эффектов и покупок
D07 F2 Первый предмет каждого слота, доступные источники, пассивы, параметры ранга, дальнейшая цена; замена A05-B1 в профиле без предметов
D08 F3 Конкретные квестовые награды/цели, доступность объектов №9, явное взаимодействие или исключение для ретранслятора №1, контейнер после стационарного B3
D09 F4 Босс и количество первого Scrap, дальнейшие таблицы добычи, наборы/цены узлов пяти страниц, особенно Special
D10 F5 Группы и число пассов, 25 целей/обе награды, товары, поведение оплаченных прав при отключении, метрики эксперимента
D11 Каждая F6.x Карточки следующих врагов/боссов/пушек, ранний баланс A12/A13, источники предметов, опасность биома и модель фронта
D12 F7 Провайдер аккаунта, уведомлений, поддержки и фактический объём сервисов; облако — только отдельным решением

Сроки и трудозатраты в днях не назначены: неизвестны состав команды, скорость производства контента и результаты приёмки прототипа. Оценивать пакеты после закрытия их решений и разбиения на задачи, отдельно от стоимости финального арта.

12. Расхождения документации, которые нужно закрыть

Расхождение Правило для плана / действие
Ранний flow использует C-W1 как стартовую пушку Актуальное начало — K-W1 и две пустые башни, C-W1 выдаёт A01-B3; старое описание привести к текущему арсеналу
ECS-прототип: смерть через 3 секунды со сбросом врагов; screens оставляет подбор задержки Целевое правило progression: подъём из бункера начинается сразу, прогресс/спавнеры сохраняются
Реестр фич говорит о дереве после прохождения A03 Профильный upgrade_tree_design: первый Scrap от босса A03 открывает дерево сразу, без отдельного требования полного прохождения
Квесты 05/08 выдают копии входных пушек Отменённые дубли: источники C-W1/F-W1 остаются прежними боссами; новые награды A02-B1/A03-B1 ещё назначить
Ранний раздел weapon-upgrades оставляет босса копий K-W1 неназначенным Позднее подтверждение и progression фиксируют A01-B1
Старый реестр не считает цену эволюции предмета утверждённой В актуальных уточнениях действует временная цена 100; окончательная формула следующих рангов ещё требует решения
Старые сводки сохранений описывают только местоположение и раннюю версию Последнее описание инвентаря указывает v4; перед первой реализацией сверить текущую схему, не откатывать её по старой сводке
Полная A01 в вебе и город Unity имеют разную компоновку Выбрать основу; числа 18 районов/676 размещений и 20 кварталов/571 экземпляр относятся к разным сборкам, их нельзя смешивать
25 позиций спавнеров и ориентир 40 групп Разные величины; отдельно спроектировать вместимость и состав источников
Иллюстрация Pass v3 и текущие UI-заглушки Использовать v3 для структуры состояний, актуальную серо-зелёно-чёрную палитру из procedural-ui; иллюстративные награды/цены не утверждают экономику

Обновление профильных документов включать в задачу соответствующей фичи. Эта таблица фиксирует расхождения, но сама не меняет исходные спецификации.

13. Критерии готовности каждой поставки

Проверки выполняет пользователь вручную; пока они не выполнены, пакет остаётся непроверенным. Компиляция и структурная проверка не заменяют игровую приёмку.

  • [ ] Полный цикл: новый профиль → текущая доступная арена → бой → награда → развитие → смерть/возрождение → панель/возврат → переход → перезапуск. Нет доступных кнопок, ведущих к незавершённым обязательным действиям.
  • [ ] Прогресс: новое и старое сохранение восстанавливаются; награда/списание/покупка не повторяются; прерывание записи оставляет восстановимую копию. Неизвестная будущая версия не затирается.
  • [ ] Совместимость: ранее выпущенные сборки танка, урон/темп/криты, летящие снаряды, cooldown, смерти, спавнеры, награды и открытия сохраняют свои договорённые правила, кроме явно принятого изменения.
  • [ ] Отключение: прямой и каскадный выключатели, A/B и открытие по прогрессу согласованы; данные выключенной фичи сохранены; нет недоступных обязательных целей или исчезнувших купленных прав.
  • [ ] Android: управление касанием, safe area, маленький/вытянутый экран, сворачивание, загрузки и согласованные бюджеты приняты на выбранных устройствах.
  • [ ] Передача: есть рабочая сборка, список затронутых core-файлов и причин, конкретные инварианты/ручной чек-лист, документация, миграции и честный статус каждой невыполненной проверки.

Технические ограничения всех задач: готовые префабы и явные ссылки; авторинг сцен/префабов/serialized assets через подключённый Unity Pipeline; весь текст UniText; игровая логика преимущественно в системах, без singleton и static mutable state; отсутствие временных managed-аллокаций в горячих путях; UI обновляет изменившиеся значения. Изменения C# завершаются recompile с ожиданием статуса и проверкой Console по инструкциям проекта.

14. Основные источники