Files
synthesis/IMPLEMENTATION-PLAN.md
Денис Шкабатур 0d35cdcc73 phase 7: Mycelium — persistent knowledge network connecting runs
- Mycelium graph: nodes/edges/strength, deposit discoveries, weighted extraction
- Fungal nodes: ECS entities on world map with bioluminescent glow animation
- Knowledge system: deposit at nodes (+ auto on death), memory flash retrieval
- Mycosis: visual tint overlay on prolonged node contact, reveal threshold
- Spore shop: 5 Cradle bonuses (health, elements, knowledge boost)
- MetaState extended with MyceliumGraphData, IndexedDB persistence updated
- GameScene: node spawning, glow rendering, E-key interaction, mycosis overlay
- CradleScene: spore shop UI, Mycelium stats, purchased effects forwarding
- 36 new tests (385 total)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:47:03 +03:00

16 KiB
Raw Blame History

Synthesis — Implementation Plan

Overview

Target: Vertical Slice — один полный ран через один биом (Каталитические Пустоши)
Approach: Каждая фаза даёт тестируемый, играбельный инкремент
Method: Полностью агентная разработка (AI пишет код, проверяет через Playwright и vitest)


Phase 0: Project Setup

Цель: Собираемый, запускаемый проект с dev-инструментарием

# Задача Статус
0.1 Инициализация npm + зависимости (Phaser, bitECS, Vite, Vitest)
0.2 TypeScript strict конфигурация
0.3 Vite конфигурация (HMR, chunk splitting)
0.4 Phaser game config (1280x720, pixel-art, arcade physics)
0.5 BootScene с титульным экраном
0.6 Cursor rules (6 правил под предметную область)
0.7 Implementation plan + progress tracking

Критерий готовности:

  • npm run dev запускает dev-сервер
  • Титульный экран виден на localhost:5173
  • TypeScript компилируется без ошибок

Phase 1: Chemistry Engine

Цель: Ядро химической системы — элементы, реакции, соединения
Зависимости: Phase 0
Это чистая логика — идеальна для TDD (vitest)

# Задача Описание
1.1 Типы и интерфейсы Element, Reaction, Compound, ReactionResult, ElementCategory, MatterState
1.2 Данные: 20 элементов H, He, C, N, O, Na, Mg, Al, Si, P, S, Cl, K, Ca, Fe, Cu, Zn, Sn, Hg, Au — из реальной таблицы Менделеева
1.3 Реестр элементов Загрузка из JSON, lookup по symbol/atomicNumber, валидация
1.4 Движок реакций Ввод: элементы + условия → вывод: продукт ИЛИ причина неудачи. Lookup по отсортированному ключу реагентов (O(1))
1.5 Данные: 50 реакций Базовые: горение, окисление, кислотно-щелочные, синтез солей, органика. Каждая с описанием науки
1.6 Соединения Свойства: формула, название, игровой эффект, состояние, масса. Реестр с lookup
1.7 Тесты Загрузка элементов, lookup, все 50 реакций (корректные продукты), невалидные реакции (корректные причины отказа)

Критерий готовности:

  • npm run test:run — все тесты химии проходят
  • Na + Cl → NaCl, H + H + O → H₂O, и т.д.
  • Невалидная реакция возвращает человекочитаемую причину
  • Все данные элементов соответствуют реальной таблице Менделеева

Phase 2: ECS Foundation

Цель: Работающая ECS с мостом к Phaser-рендерингу
Зависимости: Phase 0

# Задача Описание
2.1 World setup bitECS world + контейнер времени (delta, elapsed, tick)
2.2 Core components Position, Velocity, SpriteRef, Health, ChemicalComposition
2.3 Movement system Обновляет Position по Velocity * delta
2.4 Phaser ↔ bitECS bridge Синхронизация: ECS Position → Phaser sprite.x/y. Создание/удаление спрайтов по enterQuery/exitQuery
2.5 Entity factory createEntity(world, components) → eid. Фабрика для типовых сущностей
2.6 Health system Урон, лечение, смерть при health ≤ 0
2.7 Визуальный тест 10-20 цветных кругов двигаются по экрану — проверить скриншотом

