Skip to content

Gabryelf/PokeTD

Repository files navigation

🎮 PokeTD - Pokémon Tower Defense Game

Version FastAPI JavaScript Python PostgreSQL Render SQLAlchemy

🏰 Стратегическая Tower Defense игра в мире Pokémon с прокачкой, коллекционированием и PvP элементами!

ЖИВАЯ ДЕМО • 🚀 Быстрый старт • 📊 Особенности • 🎯 Геймплей


🎬 Видео геймплея

Gameplay Video Cloud Link


✨ Ключевые особенности

🛡️ Основной геймплей

Особенность Описание
🏰 Tower Defense Классическая механика TD с покемонами вместо башен
🌊 Динамические волны Постепенно усиливающиеся волны противников
Система элементов 18 типов покемонов с преимуществами и слабостями
🔗 Комбинирование Объединение покемонов для усиленных атак

📈 Прогрессия и награды

Система Детали
🎯 Уровни и опыт Прокачка покемонов через сражения
💰 PokeCoins Игровая валюта за победы и достижения
📚 Коллекционирование 150+ покемонов с разной редкостью
🏆 Достижения Награды за выполнение особых условий

🌐 Мультиплеер

  • 🏅 Лидерборды - глобальные и еженедельные
  • ⚔️ PvP режим - сражения с другими игроками (в разработке)
  • 👥 Система друзей - сравнение прогресса и совместные игры

🎮 Скриншоты игры

🏠 Главное меню

Lobby Современный интерфейс с быстрым доступом ко всем режимам

⚔️ Игровой процесс

Game Стратегическое размещение покемонов для защиты

📊 Коллекция покемонов

Collection Собирайте и улучшайте свою коллекцию


🚀 Быстрый старт

📋 Предварительные требования

Компонент Версия
Python 3.9+
PostgreSQL 12+
Git 2.20+

🖥️ Установка локально

# 1. Клонируйте репозиторий
git clone https://github.com/Gabryelf/PokeTD.git
cd PokeTD

# 2. Создайте виртуальное окружение
python -m venv venv

# Активация:
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate

# 3. Установите зависимости
pip install -r requirements.txt

# 4. Настройте окружение
cp .env.example .env
# Отредактируйте .env файл

# 5. Запустите приложение
cd backend
python run.py

🐳 Docker-установка

version: '3.8'
services:
  postgres:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: poketd
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: password
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data

  backend:
    build: ./backend
    ports:
      - "8000:8000"
    environment:
      DATABASE_URL: postgresql://admin:password@postgres:5432/poketd
      SECRET_KEY: your-secret-key-here
    depends_on:
      - postgres

volumes:
  postgres_data:

📡 API Документация

После запуска сервера доступны:

Ресурс Ссылка Описание
🔍 Swagger UI http://localhost:8000/docs Интерактивная документация
📖 ReDoc http://localhost:8000/redoc Альтернативная документация
💚 Health Check http://localhost:8000/health Проверка состояния

🔌 Основные эндпоинты

POST   /api/v1/auth/register    # 📝 Регистрация пользователя
POST   /api/v1/auth/login       # 🔐 Вход в систему
GET    /api/v1/users/me         # 👤 Информация о пользователе
POST   /api/v1/game/start       # 🎮 Начать новую игру
POST   /api/v1/game/action      # ⚡ Выполнить игровое действие
POST   /api/v1/game/end         # 🏁 Завершить игру
GET    /api/v1/leaderboard      # 🏆 Получить лидерборд

🚀 Деплой на Render.com

📝 Пошаговое руководство

  1. Подготовка репозитория
git add .
git commit -m "🚀 Подготовка к деплою"
git push origin main
  1. Создание Web Service

    • Перейдите на render.com
    • Нажмите "New +" → "Web Service"
    • Подключите GitHub репозиторий
  2. Настройки деплоя:

    Name: poketd-api
    Environment: Python 3
    Build Command: pip install -r requirements.txt
    Start Command: gunicorn backend.app.main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:10000
  3. Настройка PostgreSQL

    • Создайте базу данных на Render
    • Добавьте переменную окружения:
      DATABASE_URL=postgresql://user:password@host:port/dbname
  4. Переменные окружения

    SECRET_KEY=your-super-secret-key-here
    DATABASE_URL=postgresql://...
    ACCESS_TOKEN_EXPIRE_MINUTES=10080
    ENVIRONMENT=production
    JWT_ALGORITHM=HS256

