Разработчики выпустили браузерный порт первой Halo. В сюжетную кампанию и мультиплеерную версию теперь можно играть без установки игры. Перед запуском сайт просит подтвердить, что у пользователь есть копия оригинальной игры, но не проверяет это.

В основе проекта лежит восстановленный код Xbox‑версии Halo: Combat Evolved. Разработчики декомпилировали исполняемый файл, получили из него исходный код, который уже можно доработать и собрать для других платформ. Ранее этот код стал основой портов для Windows, Linux и Android.

Для сборки игры в WebAssembly разработчики использовали Emscripten. За графику отвечает WebGL 2. Игра запускается на устройстве пользователя: серверу не надо рендерить графику и передавать её видеопотоком. Для сетевой игры порт использует каналы WebRTC.
Кроме того, разработчики переписали сетевой код. В оригинальной Xbox‑версии все участники синхронно просчитывали игру и ждали обновлений от ведущей консоли. В веб‑версии клиент сразу обрабатывает перемещения игрока, а ведущее устройство определяет урон, счёт и регистрирует убийства. Это позволяет избавиться от ожидания полного обмена данными с хостом перед реакцией на собственное движение.
В мультиплеере система теперь сохраняет контрольные копии состояний через каждые 15 тиков. Если ведущий игрок теряет подключение или неожиданно завершает сессию, то другой пользователь автоматически берёт на себя роль ведущего. Вернувшийся сразу получает актуальные данные об игре. Разработчики заявляют поддержку до 128 игроков в мультиплеере на 128 машинах.
Для запуска нужен браузер Chrome 137, Edge 137, Firefox 153, Safari 27 или версии новее. Код проекта опубликован на GitHub, включая ветку с веб‑версией.
Источник: habr.com