[//]: # (Documentation/Movement/Roadmap.md) # Этап 1: Базовая настройка и константы **Цель:** Система классификации поверхностей по углам **Результат:** Стабильная база для всех последующих расчетов **Что реализуем:** - Переменные движения (MaxSpeed, Acceleration, Friction, Gravity) - Система углов поверхностей (Walkable ≤50°, SteepSlope ≤85°, Wall ≤95°, Ceiling >95°) - Конвертация градусы ↔ радианы - Функции инициализации и тестирования констант - Enhanced Input System интеграция **Критерии успеха:** - ✅ Корректная конвертация углов (точность <0.001) - ✅ Все константы инициализируются при старте - ✅ Debug вывод показывает правильные значения - ✅ Автоматические тесты проходят --- # Этап 2: Debug HUD система **Цель:** Статичный debug вывод для удобной отладки **Результат:** Профессиональная debug система **Что реализуем:** - Цветовое кодирование разных типов информации - Функции переключения debug режимов - Контроль частоты обновления HUD **Критерии успеха:** - ✅ Информация отображается статично на экране - ✅ Цветовая дифференциация работает - ✅ Легкое включение/выключение debug режимов - ✅ Нет влияния на производительность --- # Этап 3: Система сообщений в виде тостов **Цель:** Удобный вывод сообщений для отладки **Результат:** Система сообщений в виде тостов **Что реализуем:** - Функции для отображения сообщений в виде тостов - Цветовая дифференциация сообщений - Контроль времени отображения тостов - Подстройка положения тостов на экране в зависимости от их количества - Анимация появления и исчезновения тостов **Критерии успеха:** - ✅ Сообщения отображаются в виде тостов - ✅ Цветовая дифференциация работает - ✅ Тосты исчезают через заданное время - ✅ Положение тостов адаптируется в зависимости от их количества - ✅ Анимация появления и исчезновения тостов плавная и не вызывает рывков --- # Этап 4: Детекция текущего игрового девайса **Цель:** Определение типа устройства ввода (мышь/клавиатура) **Результат:** Стабильное определение типа устройства ввода **Что реализуем:** - Функции определения типа устройства (E_InputDeviceType) - Функции проверки состояния устройства (IsKeyboard, IsGamepad) - Смена подсказок в HUD в зависимости от устройства **Критерии успеха:** - ✅ Корректное определение типа устройства ввода - ✅ Подсказки в HUD меняются в зависимости от устройства - ✅ Легкая интеграция с Enhanced Input System - ✅ Отсутствие ошибок при смене устройства --- # Этап 5: Детекция поверхностей **Цель:** Надежное определение типа поверхности под персонажем **Результат:** Стабильная классификация Walkable/SteepSlope/Wall/Ceiling **Что реализуем:** - Функции классификации поверхности по нормали - Функции запросов состояния (IsSurfaceWalkable, IsSurfaceSteep, etc.) **Критерии успеха:** - ✅ Точная классификация поверхностей по углам - ✅ Стабильное определение типа поверхности - ✅ Корректная работа с нормалями поверхностей - ✅ Детальная debug информация --- # Этап 6: Вращение камерой мышкой или стиком **Цель:** Плавное вращение камеры с учетом устройства ввода **Результат:** Плавное управление камерой **Что реализуем:** - Плавное вращение камеры при движении мышью или стиком геймпада - Учет чувствительности и инверсии осей **Критерии успеха:** - ✅ Плавное вращение камеры при движении мышью - ✅ Плавное вращение камеры при движении стиком геймпада - ✅ Учет чувствительности и инверсии осей - ✅ Отсутствие рывков и заиканий --- # Этап 7: Базовое движение по земле **Цель:** Плавное детерминированное движение по плоским поверхностям **Результат:** Отзывчивое управление без рывков и заиканий **Что реализуем:** - VInterpTo для плавного ускорения и торможения - Применение гравитации с правильным обнулением на земле - Горизонтальное движение только на walkable поверхностях - Ограничение максимальной скорости **Критерии успеха:** - ✅ Плавное ускорение при нажатии WASD и стика геймпада - ✅ Плавное торможение при отпускании клавиш/стика геймпада - ✅ Скорость не превышает MaxSpeed - ✅ Диагональное движение не быстрее прямого - ✅ Стабильное поведение на земле --- # Этап 8: Поворот персонажа вслед за движением **Цель:** Плавный поворот персонажа в сторону движения **Результат:** Персонаж естественно реагирует на направление движения **Что реализуем:** - При использовании мыши или стика геймпада персонаж поворачивается в сторону движения - Учет наклона камеры для корректного поворота **Критерии успеха:** - ✅ Персонаж плавно поворачивается в сторону движения - ✅ Поворот учитывает наклон камеры - ✅ Плавный переход между направлениями - ✅ Нет рывков при повороте - ✅ Персонаж не поворачивается, если не движется - ✅ Поворот не влияет на скорость движения --- # Этап 9: Детерминированный Sweep collision **Цель:** Полное устранение tunneling через stepped collision detection **Результат:** Bullet-proof система коллизий **Что реализуем:** - PerformDeterministicSweep с пошаговой проверкой - HandleSweepCollision для обработки ударов - Адаптивный размер шагов sweep **Критерии успеха:** - ✅ Полное отсутствие tunneling при любых скоростях - ✅ Стабильная Z позиция (разброс <0.5 единиц) - ✅ Детерминированность (100% воспроизводимость) - ✅ Performance <25 collision checks за кадр --- # Этап 10: Обработка стен и углов **Цель:** Плавное скольжение вдоль стен без застреваний **Результат:** Качественная навигация в сложной геометрии **Что реализуем:** - Wall sliding - скольжение вдоль стен - Corner resolution - обработка внутренних углов - Multi-directional sweep - несколько попыток движения - Edge detection и step-up механика **Критерии успеха:** - ✅ Персонаж не застревает в углах - ✅ Плавное скольжение вдоль стен любой геометрии - ✅ Автоматический step-up на небольшие препятствия - ✅ Работает в сложных лабиринтах --- # Этап 11: Движение по склонам **Цель:** Реалистичное поведение на наклонных поверхностях **Результат:** Естественное движение по пандусам и скатывание **Что реализуем:** - Slope walking - движение вверх/вниз по склонам ≤45° - Slope sliding - скатывание с крутых поверхностей >45° - Ground snapping - прилипание к неровной поверхности - Momentum preservation на склонах **Критерии успеха:** - ✅ Плавный подъем по пандусам ≤45° - ✅ Реалистичное скатывание с крутых склонов >45° - ✅ Отсутствие "прыжков" на неровностях - ✅ Сохранение импульса при переходах между поверхностями --- # Этап 12: Разделение физики и рендера **Цель:** Детерминированная физика + плавная визуализация **Результат:** AAA-качество визуального движения **Что реализуем:** - Dual position system (physics + render positions) - Position interpolation для плавности - Fixed timestep для физики (120Hz physics, variable render) - Smooth transitions между состояниями **Критерии успеха:** - ✅ Физика остается детерминированной - ✅ Визуально плавное движение без микрозаиканий - ✅ Stable 60+ FPS без влияния на физику - ✅ Smooth interpolation работает корректно --- # Этап 13: Профессиональная камера система **Цель:** Плавная камера уровня AAA-игр **Результат:** Комфортная камера без рывков **Что реализуем:** - Camera lag и damping для плавного следования - Look-ahead prediction (камера смотрит вперед при движении) - Smooth rotation следования за поворотами - Dead zone для микродвижений - Collision avoidance для камеры **Критерии успеха:** - ✅ Камера не дергается при остановке/старте - ✅ Плавные повороты и наклоны - ✅ Предсказание направления движения - ✅ Нет проваливания камеры в стены --- # Этап 14: Adaptive stepping optimization **Цель:** Оптимизация производительности sweep системы **Результат:** Меньше collision checks без потери качества **Что реализуем:** - Variable step size в зависимости от скорости - Субпиксельная точность для медленного движения - Performance monitoring и auto-tuning - Spatial optimization для collision queries **Критерии успеха:** - ✅ <10 collision checks при обычном движении - ✅ Субпиксельная точность при медленном движении - ✅ Автоматическая адаптация под нагрузку - ✅ Stable performance в сложных сценах --- # Этап 15: Enhanced ground snapping **Цель:** Плавное прилипание к неровным поверхностям **Результат:** Персонаж идет по неровной геометрии без отрыва **Что реализуем:** - Multi-point ground detection - Intelligent surface normal blending - Smooth height transitions - Predictive ground snapping **Критерии успеха:** - ✅ Плавное движение по ступенькам - ✅ Нет отрыва от неровной поверхности - ✅ Smooth transitions на изменениях высоты - ✅ Работает на любой сложности геометрии --- # Этап 16: Система прыжков **Цель:** Отзывчивое воздушное управление уровня лучших платформеров **Результат:** Качественный платформинг с точным контролем **Что реализуем:** - Variable jump height (короткое/длинное нажатие) - Air control с ограничениями и инерцией - Coyote time (прыжок после покидания платформы) - Jump buffering (ранние нажатия прыжка) - Multi-jump система (опционально) **Критерии успеха:** - ✅ Точный контроль высоты прыжка - ✅ Forgiving jump timing (coyote + buffer) - ✅ Responsive но не overpowered air control - ✅ Плавные transitions между ground/air состояниями --- # Этап 17: Воздушная физика **Цель:** Реалистичная но игровая воздушная физика **Результат:** Естественное поведение в полете **Что реализуем:** - Air resistance и terminal velocity - Wind/updraft systems - Gliding механика - Landing impact detection и анимации - Air-to-ground transition smoothing **Критерии успеха:** - ✅ Реалистичная траектория полета - ✅ Плавные приземления без "хлопков" - ✅ Terminal velocity ограничивает падение - ✅ Responsive air control без нарушения физики --- # Этап 18: Продвинутые склоны и поверхности **Цель:** Сложные взаимодействия с геометрией **Результат:** Разнообразные типы поверхностей **Что реализуем:** - Ice surfaces (скользкие поверхности с инерцией) - Conveyor belts (движущиеся платформы) - Bouncy surfaces (отскакивающие поверхности) - Sticky surfaces (замедляющие движение) - Slope acceleration/deceleration physics **Критерии успеха:** - ✅ Каждый тип поверхности ощущается уникально - ✅ Плавные переходы между типами поверхностей - ✅ Детерминированное поведение всех типов - ✅ Легкая настройка параметров поверхностей --- # Этап 19: Wall interactions **Цель:** Продвинутые взаимодействия со стенами **Результат:** Wall jumping, wall sliding, wall climbing **Что реализуем:** - Wall jumping с momentum preservation - Wall sliding с контролем скорости - Wall climbing на специальных поверхностях - Corner grabbing и edge detection - Wall run система (опционально) **Критерии успеха:** - ✅ Responsive wall jumping с правильными углами - ✅ Контролируемое wall sliding - ✅ Smooth transitions wall ↔ ground ↔ air - ✅ Интуитивное управление wall mechanics --- # Этап 20: Специальные движения **Цель:** Уникальные движения для богатого геймплея **Результат:** Dash, ground pound, ledge grab и другие **Что реализуем:** - Dash/dodge с invincibility frames - Ground pound с area impact - Ledge grabbing и climbing - Slide/crouch движения - Special movement abilities **Критерии успеха:** - ✅ Каждое движение ощущается impact-ful - ✅ Smooth combinations между движениями - ✅ Balanced timing и cooldowns - ✅ Clear visual и audio feedback --- # Этап 21: Performance optimization **Цель:** 60 FPS на целевом железе в любых сценариях **Результат:** Оптимизированная система коллизий **Что реализуем:** - Spatial partitioning для collision objects - LOD system для collision complexity - Multi-threading collision checks - Memory pool для collision queries - Predictive collision culling **Критерии успеха:** - ✅ Stable 60+ FPS на целевом железе - ✅ <5ms на collision detection в worst case - ✅ Scalable performance до 100+ collision objects - ✅ Minimal memory allocations в runtime --- # Этап 22: Debug и профилирование tools **Цель:** Профессиональные инструменты для тонкой настройки **Результат:** Полный контроль над системой **Что реализуем:** - Visual collision debugging (rays, sweeps, contacts) - Real-time performance metrics и profiling - Tweakable parameters в runtime через UI - Automated testing suite для regression testing - Replay system для детерминированности **Критерии успеха:** - ✅ Visual debugging показывает все collision queries - ✅ Real-time параметры настраиваются без restart - ✅ Performance metrics точные и useful - ✅ Automated tests покрывают все основные сценарии --- # Этап 23: Edge cases и stress testing **Цель:** Bullet-proof система для любых условий **Результат:** Система работает в экстремальных сценариях **Что реализуем:** - Extreme velocity testing (10000+ units/sec) - Complex geometry stress tests - Memory leak detection и prevention - Determinism verification tools - Edge case handling (NaN, infinity, etc.) **Критерии успеха:** - ✅ Система не ломается при экстремальных значениях - ✅ No memory leaks при длительной работе - ✅ Determinism поддерживается в любых условиях - ✅ Graceful degradation при перегрузке --- # Этап 24: User experience polish **Время:** 3-4 дня | **Сложность:** Средняя **Цель:** Finalized user experience **Результат:** Система ощущается как в коммерческой игре **Что реализуем:** - Input buffering и prediction - Haptic feedback integration (геймпады) - Audio feedback integration для movement - Visual effects integration (dust, particles) - Accessibility options **Критерии успеха:** - ✅ Controls ощущаются максимально responsive - ✅ Rich feedback для всех действий - ✅ Поддержка различных input методов - ✅ Accessibility options работают корректно ---