Image default
Технологии

DOOM на CSS? Программист заставил браузер рисовать шутер без графического движка

Программист из Нидерландов выпустил версию классического шутера DOOM, которая работает без графического движка. Вся графика в игре отрисовывается через CSS, а javascript отвечает только за логику, перемещение игрока и поведение монстров.

Проект называется cssDoom и для его создания автор взял оригинальные WAD-файлы из версии 1993 года и превратил каждый элемент сцены в HTML-блоки, а их положение в пространстве задаётся через CSS-трансформации. Главная техническая проблема: в CSS нет камеры и автор обошёл это классическим трюком — движется не игрок, а весь мир вокруг него. javascript передаёт в CSS четыре параметра: координаты игрока по X, Y, Z и угол обзора, а движок CSS сдвигает и поворачивает всю сцену в противоположную сторону. Запуск DOOM на разных устройства уже давно не новость, а вот его переделка интереснее.

Бессмертная классика в браузере

Главная проблема — браузеры не оптимизированы для тысяч 3D-трансформированных элементов. Большие карты заставляют Safari на iOS падать, поэтому была добавлена система отсечения (culling): элементы вне поля зрения или слишком далеко скрываются. С небом в игре вышла проблема, так как оригинальный DOOM жульничает и рисует текстуру неба на 2D-стенах поверх реальной геометрии. В честном 3D такой трюк не проходит, и сквозь окна становится видно то, чего не должно быть.

Читать далее:
Switch продалась тиражом в 155 миллионов устройств и стала самой успешной консолью Nintendo

В cssDoom доступны все девять уровней первого эпизода и пять уровней сложности. Помимо стандартного вида от первого лица, есть режим, где камера поднимается под потолок, а также режим следования за игроком с видом от третьего лица — причём позиция камеры там вычисляется целиком в CSS.

Оригинальный DOOM, вероятно, будет жить вечно

Исходный код выложен на GitHub и поиграть в браузерную версию может любой желающий.

Как думаете, у подобных экспериментов есть практическая польза за пределами «а сможет ли CSS запустить DOOM»? Или это чисто техническое развлечение, которое не влияет на реальную разработку? Делитесь мнением в комментариях.

Похожие записи

В белый список включили ВТБ, «Самокат» и онлайн-кассы

admin

В S7 Group допустили возвращение к проекту лоукостера

admin

Теперь создать свою игру ещё проще — Unity встроила ИИ прямо в движок и запустила бесплатный тест

admin