docs: add README with full project description

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-02-25 01:23:37 +03:00
parent fb5f09212b
commit 593a0b6943

177
README.md Normal file
View File

@@ -0,0 +1,177 @@
# 3D Hommie RPG — Выживание в большом городе
Браузерная 3D RPG о выживании бездомного в большом городе. Управляй персонажем от первого лица, зарабатывай деньги, строй укрытие, прокачивай навыки и борись с опасностями улицы.
---
## Скриншот
> Запустите игру через браузер — Three.js рендерит сцену прямо в `<canvas>`.
---
## Технологии
| Технология | Версия | Назначение |
|---|---|---|
| [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)