Steam Machine: насколько сильно Steam Phone отстанет? Hard Philosophy

ifanr фокусируется на «продуктах будущего», а в его колонке «Жесткая философия» предпринимается попытка снять поверхностный слой технологий и параметров, чтобы исследовать человеческий фактор в дизайне продукции.

Для заядлых ПК-геймеров самым большим оскорблением является не столько то, что их назвали "легко" после матча, сколько вопрос, заданный во время обсуждения игры:

Можно ли играть в эту игру на телефоне?

Этот глубокий разрыв между ПК и мобильными телефонами существует уже более десяти лет. В Европе и Америке на игровом рынке, по крайней мере, присутствуют консоли, но на внутреннем рынке, где консоли не очень популярны, этот разрыв сформировал простую иерархию презрения: игры для ПК просто лучше, чем игры для мобильных устройств .

Но эти барьеры не являются постоянными.

Будь то разработчик игр, стремящийся к прибыли, или независимый разработчик, желающий привлечь больше людей к своим играм, все они надеются расширить географию своих игр и охватить больше игроков.

▲Клетка для животных

Сюда входят Steam, в настоящее время крупнейшая платформа для продажи игр на ПК, и Valve, компания, стоящая за ней.

На самом деле, амбиции Valve простираются гораздо дальше. Хотя трио Steam Machine, выпущенное всего месяц назад, по-прежнему представлено в привычном «консольном» формате, Valve действительно надеется дать вам возможность играть в AAA-игры для ПК на мобильном телефоне .

Освободите Windows из клетки.

Как и Steam Deck, Steam Machine — это консоль, но она работает на полноценном ПК. Главное отличие от компьютера под управлением Windows — это операционная система: SteamOS, основанная на Arch Linux.

▲ SteamOS 3 на Arch Linux

Однако, устоявшиеся позиции Windows, созданные за десятилетия, не так-то легко поколебать, и самая большая проблема при запуске игр на Linux заключается в том, что сами игры несовместимы.

Для решения этой проблемы Valve на раннем этапе предпринимала усилия, поощряя разработчиков создавать отдельные версии для Linux в дополнение к версиям для платформы Windows. Однако оказалось, что ожидать от разработчиков игр активной адаптации к ограниченному числу пользовательских платформ — это все равно что ожидать снега в Гуанчжоу .

▲ Изображение | How-to Geek

Поэтому при разработке Steam OS для Steam Deck компания Valve, оставаясь верной пути Linux, выбрала совершенно иной подход:

Поскольку разработчики не проявляют инициативы в вопросе адаптации, я разработаю достаточно хороший слой совместимости. Пока игровой процесс не пострадает, игрокам будет всё равно, работает игра на Windows или Linux.

Этот слой совместимости, который «позволяет Linux обеспечивать игровой процесс, сравнимый с Windows», — это собственный Proton от Valve. Он переводит API, необходимые для игр Windows, на язык Linux практически без потерь, позволяя запускать игры, уже доступные в Steam, на Steam Deck .

▲ Изображение|Reddit

Но планы Valve не ограничиваются Steam Deck и Linux. Гарнитура Steam Frame, выпущенная одновременно со Steam Machine, предвещает новую революцию.

Хотя основная функция Steam Frame — это потоковая передача VR-контента, Valve тестирует его способность запускать игры локально .

▲ Изображение | CNET

В отличие от гарнитуры Galaxy VR, которую мы видели в прошлом месяце, Valve не выбрала процессор Snapdragon AR, обычно используемый в гарнитурах. Вместо этого они сразу же остановились на Snapdragon 8 Gen 3 — том же процессоре, что и в Xiaomi 14, — что позволило Steam Frame не только транслировать, но и запускать игры для Windows независимо от SteamOS.

Другими словами, начиная со Steam Frame, Valve не только преодолела разрыв между игровыми ресурсами в Windows и Linux, но и преодолела разрыв между платформой x86 и ARM, сделав действительно возможным бесперебойный запуск ПК-игр на базе Linux на устройствах ARM .

От архитектуры x86 к архитектуре ARM

Технология, позволяющая Steam Frame запускать игры для ПК на базе процессора Snapdragon 8 Gen 3, также является слоем совместимости, но она не так известна, как Proton; её название — FEX.

▲ Изображение | GitHub

Чтобы игры из библиотеки Steam, изначально разработанные для платформы x86 Windows, могли запускаться нативно на платформе ARM SteamOS (Linux), Proton и FEX должны работать вместе — именно это и делает Steam Frame.

Этот процесс можно упростить следующим образом:

  • FEX сначала создает среду выполнения инструкций x86 на процессоре ARM, что позволяет SteamOS загружаться в обычном режиме.
  • После загрузки SteamOS используйте Proton для преобразования игр для Windows в игры для Linux, а затем откройте и запустите игру в обычном режиме.

Поскольку Linux в основном использует графические API OpenGL и Vulkan, а почти все игры, разработанные для Windows, используют графический API DirectX от Microsoft, основная задача Proton — преобразовывать запросы на рендеринг на основе DirectX в игре в Vulkan, а затем передавать их на ЦП и ГП для генерации изображений.

▲Ведьмак 3

На самом деле существует множество подобных «инструментов для перевода», таких как Wine, на основе которого создан Proton. Однако то, что действительно позволяет SteamDeck, как маломощному портативному устройству, запускать нативные игры для Windows, — это не просто перевод, а эффективный перевод.

Способность Proton эффективно транслировать DirectX и Vulkan основана не только на существующем DXVK в Wine, но и на двух новых стандартах, разработанных под руководством Valve: VKD3D-Proton и Ntsync.

Основная функция VKD3D-Proton — преобразование новейшего графического API Direct3D 12 в Vulkan , что позволяет SteamOS запускать новейшие высокобюджетные игры, разработанные в последние годы. Одновременно с этим, он поддерживает трассировку лучей, Reflex и FSR4 в среде Linux, обеспечивая множество преимуществ.

▲ Например, благодаря DX12, Steam Deck теперь поддерживает технологию низкой задержки Nvidia Reflex.

С другой стороны, Ntsync — это потрясающая технология для игр на Linux. Это низкоуровневый драйвер ядра Linux, который может обеспечить понимание семантики синхронизации Windows NT практически без потерь.

Вкратце, Ntsync минимизирует потребление ресурсов процессора, когда Linux эмулирует среду Windows , что приводит к значительному улучшению производительности в ресурсоемких игровых сценариях (таких как скопления людей и растительность).

▲Cyberpunk 2077 V: Жилой дом этажом ниже чрезвычайно ресурсоемкий для процессора.

Таким образом, SteamOS использует DXVK для трансляции старых API, VKD3D-Proton для эффективной трансляции новых API и Ntsync для минимизации потребления ресурсов процессора, что в конечном итоге позволяет разработчикам игр запускать игры для Windows непосредственно на SteamDeck без необходимости активной адаптации.

Однако SteamDeck по-прежнему использует настольный процессор x86, в то время как Steam Frame использует мобильный процессор на базе ARM. Как же игры для Windows могут запускаться нативно в среде ARM?

▲ Прозрачный прототип Steam Frame от Valve | PC Gamer

Ответ по-прежнему заключается в симуляции . Однако простого перевода языка Windows в Linux внутри Proton недостаточно; необходим другой инструмент для перевода инструкций x86 в инструкции ARM, и этим инструментом является недавно появившийся FEX.

Поскольку процесс трансляции FEX-Emu более сложен и включает преобразование в наборы инструкций CISC и RSIC, оптимизацию порядка в памяти и трансляцию библиотек, его можно просто понимать как преобразование инструкций x86 в инструкции ARM с помощью компиляции Just-In-Time (JIT). Процесс трансляции более автоматизирован, а его адаптивность и скорость значительно выше, чем у других решений для трансляции .

▲ God of War 4 работает на Risa Starry O6 (платформа ARM) с помощью FEX | Взаимодействие с Linux

Кроме того, при совместной работе FEX и Proton, FEX транслирует только собственный код игры. Как только игра вызывает графический API (например, Vulkan или DX12), выполнение переходит к нативному коду ARM.

Это означает, что потеря производительности, вызванная эмуляцией x86 в FEX, ограничивается частью игровой логики, обрабатываемой центральным процессором, в то время как часть, отвечающая за рендеринг графики на графическом процессоре, работает практически на полной скорости, что в конечном итоге позволяет Steam Frame запускать игры для Windows, используя всего лишь процессор Snapdragon 8 Gen 3.

▲ Изображение | Пути к виртуальной реальности

Интересно, что Steam Frame совместим не только с играми для Windows в Steam, но и с некоторыми приложениями для Android — все они реализованы в SteamOS, основанной на Arch Linux. Слой, используемый для запуска программного обеспечения Android, по сути, представляет собой аналогичный слой совместимости.

Гениальность ситуации заключается в том, что, несмотря на то, что FEX — это проект с открытым исходным кодом, компания Valve незаметно предоставляет финансирование и техническую поддержку этому проекту с 2018 года.

▲ Фото | FOSS

В интервью изданию The Verge архитектор SteamOS Пьер-Луп Грифе заявил:

С 2016 года Valve занимается привлечением и финансированием разработчиков открытого программного обеспечения для решения проблемы запуска игр для Windows на ARM-процессорах. Valve не хочет, чтобы разработчики игр тратили время на портирование своих игр; вместо этого компания стремится использовать технологии для обеспечения прямой совместимости существующих библиотек игр для ПК с будущими аппаратными архитектурами.

FEX — это «технический подход», выбранный Valve: вместо того, чтобы заставлять разработчиков кропотливо создавать игры для разных платформ, лучше использовать универсальный инструмент, который позволяет различным платформам эффективно понимать код игр для Windows . В некотором смысле это также можно рассматривать как форму «инженерного подхода к человеческому фактору».

Steam Phone сильно отстаёт?

Также в интервью Пьера-Лупа Грифе, опубликованном на сайте The Verge, в конце беседы редактор Шон Холлистер задал Пьеру-Лупу Грифе интересный вопрос:

