- 5 Biomes: Day, Night, Pool, Fog, Roof (25 Campaign levels) - Minigames: Wall-nut Bowling, I Zombie, Roguelike, Boss Rush & Dr. Zomboss - Systems: Zen Garden, Workshop Crafting, Almanac, Tree of Wisdom, Achievements - Backend: REST API + SQLite Accounts & Save Synchronization - Infrastructure: Nginx HTTPS & Docker deployment
20 KiB
20 KiB
План разработки проекта: Plants vs. Zombies (ai.qpid.pro)
1. Цели и архитектурные принципы
- Цель: создать быстрый, легкий, полностью автономный браузерный клон Plants vs. Zombies, доступный на постоянном домене
https://ai.qpid.pro, с максимальной глубиной удержания игроков (Retention), реиграбельностью, системой крафта, прокачки и пассивного прогресса. - Архитектурные принципы:
- Zero External Runtime Dependencies: отсутствие внешних CDN или тяжелых фреймворков.
- Single Static Origin: чистый Nginx в Docker раздает сжатую статику, 100% исполнение на стороне клиента.
- Zero Asset Loading Delay: процедурная графика Canvas и синтез звука через Web Audio API.
- Mobile & Desktop Hybrid: идеальный отклик как для мыши, так и для сенсорных экранов.
- Autonomous Testability: встроенный API
window.PvZTestAPIи CLI-раннерtest_game.pyдля непрерывного контроля качества. - Глубокая система прогресса и крафта (RPG & Idle Core):
- Сбор ресурсов в бою: зомби дропают монеты и ремесленные материалы (Гумус, Металлолом, Солнечную эссенцию).
- Садовая Мастерская: отдельная уютная локация крафта и селекции растений.
- 3 Уровня прокачки каждого растения: от базового саженца до плазменных и шипованных ультимейтов.
- Глобальные перки садовника: пассивные бонусы на всю игру (стартовое солнце, ускорение перезарядки, магнетизм).
2. Реализованные фазы разработки (v1.0 — v1.6)
✅ Фаза I (v1.1): «Мобильность, HiDPI и Музыка» (Выполнено)
- Тач-события (
touchstart,touchmove,touchend) и свайп-сбор солнц. - Поддержка
window.devicePixelRatioдля четкости на Retina/HiDPI. - Полифоническая музыкальная тема «Grasswalk» на Web Audio API.
- Локальное сохранение очков и рекордов в
localStorage.
✅ Фаза II (v1.2): «Тактический арсенал и новые зомби» (Выполнено)
- 4 новых растения: Картофельная мина, Повторитель, Зубастик, Халапеньо.
- 3 новых зомби: Зомби с шестом, Зомби с газетой, Зомби-футболист.
- Анимированная шкала прогресса волны в правом верхнем углу.
✅ Фаза III (v1.3): «Смена биомов (Ночь и Бассейн)» (Выполнено)
- Ночной газон: отсутствие падающего солнца, грибная экономика (Солнцегриб, Дымогриб), надгробия и Могилоед.
- Бассейн: 6 дорожек, 2 водных линии с кувшинками, зомби-уточки, очистители бассейна.
✅ Фаза IV (v1.4): «Кампания и Магазин Безумного Дэйва» (Выполнено)
- Кампания из уровней 1-1...1-10 с последовательной прогрессией.
- Выпадение серебряных, золотых и алмазных монет из зомби.
- Магазин Дэйва с покупкой +1 слота под семена и садовых грабель.
✅ Фаза V (v1.5): «Дополнительные режимы и мини-игры» (Выполнено)
- Режим «Выживание» (Endless Survival) с флагами.
- Мини-игра «Боулинг орехами» (Wall-nut Bowling) с рикошетом и конвейерной лентой.
- Режим «Я, Зомби» (I, Zombie).
✅ Фаза VI (v1.6): «Полировка UI, Меню, Авторизация/Гость и Test API» (Выполнено)
- Исправление режима «Я, Зомби»: синхронный старт без таймеров, 5 подсолнухов, +150 солнца за поедание, поражение при солнце < 50 и отсутствии зомби.
- Устранение наложений UI: верхний независимый Flexbox тулбар
.top-nav-barвне игрового холста. - Главное меню и перезапуск: кнопка «🏠 Меню» на панели + кнопки «В МЕНЮ» на экранах победы и поражения.
- Система авторизации и профилей: окно входа/регистрации по логину и паролю + режим «Гость» (сессионная игра).
- Автономное тестирование игры: модуль
window.PvZTestAPIи CLI-тестscripts/test_game.py(46 автотестов).
✅ Фаза VII (v1.7): «Сад-Мастерская: Крафт, 3 Уровня прокачки растений и Перки» (Выполнено)
- Интерактивная локация «Сад-Мастерская»: модальный экран с панелью материалов (🧪 биогумус, ⚙️ детали, ☀️ эссенция, 💎 кристаллы, 💰 монеты) и вкладками прокачки растений и перков.
- 3 Уровня прокачки растений (Tiers 1-3): Горохострел (криты + плазменный пирсинг), Подсолнух (ускорение + аура лечения), Стеноорех (поглощение урона + шипы отдачи), Картофельная мина (быстрый взвод 6с + ядерный Spudow 3x3), Повторитель, Ледяной горох, Зубастик.
- 5 Пассивных Перков Садовника: Магнитный газон (автосбор), Стартовый капитал (+50/100/150 ☀️), Ускоренный полив (-10/20/30% CD), Упорные корни (+20/35/50% HP), Золотая рука (+30/60/100% дроп).
- Анимированный лут: подпрыгивание, свечение и притягивание магнитом.
- Полное сохранение: синхронизация материалов, уровней и перков с профилями в
PvZAuth. - 68/68 автоматических тестов успешно проходят в
scripts/test_game.py.
3. Детализация следующего Спринта v1.8: «Дзен-Сад (Пассивный доход и улитка Стинки) и Альманах»
3.1. Локация «Сад-Мастерская» (Garden Lab & Workshop)
- Переход на отдельный экран/модальное окно Сада из главного меню или верхней панели управления.
- Визуальное оформление: уютная теплица с деревянным верстаком, грядками и полками с колбами.
- 3 вкладки в интерфейсе:
- «Селекция растений»: список всех растений игрока, текущий уровень (★, ★★, ★★★), стоимость улучшения в ресурсах.
- «Пассивные перки»: ветки перков с индикатором прокачки.
- «Хранилище материалов»: баланс собранных ресурсов.
3.2. Ремесленные материалы (Ресурсы боя)
| Ресурс | Иконка | Источник получения | Назначение |
|---|---|---|---|
| Монеты | 💰 | Зомби, газонокосилки, Дзен-сад | Базовые улучшения, магазин |
| Био-гумус | 🧪 | Обычные зомби, зомби с шестом, газетчики (шанс 25%) | Прокачка травяных растений |
| Зомби-металл | ⚙️ | Зомби с ведром, конусом, футболисты (шанс 40%) | Прокачка прочности, орехов, шипов |
| Солнечная эссенция | ☀️ | Сбор солнц на газоне (каждое 10-е солнце дает +1 эссенцию) | Прокачка подсолнухов и энергетиков |
| Кристаллы льда/огня | 💎 | Боссы, прохождение флагов в Выживании, редкие зомби | Ультимативные улучшения 3-го уровня |
3.3. Таблица 3 уровней прокачки растений (Plant Tiers)
Каждое растение получает 3 ступени мастерства:
- Горохострел (Peashooter):
- ★ Ур. 1 (Базовый): Урон 20, интервал стрельбы 1.4 сек.
- ★★ Ур. 2 («Скорострел»): Урон 25, интервал 1.15 сек, шанс критического удара 15% (x2 урон со вспышкой).
- ★★★ Ур. 3 («Плазменный стрелок»): Плазменный энергетический заряд пробивает первого зомби насквозь и ранит следующего на 50% урона.
- Подсолнух (Sunflower):
- ★ Ур. 1 (Базовый): 25 ☀️ каждые 12 сек.
- ★★ Ур. 2 («Крупный подсолнух»): 35 ☀️ каждые 10 сек.
- ★★★ Ур. 3 («Благодатный свет»): Каждая вспышка солнца излучает ауру, восстанавливающую +30 HP всем соседним растениям в радиусе 1 клетки.
- Стеноорех (Wall-nut):
- ★ Ур. 1 (Базовый): 400 HP.
- ★★ Ур. 2 («Каменный монолит»): 700 HP + поглощение 15% входящего урона.
- ★★★ Ур. 3 («Шипованный бастион»): 1000 HP + возврат 30% полученного урона атакующим зомби при каждом укусе.
- Картофельная мина (Potato Mine):
- ★ Ур. 1 (Базовый): Время взведения 15 сек, взрыв в клетке на 1800 урона.
- ★★ Ур. 2 («Быстрый фитиль»): Время взведения сокращено до 6 сек!
- ★★★ Ур. 3 («Атомный Spudow»): Взрыв 3x3 клетки + оставляет горящую яму лавы, замедляющую и сжигающую врагов.
- Повторитель (Repeater):
- ★: 2 горошины за выстрел.
- ★★: 2 горошины + шанс 20% выпустить третью горошину.
- ★★★: Огненный Повторитель — горошины зажигаются и наносят сплэш-урон.
- Ледяной горох (Snow Pea):
- ★: Замедление на 4 сек, урон 20.
- ★★: Увеличенный холод (замедление 6 сек, зона заморозки задевает зомби позади).
- ★★★: Шанс 15% полностью превратить зомби в ледяную глыбу на 2 сек.
- Зубастик (Chomper):
- ★: Заглатывание и 30 сек жевания.
- ★★: Жевание ускорено до 14 сек.
- ★★★: Способен проглотить сразу 2 зомби подряд перед началом жевания!
3.4. Глобальные Пассивные Перки Садовника
Постоянные пассивные улучшения, действующие во всех режимах игры:
- 🧲 Магнитный газон (Ур. 1-3): Радиус автосбора монет и солнц увеличен на +30% / +60% / Полный автосбор по экрану.
- 💰 Стартовый капитал (Ур. 1-3): Старт боя с +50 ☀️ / +100 ☀️ / +150 ☀️.
- ⏳ Ускоренный полив (Ур. 1-3): Время перезарядки (cooldown) всех карточек семян снижено на -10% / -20% / -30%.
- 🛡️ Упорные корни (Ур. 1-3): Запас здоровья всех растений на газоне увеличен на +15% / +30% / +50%.
- 🍀 Золотая рука (Ур. 1-3): Шанс дропа монет и редких материалов из зомби повышен на +25% / +50% / +75%.
4. Завершённые фазы (v1.8 — v2.1)
✅ Фаза VIII (v1.8): «Дзен-Сад (Пассивный доход и улитка Стинки) и Альманах» (Выполнено)
- Дзен-Сад с 8 горшками: покупка саженцев (100 монет), 4 стадии роста, уход (лейка, удобрение, граммофон).
- Улитка Стинки (Stinky the Snail): автосбор монет, кормление шоколадом для 3x ускорения.
- Пассивный оффлайн-доход: начисление монет при возвращении в игру.
- Пригородный Альманах: полное иллюстрированное досье на 13 растений и 8 зомби, включая секретного Зомби-Йети с дропом 4 алмазов.
✅ Фаза IX (v1.9): «Садовый Рогалик (Roguelike Drafting) и Система Достижений» (Выполнено)
- Режим Рогалика: этажи, драфт семян и 6 уникальных реликвий (Цепная молния, Токсичная почва, Солнечный резонанс, Железная кора, Вампирский сок, Древесный стимулятор).
- HUD активных реликвий: индикация на экране во время боя.
- Система достижений: 14+ трофеев с прогресс-барами, всплывающими тост-уведомлениями, наградами в монетах/кристаллах и сохранением в профиль.
✅ Фаза X (v2.0): «Туман, Крыша, Древо Мудрости, Доктор Зомбосс и Лидерборды» (Выполнено)
- Биомы Туман и Крыша:
- Крыша: скошенная черепица, кирпичная труба, необходимость Цветочных Горшков (
flowerpot). - Туман: плотная атмосферная пелена над правой частью газона с динамическим дрейфом.
- Навесная артиллерия: Капустопульта (
cabbagepult) и Арбузопульта (melonpult) с параболической физикой и сплэш-уроном.
- Крыша: скошенная черепица, кирпичная труба, необходимость Цветочных Горшков (
- Древо Мудрости и Чит-коды:
- Рост за древесное удобрение (150 монет) с мудрыми советами садовника.
- Секретные клавиатурные чит-коды:
mustache(усы),future(неоновые киберочки),daisies(цветы при смерти),dance(танцы нежити),pinata.
- Финальный босс Доктор Зомбосс & Зомбот:
- 6000 HP, 3 фазы боя.
- Раздавливание растений лапой робота, десант зомби на резинках (Bungee), ледяные и огненные шары (растопление Халапеньо / заморозка Ледяным горохом), бросок фургона на 3-й фазе.
- Эпический салют взрывов и богатый дроп при победе.
- Доска Почёта и Рекорды:
- Топ-10 результатов по режимам: Выживание, Рогалик, Приключение, Я Зомби, Боулинг, Зомбосс.
✅ Фаза XI (v2.1 Финал): «Саундтрек, Boss Rush, Кастомные темы и PWA» (Выполнено)
- Мульти-биомовый процедурный саундтрек:
- Web Audio синтезатор генерирует уникальные музыкальные темы для каждого биома:
day(солнечный весёлый Grasswalk),night(таинственный эфирный минор Moonglow),pool(карибский баунс / маримба Watery Lounge),fog(напряжённый эмбиент с детьюнированными пэдами),roof(героический марш с восходящими аккордами),boss(драйвовый тяжёлый рок/метал Brainiac Maniac).
- Методы
PvZAudio.startMusic(theme),setTheme(theme),getTheme().
- Web Audio синтезатор генерирует уникальные музыкальные темы для каждого биома:
- Режим «Boss Rush» (Череда Боссов):
- 3 эскалирующие волны:
- Орда тяжелоатлетов-футболистов и зомби с ведрами;
- Элитный спецназ с шестами и газетами;
- Доктор Зомбосс на боевом Зомботе.
- Награда за победу: +500 монет и +2 алмаза, собственный раздел в Доске Почёта.
- 3 эскалирующие волны:
- Визуальные темы и кастомные скины:
- Переключение в шапке игры в один клик:
- 🎨 Классика (традиционный газон и интерфейс),
- 🎨 Киберпанк (неоновый циан и маджента, матричные сетки),
- 🎨 Ретро 8-бит (пиксельный аркадный стиль CRT),
- 🎨 Зима (морозный лазурный газон, снежные акценты).
- Сохранение выбранной темы в аккаунт игрока.
- Переключение в шапке игры в один клик:
- PWA (Progressive Web App) и Офлайн-игра:
manifest.jsonсо всеми размерами иконок и standalone-режимом.sw.jsService Worker с кэшированием всех файлов игры для мгновенного запуска без интернета.- Сгенерированные иконки 192x192, 512x512 и favicon.ico.
- Тестовый охват:
- 172/172 автотестов проходят со 100% успехом в
scripts/test_game.pyиwindow.PvZTestAPI.
- 172/172 автотестов проходят со 100% успехом в
- Домен:
https://ai.qpid.pro/— полностью развернуто, работает без внешних зависимостей.