216 lines
9.1 KiB
Markdown
216 lines
9.1 KiB
Markdown
# 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
|
||
|
||
## 📞 Контакты
|
||
|
||
По вопросам и предложениям обращайтесь к разработчику.
|