- 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
85 lines
4.8 KiB
Markdown
85 lines
4.8 KiB
Markdown
# 🌻 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).
|
|
|
|
---
|
|
|
|
## 📁 Структура проекта
|
|
|
|
```text
|
|
├── 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 (опционально)
|
|
|
|
### Запуск бэкенда
|
|
```bash
|
|
python3 scripts/feedback_server.py
|
|
```
|
|
Сервер запустится на порту `8001` и автоматически создаст базу данных `data/pvz.db`.
|
|
|
|
### Запуск тестов
|
|
```bash
|
|
python3 scripts/test_game.py
|
|
```
|
|
|
|
---
|
|
|
|
## 📜 Лицензия
|
|
Open Source. Создано в рамках проекта Qpid Web Gaming.
|