Files
Hommie_RPG_Game/README.md
Maxim Dolgolyov 593a0b6943 docs: add README with full project description
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 01:23:37 +03:00

178 lines
7.7 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.
# 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)