Критерий готовности:

  • Сущности рендерятся как спрайты/графика
  • Движение работает (видно на скриншоте)
  • Удаление сущности убирает спрайт с экрана

Phase 3: World Generation

Цель: Процедурный тайлмап для Каталитических Пустошей
Зависимости: Phase 2

# Задача Описание
3.1 Tilemap система Phaser Tilemap из data-driven определений тайлов
3.2 Biome data biomes.json — Каталитические Пустоши: типы тайлов, распределение, цвета
3.3 Noise генерация simplex-noise для terrain. Высота → тип тайла. Seed-based для воспроизводимости
3.4 Типы тайлов Выжженная земля, кислотные озёра, кристаллические формации, гейзеры, минеральные жилы
3.5 Размещение ресурсов Руды/минералы на основе параметров биома и noise-карты
3.6 Камера Следование за игроком, zoom (колесо мыши), clamp по границам карты
3.7 Миникарта Упрощённая мини-карта в углу (цветные пиксели по тайлам)

Критерий готовности:

  • Карта генерируется с разнообразным рельефом
  • Разные тайлы визуально отличимы
  • Камера плавно следует за «игроком»
  • Каждый запуск даёт уникальную карту

Phase 4: Player Systems

Цель: Играбельный персонаж: движение, сбор, крафт, бросок
Зависимости: Phase 2, Phase 1, Phase 3

# Задача Описание
4.1 Player entity + контроллер WASD движение, мышь — направление/взаимодействие
4.2 Инвентарь Весовой (атомные массы!), слоты, stack одинаковых элементов
4.3 Сбор элементов Взаимодействие с объектами мира (руда, озеро, растение) → элемент в инвентарь
4.4 Крафтинг Выбрать элементы → химический движок → результат/ошибка → в инвентарь
4.5 Система броска ПКМ — запуск элемента/соединения как снаряда. Arcade physics для полёта
4.6 Quick slots Клавиши 1-2-3-4 для быстрого переключения подготовленных предметов
4.7 HUD UIScene поверх GameScene: кольцо здоровья, полоска инвентаря, инфо об элементе при наведении

Критерий готовности:

  • Игрок ходит по карте WASD
  • Подбирает элементы с земли
  • Комбинирует на верстаке — видит результат или причину неудачи
  • Бросает натрий в воду — экзотермическая реакция
  • HUD показывает здоровье, инвентарь, quick slots

Phase 5: Creatures & Ecology

Цель: Живая экосистема в Каталитических Пустошах
Зависимости: Phase 2, Phase 3

# Задача Описание
5.1 Данные существ 3 типа: Кристаллиды (медленные, прочные), Ацидофилы (кислотные), Реагенты (парные, взрывоопасные)
5.2 AI поведение FSM: idle → wander → feed → flee → attack. Переходы по условиям (голод, угроза, территория)
5.3 Метаболизм Что ест, что выделяет. Ацидофилы едят минералы → выделяют кислоту
5.4 Популяционная динамика Упрощённые Лотка-Вольтерра: рождаемость, смертность, хищничество
5.5 Жизненный цикл Яйцо → юность → зрелость → старение → смерть → разложение (→ нутриенты)
5.6 Взаимодействие Наблюдение (кодекс), атака, базовое приручение
5.7 Тест экосистемы Запустить без игрока: популяции должны колебаться, не вымирать полностью

Критерий готовности:

  • Существа спавнятся, двигаются, едят, размножаются, умирают
  • Популяция без вмешательства достигает динамического равновесия
  • Истребление хищников → перенаселение травоядных → коллапс (эмерджентно!)
  • Существа реагируют на игрока

Phase 6: Run Cycle

Цель: Полный рогалик-цикл: рождение → смерть → перерождение
Зависимости: Phase 3, Phase 4, Phase 1

