7.7 KiB
7.7 KiB
3D Hommie RPG — Выживание в большом городе
Браузерная 3D RPG о выживании бездомного в большом городе. Управляй персонажем от первого лица, зарабатывай деньги, строй укрытие, прокачивай навыки и борись с опасностями улицы.
Скриншот
Запустите игру через браузер — Three.js рендерит сцену прямо в
<canvas>.
Технологии
| Технология | Версия | Назначение |
|---|---|---|
| Three.js | 0.160.0 | 3D-графика и рендеринг |
| Vanilla JavaScript | ES6+ модули | Игровая логика |
| HTML5 / CSS3 | — | UI и стили |
| Node.js / Serve | — | Локальный dev-сервер |
Зависимости от сторонних фреймворков (React, Vue и т.п.) отсутствуют. Three.js подключается через CDN (jsDelivr) с Import Maps.
Быстрый старт
# Клонировать репозиторий
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