3D Procedurally Generated Rooms Using three.js
![](/static_files/7b56cf_0d604419775d4dceab72c4f7820c7d3e~mv2.gif)
Добро пожаловать в мой выпускной проект, который я создал для своего курса по разработке игр! Процедурная генерация и 3D-графика — две из моих любимых областей, когда дело доходит до программирования, и мне было любопытно узнать, будет ли генератор уровней на основе сетки хорошо транслироваться в графический веб-API.
Three.js был выбран благодаря мощному движку и простому в реализации языку. Это действительно отличный язык, и год разработки, который потребовался для завершения проекта, был настоящей радостью, я действительно весело провел время, создавая его.
Пожалуйста, не стесняйтесь комментировать, если у вас есть какие-либо мысли или если вы столкнулись с какими-либо ошибками или проблемами с производительностью. Спасибо за игру! 😊
Перемещение: WASD
Вид: МЫШЬ
Пауза: ESC
Изменить/отменить камеру: 1, 2
Сделать снимок экрана: ПРОБЕЛ
Создать новую комнату: ENTER
Включить основной источник света: L
Показать сгенерированную информацию о комнате: I
Переключить сетку: G
Как это работает:
Всем комнатам назначается цветовая палитра на основе предопределенных цветовых гармоний. Программа проверяет размер комнаты и процедурно выбирает объекты для появления вдоль каждой стены на основе генератора случайных чисел, при условии, что в сетке достаточно места. После создания объектов поверх них помещаются дочерние объекты, такие как украшения, подушки и мелкие предметы.
Объекты стены проверяются на столкновение и появляются только в tсцена, если они не сталкиваются с другими объектами. Некоторым объектам также можно назначить освещение.
Есть много других подходов, которые можно использовать при процедурном создании комнат, но мне нужно было простое решение, чтобы его можно было запустить в браузере, поэтому я выбрал систему на основе сетки. Я большой поклонник инди-платформера Дерека Ю, Spelunky, и его книга с одноименным названием описывает некоторые приемы, используемые здесь.
Я загружу исходный код и отчет о своей диссертации, когда закончу курс, поэтому я опубликую ссылки здесь, когда закончу!
![](https://media.rawg.io/media/screenshots/b0c/b0c445999a4c3e719c5c952ad19ae4ac.jpg)
![](https://media.rawg.io/media/screenshots/bca/bcae5892ea833219f2e9f37c8b0427ac.jpg)
![](https://media.rawg.io/media/screenshots/eb0/eb016cf462d767d0fa18073255f53ebf.jpg)
Как скачать 3D Procedurally Generated Rooms Using three.js через торрент
Всего несколько простых шагов и вы можете играть:
- Устанавливаем программу μTorrent, через которую мы будем скачивать игры
- Скачиваем торрент-файл репака игры 3D Procedurally Generated Rooms Using three.js
- Двойным кликом открываем скаченный торрент-файл, программа μTorrent запустится автоматически и предложит вам выбрать место для скачивания файлов игры.
- После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!