Lava — Преодолей любые препятствия!

Вы оказались в мире, где лава пытается захватить всё вокруг. Фантастика? Нет, это новый игровой проект! В этом мире, полностью заполненном лавой, вам предстоит выбираться из руин, лабораторий, заброшенных зданий, замков и таинственных технических сооружений.
Игра имеет линейный процесс с постепенным повышением сложности. Каждая стадия — это уникальная локация со своими загадками и особенностями. Но все стадии объединяет одно: вам нужно найти портал для перемещения и шагнуть в него.
Игра была создана с использованием WebGL, а для разработки использовалась библиотека Three.js. Карты были нарисованы в TrenchBroom — это очень удобный редактор для создания простых локаций. Можно было использовать Blender, Maya, 3D Max или даже Houdini, но эта история не про них, а про TrenchBroom и о том, почему мой выбор пал именно на него.
В первую очередь, в этом редакторе можно расставлять сущности и задавать параметры для каждой из них, а также легко добавлять свои собственные сущности.

Процесс создания «мини» игрового движка на базе Three.js весьма прозрачен, но далеко не прост. Пишем парсер для .map-файлов от Quake (в TrenchBroom это основной формат). Полученный набор brush/entity преобразуем в удобный формат для работы и меняем основную ось с Z на Y.
Оживляем сущности. Для этого мне потребовались: двери, кнопки, платформы, триггеры, телепорты, источники света и другие вспомогательные элементы. Самыми важными были двери, платформы и кнопки — они созданы на базе одной сущности и отличаются лишь набором параметров. Это значительно упростило процесс написания кода. Буквально, написав код для одной сущности, я сделал мир более живым, а с добавлением триггеров для создания связей между объектами мир стал полностью ожившим.
После создания базового прототипа движка начался процесс создания карт. Первые карты были похожи на набор экспериментов с сущностями. Они не вошли в релиз, а так и остались за кулисами. Самая первая карта, которая появилась, — это «Реактор». Именно с неё начался путь.

Следующей картой был «Туннель». Эта карта появилась не случайно и имеет свою предысторию. Однажды я увидел на пластинке со сборником музыки на космическую тематику, как зеркала, расставленные под небольшим углом, создавали иллюзию фантастического туннеля. В тот момент это произвело на меня очень необычное впечатление и разожгло фантазии на тему перемещения на другие планеты. Тем более на пластинке были исполнители, у которых много композиций про космос, и которые мне очень нравятся: Jean-Michel Jarre, Didier Marouani и другие авторы.

Игра опубликована на площадке itch.io (очень удобная платформа для публикации ваших проектов).