Полный текст

Разработчик Нильс Ленхеер превратил классический шутер Doom в браузерного монстра с отрисовкой на каскадных таблицах стилей. Проект cssDoom игнорирует canvas с WebGL ради манипуляций с бесконечными тегами <div>. Игровая логика из 90-х работает на JavaScript, пока движок строит 3D-сцену из обычных веб-прямоугольников. Исходный код открыт под лицензией GPLv2.Движок берёт координаты стен из оригинального WAD-файла и передаёт их напрямую в пользовательские CSS-переменные. Дальше каскадные таблицы сами вычисляют 3D-трансформации через встроенные тригонометрические функции. Плоская система координат старого Doom жестоко конфликтует с современными правилами позиционирования. Скриптам приходится инвертировать значения и двигать весь виртуальный мир в обратном направлении от статичной камеры игрока.Разделение труда работает чётко: код считает столкновения, а стили берут на себя всё визуальное оформление. Перемещение по уровню сводится к банальному обновлению четырёх числовых значений.