Кодек молчания
Видеокодеки остаются нерешённой инфраструктурной проблемой геймдева. Разработчики тратят недели на пятисекундные заставки, а NDA запрещают обсуждать детали.
Когда разработчик вставляет в игру видеоролик — заставку издателя, кат-сцену, живое видео с актёрами — он сталкивается с задачей, у которой нет хорошего решения. Видеокодек, программа для сжатия и воспроизведения видео, должен работать на PC, консолях, мобильных устройствах и Steam Deck. Каждая платформа требует свой формат. Единого стандарта не существует.
Сэм Барлоу, автор Her Story и Immortality, объясняет проблему через арифметику. Immortality содержит 10 часов видео — три полнометражных фильма. Каждый ролик нужно экспортировать в нескольких форматах: один для мобильных устройств через нативные плееры, другой для консолей через кодек Bink, третий для PC. Сотни файлов, каждый в нескольких версиях. «Вы очень быстро понимаете, что универсального решения не существует».
Томас Альтенбургер из Flying Oak Games описывает техническую сторону. Все консоли поддерживают аппаратное декодирование H.264. На бумаге — упрощение. На практике каждая платформа требует собственного кода для запуска декодера, получения кадров, конвертации цветовых пространств и рендеринга. Для одной платформы — терпимо. Для четырёх консолей, трёх десктопных ОС и двух мобильных систем — недели работы, которые не создают ни одного нового игрового элемента.
Когда издательский контракт обязал команду Альтенбургера вставить пятисекундный видеоролик с логотипом, а кодек отказался сотрудничать, студия нарезала видео на сотню PNG-кадров и проиграла их как слайдшоу. Размер билда удвоился. Ради пяти секунд анимированного лого.
Марк ЛаКруа, разработчик Blippo+ с шестью часами живого видео, до игр десять лет работал видеоредактором. Он был уверен, что опыт поможет. Не помог. Каждое изменение в постпродакшене означало пересборку в трёх форматах — VP9, H.264, H.265 — с ручной проверкой артефактов сжатия в каждом. ЛаКруа, к слову, тестировал Switch-версию 28-часовыми сессиями, дважды за ночь вставая переключать внутриигровые каналы, чтобы поймать вылет.
Алекс Кейн из Pawsmonaut Games обнаружил проблему после релиза. Его Aethus использовал H.264 — стандартный формат для Windows. На Steam Deck кат-сцены не воспроизводились и роняли игру. В документации Unreal Engine по воспроизведению видео — ни слова о совместимости кодеков с Proton.
Программист Пол Хьюз попытался решить проблему напрямую, создав высокопроизводительный кодек Chroma. Препятствие оказалось не техническим. Видеосжатие обложено патентами, а платформенные SDK закрыты соглашениями о неразглашении. Открытый движок Godot годами не мог интегрировать поддержку консолей именно из-за NDA. Несколько разработчиков, опрошенных для материала, не смогли раскрыть детали по той же причине. Проблема, которую нельзя обсудить публично, не может быть решена коллективно.
ЛаКруа видит в этом замкнутый круг. Видео плохо представлено в играх — специалисты по видео не идут в индустрию. Компании не нанимают таких людей. Создатели инструментов не делают решений для игр. «Это спираль. Всё остаётся таким не потому, что кто-то так решил, а просто по инерции».
Индустрия, рендерящая фотореалистичные миры в реальном времени, не способна надёжно воспроизвести пятисекундный логотип на всех платформах. Патенты блокируют открытые решения. NDA запрещают делиться опытом. Платформодержатели не видят коммерческого смысла в унификации. Пока кто-нибудь из них не решит, что единый видеостандарт — это конкурентное преимущество, разработчики продолжат нарезать ролики на сотню картинок и называть это шиппингом.
Подписаться на 😅
Post #1923
257

- 🤬 5