Files
ai-qpid-pvz/game/doom/TODO.md
T

101 lines
7.5 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📜 План разработки проекта DOOM 3D (Full 3D WebGL)
**Цель:** Создать полноценный браузерный 3D ретро-шутер в стиле DOOM / Quake на базе **Three.js** (с поддержкой полной трехмерности: многоуровневые карты, перепады высот, лестницы, прыжки, объемные комнаты, освещение и физика коллизий) с аутентичным 2D ретро-HUD.
Доступ по URL: [ai.qpid.pro/doom/](https://ai.qpid.pro/doom/)
---
## 🛠️ Стек технологий
- **3D Графика & Рендеринг:** Three.js (WebGL / WebGPU) — полноценный 3D пайплайн, шейдеры, динамический свет, тени, партиклы.
- **Физика и Коллизии:** Octree / Capsule Collider (быстрые коллизии для FPS со сложной геометрией, ступенями, склонами и прыжками) или Rapier3D.
- **2D HUD / UI:** 2D Canvas / DOM Overlay в аутентичном стиле Doom (панель состояния, анимированное лицо Doomguy, прицел, всплывающие сообщения).
- **Звук:** Web Audio API (пространственный 3D позиционный звук, ретро-SFX, саундтрек).
---
## 🗺️ Этапы разработки (Roadmap)
### 🔹 Этап 1: 3D Движок и Базовая физика перемещения
- [ ] Инициализация Three.js сцены, камеры от первого лица (FPS Camera) и рендерера с поддержкой адаптивного разрешения и пикселизации (ретро-эффект).
- [ ] Захват курсора (Pointer Lock API) и плавный обзор мышью с настраиваемой чувствительностью.
- [ ] Физический контроллер игрока (FPS Controller):
- Перемещение WASD (ходьба, бег с зажатым Shift)
- Прыжки, гравитация, падение
- Подъем по ступеням и пандусам (step-climbing)
- Collision Detection на базе Octree / Capsule против сложной 3D геометрии.
- [ ] Мобильное управление: виртуальные стики перемещения и обзора + кнопки стрельбы и прыжка.
---
### 🔹 Этап 2: 3D Уровни и Геометрия (Многоэтажность и Архитектура)
- [ ] Модульный 3D генератор / загрузчик уровней:
- Многоуровневые здания, мосты, тоннели, шахты лифтов, балконы и открытые арены.
- Поддержка форматов GLTF / OBJ / кастомных воксельных и блочных карт.
- [ ] Освещение и атмосфера:
- Динамические точечные источники света (факелы, мигающие лампы, лава).
- Ambient Occlusion, туман (Fog) и затемнение глубины.
- [ ] Интерактивные 3D объекты:
- Раздвижные и подъемные двери с коллизиями.
- Настенные переключатели и рубильники.
- Платформы и движущиеся лифты.
---
### 🔹 Этап 3: Оружие от 1-го лица и Боевая система
- [ ] Рендеринг оружия в руках (3D модели / анимированные спрайты с эффектом присутствия):
- Кулак / Бензопила
- Пистолет (Pistol)
- Дробовик (Shotgun / Super Shotgun)
- Скорострельный пулемет (Chaingun)
- Ракетница (Rocket Launcher)
- Плазменная пушка (Plasma Gun / BFG 9000).
- [ ] Визуальные и физические эффекты стрельбы:
- Отдача камеры, покачивание оружия при ходьбе (Weapon Bobbing).
- Вспышки дула (Muzzle Flash) с динамическим освещением комнат.
- Hitscan лучи с трассерами и искрами/следами от пуль на стенах (Bullet Decals).
- Физические 3D снаряды (ракеты, плазменные шары) с частицами дыма и взрывами с радиусом поражения.
---
### 🔹 Этап 4: 3D Враги и ИИ (AI)
- [ ] Модели / 3D-биллборды классических монстров (Зомби-стрелки, Импы, Демоны, Какодемоны).
- [ ] Пространственный 3D ИИ с навигацией (Raycast Line of Sight, NavMesh / 3D Waypoints):
- Поиск пути с учетом высот и лестниц.
- Состояния: Патруль $\rightarrow$ Обнаружение $\rightarrow$ Преследование $\rightarrow$ Атака (дальняя/ближняя) $\rightarrow$ Уклонение $\rightarrow$ Смерть.
- [ ] 3D Ragdoll / физика отлетающих частиц и анимации гибели монстров.
---
### 🔹 Этап 5: Предметы, Лут и Интерактивность
- [ ] 3D вращающиеся предметы с мягким свечением:
- Аптечки и стимуляторы (Health).
- Броня и сферы бессмертия (Armor / Soulsphere).
- Коробки с патронами, гильзами и батареями.
- Цветные ключ-карты доступа (Red, Blue, Yellow).
- [ ] Взрывающиеся токсичные бочки (Explosive Barrels) с цепной детонацией.
---
### 🔹 Этап 6: Аутентичный HUD и Интерфейс
- [ ] Классическая статус-панель в стиле DOOM:
- Значения здоровья (HEALTH), брони (ARMOR), патронов (AMMO).
- Анимированный аватар Doomguy (эмоции, ранения, оскал при стрельбе).
- Индикаторы собранных ключей доступа.
- [ ] Прицел, всплывающие уведомления о подборе предметов («Picked up a shotgun!») и экран получения урона (красная вспышка).
- [ ] Экран паузы, меню настроек (FOV, чувствительность, звук, ретро-фильтры).
---
### 🔹 Этап 7: Пространственный Звук и Саундтрек
- [ ] Web Audio 3D Positional Audio (звук шагов и рычания монстров позиционируется в 3D пространстве).
- [ ] Звуки выстрелов, перезарядки, взрывов, открывания тяжелых железных дверей.
- [ ] Динамичный рок / метал саундтрек.
---
### 🔹 Этап 8: Оптимизация, Полировка и Деплой
- [ ] Стабильные 60+ FPS (Frustum Culling, Instanced Meshes для повторяющихся элементов).
- [ ] Шейдер пикселизации / CRT-монитора (опциональный ретро-фильтр).
- [ ] Проверка и тестирование по адресу `https://ai.qpid.pro/doom/`.