🎯 Механики геймплея

⚡ Система элементов

# Преимущества элементов
ELEMENT_ADVANTAGES = {
    "fire": ["grass", "bug", "ice", "steel"],
    "water": ["fire", "ground", "rock"],
    "grass": ["water", "ground", "rock"],
    "electric": ["water", "flying"],
    "ice": ["grass", "ground", "flying", "dragon"],
    "fighting": ["normal", "ice", "rock", "dark", "steel"],
    # ... и другие элементы
}

⚔️ Расчет урона

Урон = Базовая атака × Множитель уровня × Множитель элемента × Критический множитель

📈 Прокачка покемонов

Аспект Описание
Уровень Повышается за опыт с побед
Эволюция При достижении определенного уровня
Навыки Уникальные способности каждого покемона
Предметы Усиление характеристик

🏗️ Технологический стек

🔧 Бэкенд

Технология Назначение
FastAPI Современный Python фреймворк
SQLAlchemy ORM для работы с БД
Pydantic Валидация данных
PostgreSQL Основная база данных
JWT Аутентификация
bcrypt Хеширование паролей

🚀 Инфраструктура

Сервис Использование
Render.com Хостинг и база данных
GitHub Actions CI/CD пайплайн
Docker Контейнеризация

🛠️ Инструменты разработки

  • Black - Форматирование кода
  • Flake8 - Линтинг
  • Pytest - Тестирование
  • Swagger/ReDoc - Документация API

🔮 Дорожная карта

🎮 Игровые функции

Этап Функции Статус
Q1 2024 PvP режим 🚧 В разработке
Q2 2024 Гильдии и кланы 📅 Запланировано
Q3 2024 Сезонные события 📅 Запланировано
Q4 2024 Торговля покемонами 📅 Запланировано

📱 Платформы

  • 📱 Мобильное приложение (React Native)
  • 🖥️ Десктоп версия (Electron)
  • 🌐 Веб-версия с WebGL графикой

⚡ Технические улучшения

  • Redis для кэширования
  • WebSocket для реального времени
  • Микросервисная архитектура
  • ML для баланса игры

👥 Команда разработки

Роль Участник Контакты
🧑‍💻 Основатель & Lead Dev Gabryelf GitHub
🎨 Game Designer @PROJECTSLV GitHub
🎮 Frontend Developer @PROJECTSLV GitHub
🚀 DevOps Engineer Gabryelf GitHub

🤝 Вклад в проект

Мы приветствуем contributions! Вот как вы можете помочь:

📋 Процесс разработки

# 1. Форкните репозиторий
# 2. Создайте ветку для фичи
git checkout -b feature/amazing-feature

# 3. Закоммитьте изменения
git commit -m '✨ Add some amazing feature'

# 4. Запушьте в ветку
git push origin feature/amazing-feature

# 5. Откройте Pull Request

📏 Стандарты кода

  • Используйте Black для форматирования
  • Пишите документацию для новых функций
  • Добавляйте тесты для нового кода
  • Следуйте PEP 8

📊 Статистика проекта

GitHub Stars GitHub Forks GitHub Issues GitHub Pull Requests

Last Release License


📞 Контакты и поддержка

Способ связи Ссылка Описание
🐛 GitHub Issues Issues Баги и предложения
📧 Email gabryelf@yandex.ru Личная связь
💬 Discord Сервер Сообщество игроков

⭐ Не забудьте поставить звезду репозиторию!

"Gotta Catch 'Em All in Tower Defense Style!" 🎮✨

Pokemon Banner

Присоединяйтесь к приключению сегодня!

About

🎮 PokeTD - это любительская браузерная игра в жанре Tower Defense! 🏆

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages