
Half-Life 2 тепер працює у браузері: фанатський вебпорт
Розробник під ніком slqnt опублікував браузерний порт Half-Life 2: класика 2004 року працює через Emscripten і WebGL2, ресурси пакуються по картах, а лицьову анімацію вимкнули заради стабільності.
Half-Life 2 — тепер у вкладці браузера
Фанатський вебпорт Half-Life 2 запускається прямо в браузері. Проєкт опублікував розробник під ніком slqnt: шутер Valve 2004 року працює через Emscripten і WebGL2, а автор також оприлюднив докладний текст про те, як збирався порт і від чого довелося відмовитися.
Над портом разом з автором працювала невелика група — 98006, weliveinhell, bread і bog. Перший тизер з’явився 20 березня 2026 року; тоді збірка ще мала безліч помилок, бракувало озвучення, а також були проблеми з лицьовою анімацією, які згодом вирішили, повністю вимкнувши цю систему.
На основі ланцюжка відкритого коду
Робота почалася з браузерного порту Portal від weliveinhell — форку репозиторію source-engine від nillerusr, тобто модифікованої версії рушія Source із Team Fortress 2, злитого у 2020 році. У цьому коді вже був режим рендерингу ToGLES: виклики OpenGL ES транслюються у WebGL2 через Emscripten, тому для Half-Life 2 майже не довелося працювати над рендерингом.
Оскільки цей рушій старший за випуск Half-Life 2 до 20-річчя, його ресурси не підтримувалися. Автор перейшов на гілку steam_legacy у Steam, щоб отримати сумісні дані. Завантаження ресурсів потребувало окремого конвеєра: рушій змінили так, щоб він логував кожен запит ресурсу, а скрипт аналізував логи й пакував файли в архіви .data — по одному на карту. Наявний скрипт для чанків був написаний під Linux, тож його довелося адаптувати під Windows і розпакувати всі VPK Half-Life 2.
Від чого відмовилися і що виправили
Система лицьової анімації Half-Life 2 — одна з головних особливостей оригіналу — створювала стільки проблем, що її вимкнули заради стабільності. Список виправлень довгий: збереження й завантаження довелося під’єднати до IDBFS з Emscripten; батареї, аптечки та настінні аптечки не працювали взагалі; гравітаційна гармата не додавалася до інвентаря, коли Alyx її передає; через лайтмапи карти іноді набували випадкових кольорів; ліхтарик використовував порожню текстуру; NPC раптово падали й гинули; хедкраби та зомбі не завдавали шкоди; вода була повністю чорною. Частину з цього — аптечки й падіння NPC — виправив контриб’ютор 98.
Далі були дрібніші зміни для зручності, зокрема прив’язка присідання до клавіші C, бо Ctrl активує браузерні скорочення й заважає грі.
Що далі
За словами автора, після відпочинку він візьметься за два епізоди Half-Life 2. Чи пошириться той самий підхід на інші ігри на рушії Source, наразі невідомо.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.