Давным давно я занялся разработкой JavaScript API для запуска DOS игр в браузере. После стольких потраченных сил с удовлетворением могу сказать, что многие сайты со старыми игрушками перешили и используют именно мое API. Но, прогресс не стоит на месте и я занялся разработкой следующей версии js-dos.

Вас ждет много вкусностей:

  • Универсальные бандлы (zip архивы), которые содержат конфигурацию dosbox. Теперь для развертывании игры на сайте достаточно одной строчки кода
  • Открытый репозиторий бандлов
  • Виртуальные кнопки и джойстики для игры на мобильных устройствах
  • Бэкенд эмулятора полностью перемещен в Worker
  • Независимый, заменяемый рендер. Например, можно рендерить игру через Three.js
  • Поддержка нескольких бэкендов. Сейчас это только dosbox, но в планах поддержка dosbox-x и много чего ещё
  • web-rtc бэкенд Janus для игры в облаке

Зачем вообще нужен облачный сервис для DOS игр?


Технологии шагнули далеко вперед, современных мощностей уже зачастую хватает чтобы играть практически во все DOS игры прямиком в браузере. Однако, ситуация на мобильных устройствах выглядит много хуже. Мощностей многих устройств все ещё не достаточно чтобы играть в популярные игры: DOOM, MK, Carmageddon. Некоторые игры (например: C&C, Diablo) не работают даже на PC. Это связано с тем что пока невозможно имплементировать рекомпилирующий эмулятор на WebAssembly.

Именно в таких ситуация и должен помогать облачный сервис. Например, стандартный тест DHRY2 тест запущенный на мобильном устройстве обычно дает результат около 20 очков. Запущенный в облачном сервисе — 240 очков (этого достаточно чтобы играть в любую DOS игру).



Тестирование


Сейчас сервис проходит активное тестирование, его можно попробовать в действии. Мне очень нужны тестовые данные из стран СНГ.

Помочь с тестированием очень просто. Все что нужно — зарегистрироваться, поиграть по ссылке в DOOM и описать свои ощущения. Для запуска игры в облачном сервисе нужно использовать кнопку “>> Turbo”.



Могу много интересного рассказать про разработку js-dos v7, не знаю что было бы интересно сообществу. Очень жду обратной связи в комментариях или Discord проекта.

Спасибо.