# 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)