29 KiB
29 KiB
Plants vs. Zombies (ai.qpid.pro) — Backlog & To-Do List
Текущий статус: v3.0 Released (Production Ready — 425/425 PASS)
- Разведка окружения и настройка DNS (
ai.qpid.pro->31.77.203.213) - Docker + Nginx + Certbot контейнеризация
- SSL Let's Encrypt автоматизация и скрипт обновления
- Базовый игровой движок на HTML5 Canvas (5x9 сетка, дорожки)
- Газонокосилки (по одной на каждую линию)
- Экономика солнца (падающее солнце + подсолнухи)
- Базовые растения: Подсолнух, Горохострел, Ледяной горохострел, Стеноорех, Вишневая бомба, Лопата
- Базовые зомби: Обычный, Зомби с конусом, Зомби с ведром, Зомби с флагом
- Боевая система: регистрация урона, эффекты замедления, частицы взрывов
- 4 волны с предупреждающими баннерами и экранами победы/поражения
- Web Audio API синтезатор звуковых эффектов
🎯 Спринт v1.1: Мобильная адаптация, UX и Музыка (Released)
- Исправление багов:
- Зомби корректно продолжают движение после съедения растения (сброс флага
isEatingпри гибели или отсутствии цели) - Peashooter стреляет только по живым целям (
!z.toRemove)
- Зомби корректно продолжают движение после съедения растения (сброс флага
- Сенсорное управление (Touch Controls)
- Тач-события
touchstart,touchmove,touchendдля смартфонов - Автоматический сбор солнц свайпом (проведение пальцем по экрану)
- Увеличенные хитбоксы интерактивных элементов для мобильных пальцев
- Тач-события
- Графика и рендеринг (HiDPI / Retina)
- Поддержка
window.devicePixelRatioдля четкости Canvas на смартфонах и 4K дисплеях - Адаптивное масштабирование
#game-containerчерез CSSaspect-ratioиmax-width: 98vw
- Поддержка
- Фоновое музыкальное сопровождение
- Синтез 8-битной полифонической темы «Grasswalk» на Web Audio API
- Кнопка включения/выключения музыки
btn-musicна панели HUD
- Локальные сохранения рекордов
- Сохранение очков и лучшего рекорда в
localStorage - Отображение рекорда на стартовом, победном и финальном экранах
- Сохранение очков и лучшего рекорда в
🌻 Спринт v1.2: Тактический арсенал и Новые зомби (Released)
- Новые растения
- Картофельная мина (Potato Mine) — 25 ☀️, время взведения 14 сек, взрыв Spudow!
- Повторитель (Repeater) — 200 ☀️, двойной залп горохом
- Зубастик (Chomper) — 150 ☀️, моментальное заглатывание зомби и жевание
- Халапеньо (Jalapeno) — 125 ☀️, выжигание всей горизонтальной полосы огнем
- Новые зомби
- Зомби с шестом (Pole Vaulter) — быстрый бег, перепрыгивание через 1-е растение с шестом
- Зомби с газетой (Newspaper Zombie) — газета поглощает урон, ярость при уничтожении газеты
- Зомби-футболист (Football Zombie) — тяжелый шлем, высокая скорость
- Индикатор волны (HUD)
- Шкала волны с визуальным индикатором прогресса
🌙 Спринт v1.3: Новые биомы (Ночь и Бассейн) (Released)
- Ночной газон (Night Stage)
- Отключение падения солнца с неба
- Грибная экономика: Солнцегриб (Sun-shroom) и Дымогриб (Fume-shroom с пробивающими спорами)
- Надгробия на поле и растение Могилоед (Grave Buster)
- Ночной темный визуальный фон газона и подъем зомби из могил
- Бассейн (Pool Stage)
- 6 дорожек (две центральные дорожки с анимированной водой)
- Растение Кувшинка (Lily Pad) для посадки наземных юнитов на воду
- Водные зомби на кругах (Ducky Tube Zombies)
- Плавающие очистители бассейна (Pool Cleaners)
🛒 Спринт v1.4: Кампания, Прогрессия и Магазин Дэйва (Released)
- Карта уровней (1-1 ... 1-10)
- Поэтапная кампания с автоматическим переходом на новый уровень
- Автоматическая смена биома: День (1-5) -> Ночь (6-8) -> Бассейн (9-10)
- Экономика монет и Магазин Безумного Дэйва
- Выпадение серебряных (10), золотых (50) и алмазных (200) монет из поверженных зомби
- Интерфейс магазина: покупка 6-го слота под семена (500 💰), садовых грабель (150 💰)
- Механика грабель: автоматическое уничтожение первого зомби на газоне
- Профили игроков
- Сохранение монет, апгрейдов магазина, разблокированных уровней и рекорда в
localStorage
- Сохранение монет, апгрейдов магазина, разблокированных уровней и рекорда в
🏆 Спринт v1.5: Режимы игры и Мини-игры (Released)
- Бесконечный режим (Endless Survival)
- Бесконечные волны с постоянно возрастающей интенсивностью и флагами
- Отслеживание числа отбитых флагов и рекорда
- Мини-игра: Боулинг орехами (Wall-nut Bowling)
- Конвейерная подача орехов и вишен бесплатно
- Механика рикошета катящихся орехов по диагоналям при ударе о зомби
- Переключатель режимов прямо на стартовом экране («Приключение», «Выживание», «Боулинг», «Я, Зомби»)
🚀 Спринт v1.6: Исправление «Я, Зомби», Навбар без наложений, Меню, Профили/Гость и Автономное Test API (Released)
- Исправление бага режима «Я, Зомби»:
- Устранение мгновенной ложной победы: синхронная расстановка обороны газона без асинхронных задержек
setTimeout - Размещение 5 целевых подсолнухов в колонке 0 и защитной линии растений (Горохострелы, Повторители, Стеноорехи, Мины)
- Начисление +150 солнца за каждый съеденный подсолнух со звуковым эффектом
- Корректное условие поражения: солнце < 50 и отсутствие живых зомби на газоне при уцелевших подсолнухах
- Отключение автоматических волн и газонокосилок в режиме зомби
- Проход зомби до левого края газона считается захватом мозгов и не вызывает проигрыш
- Устранение мгновенной ложной победы: синхронная расстановка обороны газона без асинхронных задержек
- Полная переработка интерфейса (Устранение наложений элементов):
- Создание независимой верхней панели
.top-nav-barна Flexbox над игровым холстом - Исключение абсолютного позиционирования кнопок поверх игрового Canvas, шкалы волн и слотов семян
- Равномерное размещение элементов: слева «🏠 Меню» и плашка профиля; справа кнопки скорости «⚡ 1x/2x», музыки «🎵 Вкл/Выкл» и звука «🔊 Вкл/Выкл»
- Создание независимой верхней панели
- Главное меню и перезапуск:
- Кнопка «🏠 Меню» доступна в любой момент игры: ставит игру на паузу и открывает окно выбора режима, уровня и магазина
- Кнопки «В МЕНЮ» на экранах поражения и победы для мгновенного перезапуска или смены сценария
- Система авторизации и профилей (Логин/Пароль + Гость):
- Реализована система
PvZAuthвjs/systems/auth.js - Модальное окно авторизации игрока: вход / быстрая регистрация по логину и паролю
- Режим «Гость»: полноценная сессионная игра без сохранения прогресса на диск
- Изоляция данных пользователя: сохраненные монеты, открытые уровни и покупки магазина привязаны к аккаунту
- Индикатор текущего статуса игрока в верхнем тулбаре
- Реализована система
- Автономное тестирование игры (Test API & CLI Runner):
- Встроенный движковый API
window.PvZTestAPIвjs/utils/test_api.js(симуляция тиков, спавн сущностей, проверка боя, мины, косилок, победы в «Я, Зомби» и авторизации) - Автономный CLI скрипт
scripts/test_game.pyс 46 автоматическими проверками HTTP/2, статики, синтаксиса и бизнес-логики
- Встроенный движковый API
🛠️ Спринт v1.7: Локация «Садовая Мастерская» — Крафт, 3 Уровня прокачки растений и Пассивные перки (Released)
- Новая игровая локация «Сад-Мастерская» (Garden Workshop & Lab):
- Отдельный интерактивный экран/модальное окно Сада с верстаком прокачки и деревом перков
- Переход в Сад одной кнопкой из верхнего меню и стартового окна («🧪 Сад-Мастерская»)
- Система ремесленных материалов (Drop & Craft):
- Сбор ресурсов в процессе боя во всех режимах игры:
- 🧪 Био-гумус (Bio-Humus) — выпадает из поверженных базовых зомби
- ⚙️ Зомби-детали (Scrap Metal) — выпадает из бронированных врагов (ведра, конусы, футболисты)
- ☀️ Солнечная эссенция (Sun Essence) — накапливается за активный сбор солнечных капель
- 💎 Алмазные кристаллы (Crystals) — редкий дроп из волн флагов и элиты
- Визуальные летающие дропы материалов с физикой падения, анимацией и подсветкой
- Сбор материалов кликом мыши или автосбором через перк магнетизма
- Сбор ресурсов в процессе боя во всех режимах игры:
- Система 3 уровней прокачки каждого растения (Tier 1 ➔ Tier 2 ➔ Tier 3):
- Индивидуальный прогресс каждого растения за монеты + материалы:
- Горохострел:
- Ур. 1: Базовый горох (урон 20)
- Ур. 2 («Скорострел»): Урон 25, скорость атаки +20%, шанс крита 15% (x2 урон)
- Ур. 3 («Плазменный стрелок»): Плазменный шар пробивает первого зомби насквозь и ранит идущего сзади
- Подсолнух:
- Ур. 1: Базовое солнце (25 ☀️)
- Ур. 2 («Крупный подсолнух»): Дает 35 ☀️, ускоренное появление
- Ур. 3 («Благодатный свет»): Каждая генерация солнца лечит +30 HP соседним растениям
- Стеноорех:
- Ур. 1: 400 HP
- Ур. 2 («Каменный монолит»): 700 HP + поглощение 15% урона
- Ур. 3 («Шипованный бастион»): 1000 HP + возврат 30% урона атакующим зомби при каждом укусе
- Картофельная мина:
- Ур. 1: Взведение 15 сек, взрыв в 1 клетке
- Ур. 2: Быстрое взведение всего за 6 сек
- Ур. 3 («Атомный Spudow»): Взрыв по площади 3x3 клетки + лавовая зона
- Повторитель, Ледяной горох, Зубастик — расширенные деревья прокачки до 3 уровней
- Горохострел:
- Визуальное отображение уровней: звездочки (★★ / ★★★) над карточками в колоде и световые ауры на газоне
- Индивидуальный прогресс каждого растения за монеты + материалы:
- Пассивные Перки Садовника (Глобальное дерево технологий):
- 5 пассивных улучшений профиля:
- 🧲 «Магнитный газон» — увеличенный радиус автосбора монет, солнц и лута (до полного экрана на ур. 3)
- ☀️ «Стартовый капитал» — старт каждого боя с +50/+100/+150 ☀️
- ⏳ «Ускоренный полив» — сокращение кулдауна семян на -10%/-20%/-30%
- 🛡️ «Упорные корни» — запас здоровья всех посадок +20%/+35%/+50%
- 🍀 «Золотая рука» — шанс дропа золотых монет и редких материалов повышен на +30%/+60%/+100%
- Сохранение уровней растений, ресурсов и купленных перков в профиле игрока (
PvZAuth)
- 5 пассивных улучшений профиля:
🪴 Спринт v1.8: Дзен-Сад (Пассивный доход и улитка Стинки) и Альманах (Released)
- Дзен-Сад (Zen Garden):
- Выращивание растений в горшках (лейка, удобрения, граммофон)
- Пассивный доход монет каждые несколько часов (начисление монет за время отсутствия)
- Улитка Стинки (Stinky the Snail) пылесосит монеты при подкармливании шоколадом
- Автосохранение состояния сада и таймеров полива
- Альманах пригородных растений и зомби (Suburban Almanac):
- Энциклопедия с описанием, характеристиками (урон, прочность, скорость) и лором всех персонажей
- Секретный Зомби-Йети (дроп 4 алмазов при уничтожении)
- Интерактивный предпросмотр анимаций и звуков в модальном окне
🎲 Спринт v1.9: «Садовый Рогалик» и Достижения (Released)
- Режим «Садовый Рогалик» (Garden Roguelike):
- Драфт семян и выбор 1 из 3 мощных реликвий после каждой волны (молнии, яд, взрывы, вампиризм)
- Случайная генерация волн и комбинаций противников
- Нарастающая сложность этажей и уникальные модификаторы поля
- Система Достижений (30+ ачивок с наградами):
- Зал трофеев в профиле игрока (
achievements.js) - Награды монетами и алмазами за разблокировку испытаний
- Всплывающие уведомления (toasts) при выполнении достижений во время боя
- Зал трофеев в профиле игрока (
👑 Спринт v2.0: Туман, Крыша, Босс Зомбосс и Лидерборды (Released)
- Биомы Туман и Крыша:
- Биом Туман: ночной бассейн с густой пеленой, Плантерн (Plantern) и Вздуватель (Blover)
- Биом Крыша: наклонный скат, Цветочный горшок (Flower Pot), Капустопульта (Cabbage-pult) и Арбузопульта (Melon-pult)
- Дерево Мудрости (Tree of Wisdom):
- Покупка древа и подкормка удобрениями за монеты
- Разблокировка скрытых клавиатурных чит-кодов (
mustache,future,dance,pinata) - Интерактивный экран роста древа с подсказками Безумного Дэйва
- Финальный босс Доктор Зомбосс:
- Шагающий боевой робот Zombot с фазами атаки (ледяные шары, огненные шары, фургоны, десант)
- Режим Boss Rush с отдельной шкалой здоровья и эпической музыкой
- Глобальные таблицы лидеров (Leaderboards):
- Сохранение рекордов режимов Выживание, Боулинг и Рогалик
- Топ игроков с фильтрацией по режимам
🔐 Спринт v2.5-v2.6: SQLite Auth, Server Sync, Bug Tracker Sync, Lifetime Stats (Released)
- Серверная база данных SQLite и модульная архитектура:
- Разработка
scripts/db.py(таблицыusers,profiles,leaderboards,bugs, WAL-режим) - Криптографическое хеширование паролей:
PBKDF2-HMAC-SHA256(100,000 итераций) со случайной солью - CLI утилита администрирования пользователей
scripts/manage_users.py
- Разработка
- Надежная синхронизация профилей и защита от потери данных:
- Двусторонняя синхронизация через REST эндпоинты
/api/auth/save,/api/auth/sync,/api/auth/profile - Бесшовный перенос накопленного гостевого прогресса при первой регистрации аккаунта
- Гарантированное сохранение при Game Over и во всех мини-играх
- Разделение и изоляция состояния подсистем (Мастерская, Дзен-сад, Древо)
- Двусторонняя синхронизация через REST эндпоинты
- Интегрированный Bug Tracker сообщества:
- Модальное окно обратной связи в клиенте (
feedback.js) - Санитизация HTML-тегов, валидация полей и хранение отчетов в SQLite
- Публичный JSON API
/api/bugs
- Модальное окно обратной связи в клиенте (
- Пожизненная статистика игрока (Lifetime Stats):
- Подсчет уничтоженных зомби, посаженных растений, собранных монет, побед и поражений
- Виджет статистики в профиле игрока
🛠️ Спринт v2.7: Конфигуратор & Панель Администратора (Visual Level Editor, Audit Logs, Session Manager) (Released)
- Панель Администратора (SPA Dashboard):
- Веб-интерфейс в каталоге
game/configurator/с Cyberpunk Botanical темой - Защищенная авторизация по мастер-паролю администратора (
/api/admin/auth) с выдачей bearer-токенов - Информационный дашборд статистики: число игроков, активных сессий, баг-репортов, объем БД
- Веб-интерфейс в каталоге
- Визуальный редактор 25 уровней кампании:
- Таблица базы данных
campaign_levelsсо всеми 25 уровнями в 5 мирах - Интерактивный редактор волн зомби, модификаторов окружения, наград и сообщений Безумного Дэйва
- Эндпоинты
/api/admin/campaign/level/saveи/api/admin/campaign/level/resetдля сброса к заводским настройкам - Клиентская подсистема
campaign.jsдинамически запрашивает уровни с сервера
- Таблица базы данных
- Менеджер активных сессий игроков:
- Мониторинг сессий в реальном времени (
/api/admin/sessions): токен, пользователь, IP, User-Agent, девайс, время активности - Принудительное завершение любых сессий администратором (
/api/admin/session/terminate)
- Мониторинг сессий в реальном времени (
- Журнал аудита авторизаций (
login_logs):- Фиксация всех попыток входа с статусами (успех, неверный пароль, rate-limit, неверный формат)
- Мульти-фильтры по имени пользователя, IP-адресу и лимиту выборки (
/api/admin/logs)
- Динамический конфигуратор баланса игры (
config.js):- Таблица
game_configи эндпоинты/api/config,/api/admin/config - Тонкая настройка множителей экономики, прочности и скорости зомби, кулдаунов растений
- Встроенные баланс-пресеты: Classic 2009, Hardcore, Turbo, Casual, Custom
- Таблица
- Модерация игроков и управление безопасностью:
- Редактирование монет, уровней, сброс паролей игроков
- Блокировка/разблокировка пользователей с указанием причины бана
- Смена пароля администратора через панель (
/api/admin/password/change)
🎰 Спринт v2.8: Казино Безумного Дэйва и Лаборатория Зомби (Released)
- Казино и Банк Безумного Дэйва (
casino.js):- Слот-машина с барабанами, анимацией вращения и звуковыми эффектами
- 7 уникальных символов с весами и коэффициентами выплат (Подсолнух, Горох, Орех, Вишня, Алмаз, Семёрка, Мозги)
- Джекпоты с начислением редких кристаллов
- Банковские депозиты под сложный процент (5% в час, до 48 часов)
- Система срочных займов до 2500 монет с фиксированной комиссией 10%
- Автоматическое сохранение баланса депозитов, займов и статистики спинов в профиле
- Лаборатория Мутаций Зомби (
zombielab.js):- Полноценная 3-тир система эволюции зомби для режима «Я, Зомби»
- 5 классов зомби: Обычный (Вампиризм), Конус (Шипованный шлем), Шест (Двойной прыжок), Ведро (Крио-защита), Футболист (Таран мин)
- Крафт мутаций за монеты, шестеренки, био-гумус и кристаллы
- Интеграция мутаций в боевую логику режима «Я, Зомби»
💾 Спринт v2.9: Автоматический бэкап базы данных и интеграция DOOM (Released)
- Автоматический бэкап и ротация SQLite базы данных (
backup_db.py):- Неблокирующее создание горячих снимков через online
sqlite3.Connection.backup() - Формат имен файлов:
backups/pvz_YYYYMMDD_HHMMSS.db - Автоматическая ротация (pruning) с сохранением последних 7 резервных копий
- CLI интерфейс с параметрами
--db,--dir,--keepи программное API - Добавление каталога
backups/и*.dbв.gitignore
- Неблокирующее создание горячих снимков через online
- Классический DOOM Web Edition (
game/doom/):- Встроенная пасхалка и отдельный 3D WebGL ретро-шутер
- Оригинальный статус-бар DOOM: шкалы AMMO, HEALTH, ARMOR, Arms matrix (1-7), анимированное лицо Doomguy
- CRT-сканлайны, динамические эффекты урона и адаптивный рендеринг
🧪 Спринт v3.0: Комплексный тест-пайплайн (425 тестов) и подготовка к релизу (Released)
- Масштабирование автономного тест-раннера (
test_game.py):- Расширение тестового покрытия со 215 до 425 автоматических тестов
- Проверка HTTP/2, SSL-сертификатов, gzip-сжатия и безопасности заголовков
- Валидация PWA манифеста, Service Worker и локального кэширования
- Полный синтаксический анализ и проверка целостности JavaScript/CSS
- Юнит- и интеграционные тесты боевого движка, экономики, волн, крафта и дзен-сада
- Комплексное тестирование всех эндпоинтов REST API админки, конфигуратора, сессий и аудита
- Тестирование модуля бэкапа базы данных и механик казино/лаборатории зомби
- Финальный прогон и верификация релиза:
- Результат выполнения: 425/425 PASSED (0 FAILED, 100% Pass Rate)
- Полная готовность проекта к промышленной эксплуатации (Production Ready)