Назад
Half-Life 2 тепер працює у браузері: фанатський вебпорт
SiTech AI Team2 წთ. საკითხავი

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, наразі невідомо.

SSiTech

SiTech — веброзробка з підтримкою AI

Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.