2cd343e8ef99d8475df074ce55bd439aa29871d1
- Implement in-game pause with Space/KeyP hotkeys and pause banner overlay - Split Auth modal into clean Profile Dashboard (stats, coins, cloud save status) and Guest Login - Shift lawn startY to 108 to make top-row zombie HP bars 100% visible - Render decorative wooden neighbour fence above top row
🌻 Plants vs. Zombies — Web Edition
Полноценная браузерная реализация культовой игры Plants vs. Zombies на чистом HTML5 Canvas и Web Audio API (0 внешних JS-фреймворков и библиотек) с серверной частью на Python и SQLite.
🎮 Особенности игры
-
5 Биомов газона:
- ☀️ День (Day) — классический газон с падающим солнцем.
- 🌙 Ночь (Night) — отсутствие солнца с неба, грибы и могилы.
- 🏊 Бассейн (Pool) — 6 линий, водные дорожки, кувшинки.
- 🌫️ Туман (Fog) — ночной бассейн со сложной видимостью.
- 🏠 Крыша (Roof) — наклонные скаты, цветочные горшки и катапульты.
-
Режимы игры:
- 🌿 Кампания (Приключение): 25 уровней с прогрессией и наградами.
- ⚔️ Выживание (Survival): бесконечные флаги с нарастающей сложностью.
- 🎳 Боулинг (Wall-nut Bowling): мини-игра с конвейерной подачей орехов.
- 🧠 Я, Зомби (I, Zombie): игра за сторону зомби против обороны растений.
- 🎲 Садовый Рогалик (Roguelike): драфт реликвий, случайные этажи и баффы.
- 👑 Битва с Боссом & Boss Rush: доктор Зомбосс на боевом роботе Зомботе.
-
Пассивные механики и прокачка:
- 🧪 Сад-Мастерская: 3-уровневая прокачка растений и 5 пассивных перков.
- 🪴 Дзен-Сад: выращивание ростков, сбор монет и улитка Стинки.
- 📖 Пригородный Альманах: справочник всех 13 растений и 8 зомби.
- 🏆 Зал Достижений: система трофеев и наград.
- 🌳 Древо Мудрости: прокачка высоты и открытие скрытых чит-кодов.
- 🎨 Темы оформления: Классическая, Киберпанк, Ретро 8-bit, Зима.
-
Серверная часть и профили:
- 👤 Система аккаунтов и гостевой режим (SQLite + REST API).
- 💾 Автоматическая синхронизация сохранений и прогресса на сервере.
- 🐛 Интегрированная система баг-репортов и обратной связи.
- 📱 PWA: поддержка автономной игры (Offline Service Worker).
📁 Структура проекта
├── game/ # Frontend игры
│ ├── index.html # Главный HTML-документ
│ ├── css/style.css # Стили и адаптивный UI
│ ├── js/
│ │ ├── main.js # Точка входа
│ │ ├── game.js # Игровой движок (GameEngine)
│ │ ├── entities/ # Сущности (растения, зомби, снаряды)
│ │ ├── systems/ # Игровые системы (экономика, волны, комбат, сад и т.д.)
│ │ └── utils/ # Аудио, тест-API, спрайты
│ └── manifest.json # PWA манифест
├── scripts/ # Backend & скрипты
│ ├── feedback_server.py # HTTP REST сервер (Auth & Bug Reports)
│ ├── db.py # Менеджер SQLite базы данных
│ └── test_game.py # Автономный тест-раннер (235+ тестов)
├── nginx/ # Конфигурации Nginx
├── docker-compose.yml # Развертывание Nginx в Docker
└── .env.example # Пример переменных окружения
🚀 Быстрый старт
Требования
- Python 3.10+
- Nginx / Docker (опционально)
Запуск бэкенда
python3 scripts/feedback_server.py
Сервер запустится на порту 8001 и автоматически создаст базу данных data/pvz.db.
Запуск тестов
python3 scripts/test_game.py
📜 Лицензия
Open Source. Создано в рамках проекта Qpid Web Gaming.
Description
Plants vs. Zombies Web Edition — HTML5 Canvas, Web Audio API, SQLite, Campaigns & Minigames
1.7 MiB
Languages
JavaScript
61%
Python
16.2%
HTML
13.8%
CSS
8.8%
Shell
0.2%