# Задача Описание
6.1 Споровая Колыбель Сцена пробуждения: выбор школы (Алхимик для начала)
6.2 Триггер смерти Health ≤ 0 → запуск death sequence
6.3 Анимация смерти Тело Адепта распадается на элементы (реальный состав: 65% O, 18% C, 10% H...)
6.4 «Момент между» WebGL fractal shader — психоделическая визуализация перерождения
6.5 Мета-прогрессия Кодекс (открытые элементы/реакции), споры (валюта), persistence (IndexedDB)
6.6 Фазы рана Пробуждение → Исследование → Эскалация → Кризис → Развязка. Таймер/прогрессия
6.7 Эскалация Нарастающая энтропия: нестабильные реакции, агрессивные существа
6.8 Кризис: Химическая Чума Цепная реакция отравляет атмосферу. Нужна химия для нейтрализации
6.9 Школа: Алхимик Стартовый набор (H, O, C, Na, S, Fe), принцип (химическое равновесие)

Критерий готовности:

  • Полный цикл: spawn → explore → gather → craft → die → fractal → respawn
  • Кодекс сохраняется между ранами
  • Споры начисляются за открытия
  • Эскалация ощутимо меняет поведение мира
  • Кризис запускается и решается через химию
  • Fractal shader работает (даже простой вариант)

Phase 7: Mycelium

Цель: Подземная сеть, связывающая раны
Зависимости: Phase 6

# Задача Описание
7.1 Граф Мицелия Структура данных (ngraph): узлы, рёбра, метаданные
7.2 Грибные узлы Точки на карте, где Мицелий выходит на поверхность. Визуально — светящиеся споты
7.3 Запись знаний Депозит открытий в Мицелий для будущих ранов
7.4 Извлечение знаний «Вспышки» — фрагменты воспоминаний из прошлых ранов
7.5 Микоз Визуальное искажение при долгом контакте с узлом. Открывает скрытую информацию
7.6 Интеграция с Колыбелью Стартовые бонусы за споры

Критерий готовности:

  • Узлы видны на карте
  • Взаимодействие с узлом показывает память прошлого рана
  • Знание из рана N появляется как подсказка в ране N+1
  • Микоз-эффект визуально работает
  • Споры тратятся на бонусы при старте рана

Phase 8: First Archont — Ouroboros

Цель: Первый босс-бой (головоломка, не рефлексы)
Зависимости: Phase 5, Phase 6

# Задача Описание
8.1 Уроборос entity Змей, поедающий хвост. Циклические фазы атаки
8.2 Паттерн-механика Бой = петля с нарастающей сложностью. Игрок определяет паттерн и ломает его в нужный момент
8.3 Арена Специальная генерируемая комната на подступах к Сердцу Синтеза
8.4 Множественные решения Химическое, физическое, наблюдательное — минимум 3 пути к победе
8.5 Награда Архонтова Память — лор-фрагмент в Кодексе, спорная щедрая награда

Критерий готовности:

  • Бой имеет узнаваемый повторяющийся паттерн
  • Паттерн усложняется с каждым циклом
  • Минимум 2 валидных стратегии победы работают
  • Победа добавляет лор в Кодекс

Vertical Slice = Phase 08

После Phase 8 игра содержит:

  • Один полный биом (Каталитические Пустоши)
  • Работающая химия (~20 элементов, ~50 реакций)
  • Живая экосистема (3 вида существ с динамикой популяций)
  • Полный цикл рана (рождение → смерть → перерождение)
  • Мета-прогрессия между ранами (Кодекс, споры)
  • Мицелий (память между ранами)
  • Один босс (Уроборос)
  • Фрактальная сцена смерти
  • Одна школа (Алхимик)
  • Один тип кризиса (Химическая Чума)

Это — вертикальный срез, описанный в GDD Section X.


Beyond Vertical Slice (Post-MVP)

Фаза Содержание
Phase 9 +2 биома (Кинетические Горы, Вердантовые Леса), +20 элементов, +100 реакций
Phase 10 +3 школы (Механик, Натуралист, Навигатор), принципы физики и биологии
Phase 11 Великий цикл (7 ранов): следы между ранами, Великое Обновление
Phase 12 +3 Архонта (Спора Прайма, Энтропа, Когнитон)
Phase 13 Оставшиеся биомы + школы + существа
Phase 14 Сердце Синтеза (финальный регион), нарратив
Phase 15 Аудио: лупы, эмбиент, циклические саундскейпы
Phase 16 Полировка: шейдеры, частицы, UI/UX, accessibility