docs: add README with full project description
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
177
README.md
Normal file
177
README.md
Normal 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)
|
||||
Reference in New Issue
Block a user