tengri/Documentation/Roadmap.md

477 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# TengriPlatformer — Roadmap v2.0
> **Статус:** Этапы 1-12 завершены
> **Фокус:** Прототип уровня "Подвал" + полноценная система движения
> **Принцип:** Сначала базовое движение, потом механики уровня, потом полировка
---
## ✅ ЗАВЕРШЁННЫЕ ЭТАПЫ (1-12)
| # | Название | Статус |
|---|----------|--------|
| 1 | Инициализация проекта | ✅ |
| 2 | Debug HUD система | ✅ |
| 3 | Toast уведомления | ✅ |
| 4 | Камера система | ✅ |
| 5 | Детекция устройства ввода | ✅ |
| 6 | Enhanced Input настройка | ✅ |
| 7 | Базовое движение по земле | ✅ |
| 8 | Поворот персонажа | ✅ |
| 9 | Sweep collision | ✅ |
| 10 | Стены и углы (wall sliding, step-up) | ✅ |
| 11 | Ground snapping и склоны | ✅ |
| 12 | Fixed Timestep + Interpolation | ✅ |
---
# 🔴 ФАЗА 1: CORE MOVEMENT (Критический путь)
> Без этого нельзя тестировать ничего другое
---
## Этап 13: Система прыжков
**Цель:** Отзывчивое управление уровня лучших платформеров
**Блокирует:** ВСЕ механики уровня требуют прыжков
**Реализация:**
- Variable jump height (короткое/длинное нажатие)
- Air control с ограничениями и инерцией
- Coyote time (прыжок после покидания платформы, ~100-150ms)
- Jump buffering (ранние нажатия прыжка)
- Landing detection и recovery
**Критерии:**
- [ ] Точный контроль высоты прыжка
- [ ] Forgiving timing (coyote + buffer)
- [ ] Responsive но не overpowered air control
- [ ] Плавные transitions ground ↔ air
**Время:** ~4-6 часов
---
## Этап 14: Воздушная физика
**Цель:** Естественное поведение в воздухе
**Нужно для:** Качественный platforming feel
**Реализация:**
- Gravity curve (быстрее падение чем подъём)
- Terminal velocity
- Air resistance (опционально)
- Air-to-ground transition smoothing
- Landing impact (приседание при жёстком приземлении)
**Критерии:**
- [ ] Прыжок ощущается "сочно" (Mario-like arc)
- [ ] Плавные приземления
- [ ] Предсказуемая траектория
**Время:** ~3-4 часа
---
# 🟡 ФАЗА 2: LEVEL MECHANICS (Прототип "Подвал")
> Минимум для прохождения уровня от начала до конца
---
## Этап 15: Система подбора предметов
**Демо:** Подобрать камешек/кость, держать, положить
**Нужно для:** Бросок в свечу
**Реализация:**
- Pickup radius detection
- Inventory slot (1 предмет в руках)
- Hold/drop mechanics
- Visual attachment к персонажу
- Item data asset (вес, throwable flag)
**Критерии:**
- [ ] Подбор в радиусе ~100см
- [ ] Предмет визуально в руке
- [ ] Drop кладёт под ноги
**Время:** ~3-4 часа
---
## Этап 16: Система бросков
**Демо:** Кинуть камешек в свечу → свеча качается
**Нужно для:** Активация раскачивания
**Реализация:**
- Aim trajectory preview (параболическая линия)
- Throw force (зажатие = сильнее)
- Projectile physics
- Impact detection → события
- Throwable interface
**Критерии:**
- [ ] Траектория предсказуема
- [ ] Попадание триггерит события
- [ ] Можно подобрать снова
**Время:** ~4-5 часов
---
## Этап 17: Интерактивные объекты
**Демо:** Дёрнуть кольцо, открыть дверцу шкафа
**Нужно для:** Все механизмы уровня
**Реализация:**
- IInteractable interface
- Interaction prompt UI (E / кнопка геймпада)
- State machine (open/closed, on/off)
- Single-use vs reusable
- Audio/visual feedback
**Критерии:**
- [ ] Prompt появляется в радиусе
- [ ] Состояния сохраняются
- [ ] Работает keyboard + gamepad
**Время:** ~3-4 часа
---
## Этап 18: Физика качания (Pendulum)
**Демо:** Свеча качается, клетка качается синхронно
**Нужно для:** Побег из клетки, тарзанка
**Реализация:**
- Pendulum physics (угол, длина, затухание)
- Player-induced swing (нажатия в такт)
- Swing transfer (синхронизация объектов)
- Impact trigger (свеча → верёвка)
**Критерии:**
- [ ] Физика реалистична
- [ ] Раскачка интуитивна
- [ ] Объекты синхронизируются
**Время:** ~5-6 часов
---
## Этап 19: Система огня
**Демо:** Свеча поджигает верёвку → верёвка сгорает
**Нужно для:** Падение клетки
**Реализация:**
- Fire source component
- Flammable component
- Burn duration → destruction
- Visual fire effect (Niagara)
- Fire spread (опционально)
**Критерии:**
- [ ] Поджог требует контакта
- [ ] Горение → разрушение
- [ ] Визуально убедительно
**Время:** ~4-5 часов
---
## Этап 20: Система верёвки (Rope)
**Демо:** Накинуть верёвку на крюк, качнуться через котёл
**Нужно для:** Тарзанка
**Реализация:**
- Rope throw targeting
- Attach point detection
- Rope physics (длина, натяжение)
- Swing while attached (использует Pendulum)
- Dismount с сохранением momentum
**Критерии:**
- [ ] Верёвка цепляется за валидные точки
- [ ] Качание как pendulum
- [ ] Отпустить = сохранить скорость
**Время:** ~6-8 часов
---
## Этап 21: Система временных бафов
**Демо:** Выпить зелье → прыжок выше на 10 сек
**Нужно для:** Прыгучее зелье
**Реализация:**
- Buff data asset (тип, длительность, множитель)
- Active buffs container
- Buff UI (иконка + таймер)
- Stat modification
- Consumable integration
**Критерии:**
- [ ] Визуальный эффект на персонаже
- [ ] Таймер виден
- [ ] Эффект заканчивается плавно
**Время:** ~4-5 часов
---
## Этап 22: Головоломка с зеркалом
**Демо:** Шкаф невидим напрямую, виден в отражении
**Нужно для:** Шкаф с зельями
**Реализация:**
- View frustum check
- Mirror render target
- Conditional visibility
- "Blind interaction"
- Shimmer effect (намёк)
**Критерии:**
- [ ] Исчезает при прямом взгляде
- [ ] Виден в зеркале
- [ ] Можно взаимодействовать вслепую
**Время:** ~6-8 часов
---
## Этап 23: Складные механизмы
**Демо:** Дёрнуть кольцо → лестница разворачивается
**Нужно для:** Лестница к люку
**Реализация:**
- Deployable base class
- Trigger mechanisms (кольцо, бросок)
- Deployment animation
- Safety check (не придавить игрока)
**Критерии:**
- [ ] Активация от разных источников
- [ ] Плавная анимация
- [ ] Можно использовать после deployment
**Время:** ~4-5 часов
---
## Этап 24: Взбирание (Climbing)
**Демо:** Залезть по лестнице к люку
**Нужно для:** Финальный выход
**Реализация:**
- Climbable surface detection
- Climb state machine
- Climb movement (вверх/вниз)
- Dismount (вверху, внизу, в сторону)
**Критерии:**
- [ ] Автоцепляние к лестнице
- [ ] Плавное движение
- [ ] Выход наверху без рывков
**Время:** ~4-5 часов
---
# 🟢 ФАЗА 3: POLISH & ADVANCED MOVEMENT
> После играбельного прототипа
---
## Этап 25: Профессиональная камера
**Цель:** AAA-уровень камеры
**Реализация:**
- Camera lag и damping
- Look-ahead prediction
- Dead zone для микродвижений
- Collision avoidance (sphere trace)
- Character highlight когда за препятствием
**Критерии:**
- [ ] Нет рывков при старте/остановке
- [ ] Камера не проваливается в стены
- [ ] Плавные повороты
**Время:** ~5-6 часов
---
## Этап 26: Wall interactions
**Цель:** Продвинутые взаимодействия со стенами
**Реализация:**
- Wall jumping с momentum
- Wall sliding с контролем скорости
- Corner grabbing
- Ledge detection
**Критерии:**
- [ ] Responsive wall jump
- [ ] Smooth transitions wall ↔ ground ↔ air
**Время:** ~6-8 часов
---
## Этап 27: Специальные движения
**Цель:** Dash, ground pound, ledge grab
**Реализация:**
- Dash/dodge с i-frames
- Ground pound с area impact
- Ledge grabbing и climbing
- Slide/crouch
**Критерии:**
- [ ] Каждое движение impactful
- [ ] Smooth combinations
**Время:** ~6-8 часов
---
## Этап 28: Продвинутые поверхности
**Цель:** Разнообразие типов поверхностей
**Реализация:**
- Ice (скользкие)
- Conveyor belts
- Bouncy surfaces
- Sticky surfaces
**Критерии:**
- [ ] Каждый тип уникален
- [ ] Плавные переходы между типами
**Время:** ~5-6 часов
---
## Этап 29: Audio система
**Цель:** Звуковой feedback
**Реализация:**
- Footstep sounds (по типу поверхности)
- Jump/land sounds
- Interaction sounds
- Ambient audio
**Время:** ~4-5 часов
---
## Этап 30: Debug и профилирование
**Цель:** Инструменты для тонкой настройки
**Реализация:**
- Visual collision debugging
- Runtime tweakable parameters
- Performance metrics
- Replay system для детерминированности
**Время:** ~4-5 часов
---
## Этап 31: Edge cases и stress testing
**Цель:** Bullet-proof система
**Реализация:**
- Extreme velocity testing
- Complex geometry stress tests
- Memory leak detection
- NaN/infinity handling
**Время:** ~3-4 часа
---
## Этап 32: UX Polish
**Цель:** Commercial game feel
**Реализация:**
- Input buffering refinement
- Haptic feedback (gamepad)
- Visual effects (dust, particles)
- Accessibility options
**Время:** ~4-5 часов
---
# 🔵 ФАЗА 4: CONTENT
> После полировки движения
---
## Этап 33: Level transition
Переход люк → кухня
## Этап 34: Save/Checkpoint
Сохранение прогресса
## Этап 35: Второй уровень
Кухня первого этажа
---
## ЗАВИСИМОСТИ
```
ФАЗА 1 (Core Movement)
[13: Прыжки] ──► [14: Воздушная физика]
ФАЗА 2 (Level Mechanics)
├──► [15: Подбор] ──► [16: Броски] ───┐
│ │
├──► [17: Интерактивы] ───────────────┤
│ │
├──► [18: Качание] ──► [19: Огонь] ───┼──► КЛЕТКА
│ │ │
│ └──► [20: Верёвка] ──────────┼──► ТАРЗАНКА
│ │
├──► [21: Бафы] ──┬──► [22: Зеркало] ──┼──► ШКАФ
│ │ │
└──► [23: Механизмы] ──► [24: Climbing]┴──► ЛЮКЙ
```
---
## ОЦЕНКА ВРЕМЕНИ
| Фаза | Этапы | Часы | Результат |
|------|-------|------|-----------|
| 1: Core | 13-14 | ~7-10 | Прыжки работают |
| 2: Level | 15-24 | ~44-58 | Уровень проходим |
| 3: Polish | 25-32 | ~37-47 | AAA feel |
| 4: Content | 33-35 | ~10-15 | Больше контента |
| **Итого** | | **~98-130** | |
**MVP (Фазы 1-2):** ~51-68 часов = **13-17 дней** (при 4ч/день)
**Polished (+ Фаза 3):** ~88-115 часов = **22-29 дней**
---
## КРИТИЧЕСКИЙ ПУТЬ ДО MVP
```
13 → 14 → 15 → 16 → 17 → 18 → 19 → 20 → 21 → 22 → 23 → 24
START HERE
```
Каждый этап даёт демонстрируемый результат.
---
## ПРИМЕЧАНИЯ
1. **Debug HUD** — используем UE инструменты (Gameplay Debugger, etc.)
2. **Тесты** — отложены до Фазы 3
3. **C++** — продолжаем использовать для производительности
4. **Итерации** — после каждого этапа можно показать прогресс