15 KiB
Текущий roadmap реализации Project Sacrifice
Этот документ описывает ближайшие работы относительно существующего vertical slice. Полный утверждённый GDD + TDD + production roadmap находится в DEVELOPMENT_PLAN.md.
Актуально на 18 августа 2026 года.
1. Текущее состояние
Проект находится на стадии проверенного vertical slice:
- реализованы 10 последовательных уровней;
- работают движение, прыжок и мобильное multitouch-управление;
- смерть не сбрасывает состояние уровня, тела остаются физическими объектами;
- реализованы шипы, пила, нажимные и временные кнопки, двери, движущиеся платформы, заморозка и электричество;
- сохраняются прогресс, лучшее время и минимальное число жертв;
- intended route всех уровней 1–10 защищён Android acceptance-ботами: каждый маршрут выполняется по три раза через production-ввод без прямого перемещения персонажа;
- blocker-softlock уровня 8 после истечения таймера устранён recovery relay и покрыт отдельным трёхкратным сценарием;
- исправлено перекрытие
FREEZERуровня 6, которое повторно убивало игрока на frozen stepping stone; - финальный debug APK проверен на Android 16: установка, холодный запуск, ZIP-структура и v1/v2-подписи корректны.
Главный текущий риск: автоматическая проходимость доказана, но ручная понятность и баланс этапа 2 ещё не подтверждены. Отдельно остаются гипотезы об альтернативных решениях уровня 2 и обходе frozen corpse на уровне 10.
2. Принципы разработки
- Сначала acceptance-тест, затем исправление уровня.
- Бот использует те же команды движения и прыжка, что и игрок, без прямого перемещения персонажа или подмены физики.
- Новый контент не добавляется, пока текущие 10 уровней не проходят обязательный регрессионный набор.
- Изменения физики проверяются на всех уровнях, потому что скорость, импульсы и коллизии являются общими.
- Debug APK используется для внутренней проверки; внешняя альфа собирается отдельной release-подписью.
Оценки ниже указаны в рабочих днях для одного Android-разработчика при доступности дизайнера и QA на проверках. Это ориентиры, а не календарные обещания.
3. Этапы
Этап 1. Боты проходимости для уровней 1–10 — P0, 4–6 дней
Задачи:
- выделить общий сценарный движок поверх существующего
LevelPlaytestBot.Driver; - добавить наблюдаемые состояния: положение и скорость игрока, опора, активные сигналы, состояние платформ и дверей;
- реализовать отдельный маршрут для каждого уровня;
- выдавать полезную диагностику таймаута: координаты, число смертей, тела, сигналы и последняя выполненная команда;
- запускать все сценарии одной Gradle-командой на эмуляторе;
- исключить случайные повторы как способ скрыть нестабильность.
Критерии завершения:
- уровни 1–10 проходят по три последовательных запуска;
- каждый сценарий использует предусмотренную механику уровня;
- один полный прогон укладывается в 5 минут;
- падение теста показывает этап и состояние, на котором бот остановился.
Этап 2. Исправление уровней и баланс — P0, 4–7 дней
Задачи:
- исправить найденные ботами тупики и нестабильные взаимодействия;
- увеличить допуски у прыжков и зон срабатывания, не убирая смысл головоломок;
- проверить, что тела не выталкиваются с плит и не застревают в дверях;
- выровнять кривую сложности: знакомство, закрепление, комбинация механик;
- уточнить подсказки и целевые показатели времени/жертв;
- провести минимум две ручные сессии на каждом уровне.
Критерии завершения:
10/10 passedв автоматическом прогоне;- каждый уровень впервые понимается тестировщиком не более чем за три попытки либо содержит достаточную подсказку;
- restart всегда возвращает чистое начальное состояние;
- после смерти невозможно потерять обязательный объект без возможности перезапуска.
Этап 3. Управление, интерфейс и доступность — P1, 3–5 дней
Задачи:
- добавить настройку размера и прозрачности экранных кнопок;
- улучшить зоны multitouch и визуальную обратную связь на нажатия;
- добавить короткое обучение без блокирующих длинных окон;
- доработать экран завершения: время, жертвы, лучший результат и следующая цель;
- локализовать интерфейс и подсказки на русский и английский;
- проверить контраст, масштаб текста, вибрацию и режим без вибрации;
- корректно обрабатывать pause/resume и системную кнопку Back.
Критерии завершения:
- игра полностью управляется на телефоне без внешней клавиатуры;
- элементы управления не перекрывают игровую информацию на поддерживаемых экранах;
- смена языка и настроек не сбрасывает прогресс;
- UI проверен минимум на форматах 16:9, 20:9 и планшете.
Этап 4. Контентная архитектура и инструменты — P1, 5–8 дней
Задачи:
- перенести описания уровней из Java-констант в валидируемый JSON-формат;
- добавить загрузчик с проверкой геометрии, сигналов и обязательных объектов;
- создать простой desktop-скрипт предпросмотра или экспортёр координат;
- закрепить версию физики и формата уровня;
- сохранять воспроизводимый журнал команд бота для расследования регрессий.
Критерии завершения:
- геометрию и подсказки уровня можно изменить без перекомпиляции игрового кода;
- некорректный сигнал, дверь или объект отклоняется валидатором при сборке;
- все существующие уровни после миграции проходят тех же ботов.
Этап 5. Художественная и звуковая альфа — P1, 8–15 дней
Задачи:
- утвердить самостоятельный визуальный стиль, не копирующий коммерческий референс;
- заменить prototype-графику персонажа, опасностей, окружения и интерфейса;
- добавить анимации движения, смерти, respawn и реакции механизмов;
- добавить звуки управления, механизмов, результата и фоновую музыку;
- предусмотреть независимые настройки музыки, эффектов и вибрации;
- оптимизировать ресурсы для Android.
Критерии завершения:
- все игровые состояния визуально различимы без чтения внутренней логики;
- звук не является единственным источником обязательной информации;
- проект сохраняет стабильную частоту кадров на целевых устройствах.
Этап 6. Техническая стабилизация — P0 перед внешней альфой, 4–7 дней
Задачи:
- проверить Android 8–16 и устройства с 2–4 ГБ памяти;
- измерить frame time, память, запуск и размер APK;
- протестировать сворачивание, возврат, блокировку экрана и уничтожение Activity;
- добавить журналирование необработанных ошибок без персональных данных;
- проверить обновление приложения поверх предыдущей версии и сохранность прогресса;
- подготовить release build, отдельный application ID для тестового канала и закрыто хранимый keystore;
- сформировать APK для прямой установки и AAB для Google Play Internal Testing.
Критерии завершения:
- нет блокирующих падений, ANR и потери прогресса;
- 95-й перцентиль кадра соответствует целевым 60 FPS либо документированному минимуму 30 FPS на слабых устройствах;
- release APK/AAB подписан, устанавливается и запускается на чистом устройстве;
- debug-инструменты не попадают в публичную конфигурацию без необходимости.
Этап 7. Закрытая альфа — 1–2 итерации по 5–7 дней
Задачи:
- привлечь 20–30 тестировщиков разного игрового опыта;
- собирать по каждому уровню время, число смертей, restart и точку выхода;
- разделять дефекты на блокирующие, значимые и косметические;
- повторно проверять исправления ботами и ручным smoke-тестом;
- определить уровни с высоким процентом выхода или неверно понятой механикой.
Критерии завершения:
- 90% тестировщиков завершают уровни 1–5 без помощи разработчика;
- 70% завершают все 10 уровней;
- отсутствуют открытые блокирующие дефекты;
- все значимые дефекты имеют решение или явно принятое продуктовое решение.
4. Обязательный набор проверок каждого APK
Перед передачей тестировщикам должны выполняться:
testDebugUnitTest— математика, каталог и валидация уровней;lintDebug— Android Lint без ошибок;connectedDebugAndroidTest— боты уровней 1–10;- проверка APK через
unzip -t; - проверка package/version через
aapt2 dump badging; - проверка подписи через
apksigner verify; - установка поверх предыдущего билда и на чистое устройство;
- холодный запуск и проверка crash-буфера;
- ручной smoke-тест уровня 1 и одного сложного комбинированного уровня.
5. Текущая итерация
Этап 1 завершён автоматическим доказательством intended route уровней 1–10. Текущая итерация ограничивается этапом 2:
- выполнить полный integrated
10/10 passedперед каждым APK; - провести по две ручные сессии каждого уровня и зафиксировать попытки, restart и непонятные места;
- скорректировать допуски прыжков и подсказки только по наблюдаемым проблемам;
- проверить чистый restart из ключевых промежуточных состояний;
- закрыть или документировать гипотезы альтернативных решений уровней 2 и 10;
- не добавлять уровень 11 и новые механики до завершения критериев этапа 2.
Результатом итерации должны стать обновлённый исходный проект, проверенный APK, integrated bot report и протокол ручных игровых сессий.