Начать этап 3 настройками управления

This commit is contained in:
2026-08-18 14:44:30 +03:00
parent 80822b74b1
commit 44067abde3
12 changed files with 492 additions and 22 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ master tracks origin/master
- предметные задачи с acceptance criteria, приоритетами и зависимостями;
- уже подтверждённые кодом и QA элементы закрыты с причиной.
На 18 августа 2026 года в snapshot находятся 72 beads: 21 закрыт, 6 находятся в работе и 45 открыты. Эти числа нельзя трактовать как точный процент готовности, потому что в базе смешаны эпики, features и задачи разного размера.
На 18 августа 2026 года в snapshot находятся 72 beads: 22 закрыты, 6 находятся в работе и 44 открыты. Эти числа нельзя трактовать как точный процент готовности, потому что в базе смешаны эпики, features и задачи разного размера.
Текущий gate — `goon-game-milestone-vslice`. Инженерный кандидат этапа 2 собран; незакрытые gates включают `goon-game-human-playtest` и performance/repetition criteria `goon-game-regression-10`. Задачи этапа 3 можно начинать параллельно, не объявляя внешний playtest завершённым.
+5 -2
View File
@@ -6,7 +6,7 @@
## 1. Текущее состояние
Инженерная часть этапа 2 завершена и проект готов к параллельному старту этапа 3:
Инженерная часть этапа 2 завершена; этап 3 начат с настроек мобильного управления:
- реализованы 10 последовательных уровней;
- работают движение, прыжок и мобильное multitouch-управление;
@@ -18,6 +18,7 @@
- исправлено перекрытие `FREEZER` уровня 6, которое повторно убивало игрока на frozen stepping stone;
- тело, доставленное пилой на `PRESSURE` уровня 10, фиксируется после оседания и больше не соскальзывает с плиты;
- restart из промежуточного состояния уровня 10 очищает тела, сигналы, таймер и удерживаемый ввод;
- Settings screen сохраняет размер и opacity touch-controls и режим вибрации; три form-factor контракта и защита от повторного held-jump покрыты device-тестами;
- final integrated Android 16 matrix: 16/16 методов, 36 игровых выполнений, lifecycle и restart; wall time `9:32.496`;
- финальный debug APK проверен на Android 16: установка, холодный запуск, ZIP-структура и v1/v2-подписи корректны.
@@ -179,4 +180,6 @@ Performance-оговорка: исторический критерий этап
Инженерный scope этапа 2 закрыт: уровни 1–10 проходят intended route по три раза, уровень 8 имеет restart-free recovery, уровень 10 использует все три тела и сохраняет тело на lift-плите, а restart возвращает чистое состояние. Передаваемые результаты — обновлённый проект, проверенный APK и [`STAGE2_QA_REPORT.md`](STAGE2_QA_REPORT.md).
Следующая реализационная итерация — этап 3 (управление, интерфейс и доступность). Параллельно внешний QA должен выполнить `goon-game-human-playtest`: по две ручные сессии каждого уровня без подсказок разработчика. До получения этого протокола milestone Vertical Slice нельзя называть принятым внешними тестировщиками, хотя разработку этапа 3 можно начинать.
Этап 3 начат задачей `goon-game-controls-settings`: добавлены сохраняемые пресеты размера/opacity controls и вибрации, фактическое расширение touch target и защита от повторного прыжка при удержании. Проверки выполнены на 20:9, логическом 16:9 и tablet-sized экране; подробности находятся в [`STAGE3_CONTROLS_QA.md`](STAGE3_CONTROLS_QA.md). Следующие slices этапа 3 — accessibility, обучение/result screen и RU/EN локализация.
Параллельно внешний QA должен выполнить `goon-game-human-playtest`: по две ручные сессии каждого уровня без подсказок разработчика. До получения этого протокола milestone Vertical Slice нельзя называть принятым внешними тестировщиками.
+30
View File
@@ -0,0 +1,30 @@
# Stage 3 controls QA
Дата: 18 августа 2026 года. Сборка: `0.5.0-stage3-controls-debug` (`versionCode=6`). Активная Beads-задача: `goon-game-controls-settings`.
## Реализованный slice
- Settings screen доступен с level-select screen и возвращается назад системной кнопкой или кнопкой `Back`;
- control size: `Small` (`0.85×`), `Medium` (`1.0×`), `Large` (`1.2×`);
- control opacity: `Low` (`0.45`), `Medium` (`0.65`), `High` (`0.9`);
- vibration: `On`/`Off`; все игровые haptic events проходят через сохранённую настройку;
- размер одновременно меняет визуальный радиус и фактический touch target;
- значения сохраняются через отдельный versioned `SharedPreferences` store и загружаются новой Activity.
## TDD evidence
- RED: отсутствовал `ControlSettings`; unit-test не компилировался;
- GREEN: cycling и безопасные defaults size/opacity/vibration;
- RED: Android persistence contract не компилировался без public Settings surface;
- GREEN: реальные taps меняют три настройки, Activity recreation загружает `Large`/`High`/`Off`;
- device regression: точка вне `Medium`, но внутри `Large`, активирует production touch input;
- device regression: удерживаемый jump выполняется один раз и не срабатывает повторно после приземления.
## Form factors и регрессии
- 20:9 physical AVD (`2400×1080`, density `420`): Settings test `OK (3 tests)`;
- logical 16:9 (`1920×1080`): persistence/touch UI `OK (1 test)`;
- tablet-sized logical display (`2560×1600`, density `320`): persistence/touch UI `OK (1 test)`;
- existing lifecycle, clean restart, Level 5 three-run bot и Level 10 retained-body test: `OK (4 tests)`.
Логические display overrides проверяют масштабирование и hit mapping на одном Android 16 AVD; реальное tablet hardware остаётся частью последующего device-matrix этапа.