Будут ли в будущем телефоны, работающие под управлением SteamOS?

Ответ Пьера-Лу Грифе был несколько неоднозначным:

Мы действительно предприняли некоторые попытки в мобильном сегменте с помощью приложения Steam Link, но я не знаю, станет ли «разработка локального контента» или «разработка SteamOS для таких устройств (телефонов)» нашим основным направлением в будущем.

Судя по ответам, Valve в настоящее время позиционирует мобильные телефоны в первую очередь как устройства для потоковой передачи контента и мало заинтересована в разработке контента для мобильной SteamOS или даже для нативной Android.

Но, как уже упоминалось ранее, благодаря поддержке Proton и FEX-Emu, SteamOS фактически полностью готова запускать и поддерживать игры для Windows на мобильных устройствах .

На самом деле, были случаи, когда энтузиасты устанавливали SteamOS на свои телефоны, но из-за отсутствия базовой поддержки это часто приводило к огромным последствиям. Для демонстрационных целей это допустимо, но если вы действительно хотите запустить игру, будьте готовы к последствиям.

▲ Изображение | DualShockers

В действительности, будучи зрелой коммерческой компанией, Valve, должно быть, рассматривала возможность переноса SteamOS на мобильные устройства, учитывая глобальный рынок смартфонов, превышающий 500 миллиардов долларов. Однако препятствием, вероятно, были не стоимость или технология, а нечто очень знакомое геймерам на ПК —

Система защиты от читерства.

На самом деле, не говоря уже об отсутствии Steam Phone, даже на SteamDeck значительная часть игр, которые не запускаются должным образом , на самом деле связана с тем, что встроенные средства защиты от читерства не могут работать в среде SteamOS Linux , а не с непереводимым кодом игры.

Причина в том, что современные популярные античитерские программы, такие как BattleEye, EAC и Vanguard, должны быть загружены в ядро ​​Windows (Ring 0). Однако Proton, как «инструмент трансляции», не отвечает за эмуляцию ядра, из-за чего эти античитерские программы считают среду небезопасной и отказываются запускать игру.

▲ BattleEye (слева) и EAC (справа) | PCGamesN

Кроме того, FEX, отвечающий за трансляцию инструкций x86 и ARM, работает за счет компиляции в памяти в реальном времени. Этот динамический механизм трансляции практически идентичен логике читов (внедрение, перехват, модификация инструкций) с точки зрения античитерского программного обеспечения. Такой способ воздействия на целостность кода также напрямую вызовет срабатывание сигнализации античитерского ПО.

Это противоречие, существующее одновременно в неравных уровнях доступа (Ring 0 и Ring 3), ненадежной среде ядра и конфликте между механизмом обнаружения и логикой трансляции, станет непримиримой проблемой, если разработчики античитерских программ не предпримут инициативу и не предоставят версии античитерского программного обеспечения для Linux/ARM, не зависящие от драйверов ядра. В противном случае, основываясь исключительно на текущем решении Valve по эмуляции, это будет непримиримая проблема.

▲ Фото | Дексерто

Ввиду этой проблемы единственным решением для Valve может стать использование своего положения на рынке для того, чтобы подтолкнуть разработчиков античитерских программ к внедрению специальной сертификации белых списков для среды Proton + FEX, при этом Steam Machine, Steam Frame и Steam Phone будут обрабатываться по-разному.

Однако это решение доступно только производителям, готовым к сотрудничеству. Для игр, требующих надежной защиты ядра (например, для большого количества игр от Riot), этот подход пока нецелесообразен.

Однако «сложность» не означает «невозможность». В конце концов, проблемы, с которыми сейчас сталкивается Steam Phone, — это те же самые проблемы, с которыми когда-то сталкивался SteamDeck. Поскольку Valve удалось оптимизировать некоторые игры со встроенными функциями защиты от читерства для SteamDeck, разработка новых функций защиты от читерства для Steam Phone вполне возможна.

▲ Изображение | CNET

Более того, даже если Steam Phone не поддерживает 99% многопользовательских онлайн-игр из-за невозможности загрузки средств защиты от читерства, обширная база игр Steam для Windows по-прежнему предлагает бесчисленное множество отличных игр, которые не зависят от интернета и не требуют средств защиты от читерства.

Поскольку оперативная память, жесткие диски, видеокарты и даже сама операционная система Windows становятся все дороже, Valve, несомненно, будет осваивать рынки за пределами ПК . Steam Frame — это только первый шаг; Steam Phone, безусловно, не за горами.

Отбросив все остальное, просто представить, как я смогу играть в такие игры, как RimWorld, VA-11 Hall-A, Night in the Woods или даже Disco Elysium, в любое время и в любом месте на своем Steam Phone, было бы просто потрясающе.

▲ Изображение | Сообщество Steam

#Добро пожаловать на официальный аккаунт iFanr в WeChat: iFanr (идентификатор WeChat: ifanr), где вы сможете в кратчайшие сроки увидеть еще больше интересного контента.

ifanr | Оригинальная ссылка · Посмотреть комментарии · Sina Weibo