diff --git a/README.md b/README.md new file mode 100644 index 0000000..4d3519a --- /dev/null +++ b/README.md @@ -0,0 +1,177 @@ +# 3D Hommie RPG — Выживание в большом городе + +Браузерная 3D RPG о выживании бездомного в большом городе. Управляй персонажем от первого лица, зарабатывай деньги, строй укрытие, прокачивай навыки и борись с опасностями улицы. + +--- + +## Скриншот + +> Запустите игру через браузер — Three.js рендерит сцену прямо в ``. + +--- + +## Технологии + +| Технология | Версия | Назначение | +|---|---|---| +| [Three.js](https://threejs.org/) | 0.160.0 | 3D-графика и рендеринг | +| Vanilla JavaScript | ES6+ модули | Игровая логика | +| HTML5 / CSS3 | — | UI и стили | +| Node.js / Serve | — | Локальный dev-сервер | + +Зависимости от сторонних фреймворков (React, Vue и т.п.) отсутствуют. Three.js подключается через CDN (jsDelivr) с Import Maps. + +--- + +## Быстрый старт + +```bash +# Клонировать репозиторий +git clone https://git.dolgolyov-family.by/maxim.dolgolyov/Hommie_RPG_Game.git +cd Hommie_RPG_Game + +# Установить зависимости +npm install + +# Запустить локальный сервер +npm start +``` + +Откройте в браузере: `http://localhost:3000` + +> **Важно:** игра требует HTTP-сервер (не открывать `index.html` напрямую через `file://` из-за ES6-модулей). + +--- + +## Управление + +| Клавиша | Действие | +|---|---| +| `W A S D` | Движение | +| `Мышь` | Обзор камеры | +| `E` | Взаимодействие | +| `I` | Инвентарь | +| `Q` | Квесты | +| `K` | Навыки | +| `Tab` | Карта / компас | +| `B` | Попрошайничать | +| `G` | Играть на улице (музыка) | +| `H` | Построить укрытие | +| `Space` | Атака / отбиться | +| `F` | Взять предмет | +| `M` | Меню | +| `Esc` | Пауза | + +--- + +## Игровые системы + +### Выживание +- **6 характеристик:** Здоровье, Голод, Тепло, Настроение, Гигиена, Деньги (₽) +- Характеристики убывают со временем в зависимости от погоды и сезона +- Расходуемые предметы восстанавливают параметры + +### Экономика +- Попрошайничество и уличная музыка — случайные пожертвования +- Доска объявлений — 7 видов подработок (мыть машины, раздавать листовки, разгружать товары и др.) +- Сбор и сдача бутылок +- Крафт и продажа предметов +- Репутация влияет на цены в магазинах и размер оплаты труда + +### Строительство укрытия +Постройте и улучшайте лагерь из 5 модулей: + +| Модуль | Эффект | +|---|---| +| Крыша | Защита от осадков | +| Кровать | Восстановление при сне | +| Печка | Обогрев | +| Дверь | Защита от врагов | +| Склад | Расширенное хранение | + +### Прокачка персонажа +- **4 ветки навыков:** Собирательство, Попрошайничество, Выживание, Торговля +- XP-система с экспоненциальным ростом требований к уровню +- Навыки меняют игровые модификаторы (шанс сбора, размер пожертвований и т.д.) + +### Репутация +- Шкала от −100 до +100 +- Влияет на диалоги с NPC, цены, опасность и возможности подработки + +### Опасности +- 4 типа врагов: бандиты, воры, пьяные, члены банды +- Ночью и при низкой репутации враги появляются чаще +- Укрытие с дверью — безопасная зона + +### Погода и сезоны +- Динамическая погода: ясно, дождь, снег, туман +- 4 сезона по 7 игровых дней +- Температура влияет на скорость потери тепла и голода + +### Квесты и достижения +- Система квестов с отслеживанием прогресса и наградами +- 25+ достижений в 5 категориях: выживание, социальное, экономика, бой, исследование + +### Компаньон +- Можно найти и приручить собаку, которая следует за игроком + +### Сохранение +- Локальное сохранение/загрузка прогресса +- Пункт «Продолжить» в главном меню + +--- + +## Структура проекта + +``` +3D_Hommie_Rpg/ +├── index.html # Точка входа +├── editor.html # Редактор карты +├── css/ +│ └── style.css +├── js/ +│ ├── main.js # Инициализация +│ ├── game/ +│ │ ├── Game.js # Главный контроллер и игровой цикл +│ │ ├── Player.js # Персонаж и характеристики +│ │ ├── Camera.js # Камера от первого лица +│ │ ├── World.js # Генерация мира и освещение +│ │ ├── UI.js # HUD, меню, диалоги +│ │ ├── Inventory.js # Инвентарь и предметы +│ │ ├── Equipment.js # Экипировка (4 слота) +│ │ ├── Housing.js # Строительство укрытия +│ │ ├── Skills.js # Навыки и прокачка +│ │ ├── Reputation.js # Репутация +│ │ ├── QuestSystem.js # Квесты +│ │ ├── Achievements.js # Достижения +│ │ ├── Events.js # Событийная система +│ │ ├── NPC.js # Неигровые персонажи +│ │ ├── Dog.js # Компаньон-собака +│ │ ├── Dangers.js # Враги и ИИ угроз +│ │ ├── Police.js # Полицейские патрули +│ │ ├── Weather.js # Погода +│ │ ├── Seasons.js # Сезоны +│ │ ├── Particles.js # Частицы (огонь, дождь, снег) +│ │ ├── SoundManager.js # Аудио +│ │ ├── SaveSystem.js # Сохранение +│ │ ├── JobSystem.js # Подработки +│ │ └── Interiors.js # Интерьеры локаций +│ └── editor/ +│ └── MapEditor.js # Редактор уровней +├── data/ +│ └── map-config.json # Конфигурация карты +├── textures/ # 3D-модели и текстуры +└── package.json +``` + +--- + +## Лицензия + +MIT License — свободное использование, изменение и распространение. + +--- + +## Автор + +Maxim Dolgolyov — [git.dolgolyov-family.by](https://git.dolgolyov-family.by/maxim.dolgolyov)