grechka-game/README.md

216 lines
9.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# GrechkaCraft: Multiplayer
2D песочница в стиле Minecraft с мультиплеером. Исследуйте, стройте, добывайте ресурсы и сражайтесь с мобами!
## 🎮 Управление
### Клавиатура (ПК)
- **A / ←** - движение влево
- **D / →** - движение вправо
- **W / ↑ / Пробел** - прыжок
- **S / ↓** - спуск вниз (на лестницах)
- **ЛКМ** - взаимодействие (добыча/строительство/атака)
### Сенсорное управление (мобильные устройства)
На мобильных устройствах (экраны шириной до 768px) отображается панель управления внизу экрана:
- **⬅️** - движение влево
- **⬆️** - прыжок
- **⬇️** - спуск вниз
- **➡️** - движение вправо
## 🎯 Режимы игры
Переключайте режимы кнопкой **🏃** в правом верхнем углу:
1. **🏃 Движение** - стандартный режим для передвижения
2. **⛏️ Добыча** - ломайте блоки и атакуйте мобов
3. **🧱 Строительство** - ставьте блоки
## 📦 Инвентарь и крафт
### Инвентарь
- Откройте инвентарь кнопкой **📦** в правом верхнем углу
- Выберите предмет для использования
- Инвентарь отображается поверх кнопок управления на мобильных устройствах
### Крафт
- Откройте панель крафта кнопкой **🔨** в правом верхнем углу
- Выбирайте рецепты из списка
- Кнопка "Создать" активна только если достаточно ресурсов
## 🧱 Блоки
### Базовые блоки
- **Трава** - основной блок поверхности
- **Грязь** - подповерхностный слой
- **Камень** - прочный блок для строительства
- **Песок** - падает при отсутствии опоры
- **Гравий** - падает при отсутствии опоры
- **Глина** - добывается в песчаных берегах
### Деревянные блоки
- **Дерево** - добывается из деревьев
- **Доски** - создаются из дерева
- **Лестница** - позволяет подниматься и спускаться
### Руды
- **Уголь** - топливо для костров
- **Медь** - редкая руда
- **Железо** - средняя редкость
- **Золото** - редкая руда
- **Алмаз** - очень редкая руда
### Декоративные и специальные блоки
- **Листва** - декоративный блок
- **Стекло** - прозрачный блок
- **Вода** - жидкость, можно плавать
- **Кирпич** - прочный строительный блок
- **Цветок** - декоративный элемент
- **Факел** - освещение ночью
- **Костёр** - освещение + жарка мяса
- **TNT** - взрывчатка
- **Кровать** - позволяет спать и пропускать ночь
- **Лодка** - для передвижения по воде
## 🍖 Предметы и инструменты
### Еда
- **Сырое мясо** - добывается из животных, восстанавливает 15 голода и 15 HP
- **Жареное мясо** - жарится на костре, восстанавливает 45 голода и 15 HP
### Инструменты
- **Деревянная кирка** - 60 прочности, mining power 1
- **Каменная кирка** - 130 прочности, mining power 2
- **Железная кирка** - 250 прочности, mining power 3
- **Деревянный меч** - 40 прочности, 5 урона
- **Каменный меч** - 100 прочности, 8 урона
- **Железный меч** - 200 прочности, 12 урона
## 👾 Мобы
### Дружественные (днём)
- **Свинья** - даёт 2 сырого мяса
- **Курица** - даёт 1 сырое мясо
### Враждебные (ночью)
- **Зомби** - атакует игрока, наносит 15 урона
- **Крипер** - взрывается рядом с игроком
- **Скелет** - стреляет стрелами издалека
## 🌍 Мир
### Генерация
- Детерминированная генерация на основе seed
- Автоматическая генерация при движении
- Разнообразные биомы: горы, равнины, пляжи
### День и ночь
- Автоматический цикл дня и ночи
- Ночью появляются враждебные мобы
- Нажмите на часы в UI для переключения на ночь
- Спите на кровати для пропуска ночи
### Физика
- Гравитация и коллизии
- Плавание в воде
- Лестницы для вертикального движения
- Урон от падения
## 💾 Сохранение
### Автосохранение
- Игра сохраняется автоматически при скрытии страницы
- Игра сохраняется перед закрытием страницы
- Игра сохраняется при отходе ко сну
### Ручное сохранение
- Кнопка **💾** в правом верхнем углу (только в одиночном режиме)
- Сохраняется в localStorage браузера
### Сброс игры
- Кнопка **🔄** удаляет сохранение и начинает новую игру
- Генерируется новый worldId
## 🌐 Мультиплеер
### Подключение
- Автоматическое подключение к серверу при запуске
- World ID отображается в левом верхнем углу
- Кликните на World ID для копирования ссылки
### Совместная игра
- Видите других игроков в реальном времени
- Общие изменения блоков
- Общий день/ночь
- Чат (временно скрыт)
### Синхронизация
- Позиции игроков синхронизируются 20 раз в секунду
- Изменения блоков мгновенно передаются всем игрокам
## 🛠️ Развертывание
### Локальный запуск
```bash
# Клонирование репозитория
git clone <repository-url>
cd grechka-game
# Запуск через Docker Compose
docker-compose up -d
# Игра доступна на порту 80
```
### Docker
```bash
# Сборка образа
docker build -t grechka-game .
# Запуск контейнера
docker run -p 80:80 grechka-game
```
### Структура файлов
- `index.html` - основной HTML файл
- `game.js` - игровой движок
- `style.css` - стили интерфейса
- `Dockerfile` - конфигурация Docker образа
- `docker-compose.yml` - конфигурация Docker Compose
## 📝 Недавние изменения
### Версия 1.3 (2026-01-03)
- ✅ Добавлена кнопка "вниз" для мобильных устройств
- ✅ Исправлен z-index для инвентаря и крафта (теперь поверх кнопок управления)
- ✅ Скрыт чат из интерфейса
- ✅ Добавлены проверки на null для предотвращения крашей JavaScript
### Предыдущие версии
- Мультиплеер через Socket.IO
- Система сохранения в localStorage
- Автоматический цикл дня и ночи
- Система крафта и инструментов
- Разнообразные мобы и блоки
## 🐛 Известные проблемы
- Чат временно скрыт
- На мобильных устройствах кнопки управления могут перекрывать hotbar
## 📄 Лицензия
Проект распространяется как есть.
## 🤝 Участие
Для внесения изменений:
1. Форкните репозиторий
2. Создайте ветку для новой функции
3. Внесите изменения
4. Отправьте pull request
## 📞 Контакты
По вопросам и предложениям обращайтесь к разработчику.