Разработчик Андрос Феноллоса представил проект по запуску Doom (открытой версии VizDoom) с помощью динамического интерфейса Django LiveView.

Основываясь на последних опубликованных мною тестах, Django LiveView, по-видимому, является самым быстрым динамическим интерфейсом (автор уверен, что можно измерить больше переменных), пояснил Феноллос.

Сравнение с эталонным тестом Django LiveView.
Сравнение с эталонным тестом Django LiveView.

«Но как я могу проверить его возможности? Нарисовав змейку? Pac‑Man?... Нет... давайте увеличим сложность до кошмарной! Давайте запустим Doom внутри Django», — добавил Феноллос.

Django запускает ViZDoom и отправляет по одному <div> на пиксель с указанием цвета. Игра работает со разрешением 100x100 пикселей при 60 кадрах в секунду = 600 000 div в секунду!

Вот как передаются данные:

  • ViZDoom генерирует фрейм;

  • Django преобразует фрейм в 10 000 разделов, используя свой движок шаблонов;

  • Django LiveView отображает их на странице подключённых пользователей;

  • CSS упорядочивает их. Кроме того, поскольку данные передаются по прямой трансляции, все игроки могут видеть одно и то же в режиме реального времени.

«Миссия выполнена! Django LiveView пережил стресс от Doom. Это был нелепый и забавный эксперимент, который доказал, что этот фреймворк может справиться практически со всем, что вы в него вкладываете. Теперь создайте что‑нибудь классное без Doom. Вы можете проверить исходный код на GitHub», — подытожил Феноллос.

Ранее команда разработки Хабра запустила культовую игру Doom прямо на профильном ресурсе для IT-специалистов. Это открытая версия Chocolate Doom, доступная в браузерах на ПК и мобильных устройствах.