Valve открыла исходный код Lepton, нового проекта, который запускает Android-игры в Linux через Steam. Основной упор сделан на готовящуюся аппаратную платформу Steam Frame.

Уточним сразу: Lepton, в отличие от универсальной среды для Android вроде Waydroid, создан именно для игр. В Valve отмечают, что большинству пользователей нужна версия Lepton из состава Steam Client, а опубликованный исходный код предназначен в первую очередь для разработчиков и контрибьюторов.

Под капотом Lepton запускает Android-игры в контейнерах. Каждое приложение получает собственный Android-контейнер, а сам процесс Lepton работает от имени обычного пользователя без root и не требует вспомогательных компонентов с правами root.

Проект призван помочь разработчикам перенести VR-игры для Android на Steam Frame. В Valve замечают, что возможно и другое применение, но сейчас оно не в приоритете и может оказаться недоработанным.

Одно из интересных решений в архитектуре Lepton - тесная интеграция с хост-системой Linux. Проект умеет монтировать и использовать компоненты напрямую из хост-ОС, в том числе:

  • графические драйверы Mesa и технологии вроде Zink

  • библиотеки Steam и Steamworks

  • слои Vulkan для рендеринга и оптимизации

Lepton также поддерживает интеграцию с инструментами разработки и отладки: GDB, LLDB, RenderDoc, Strace и Perfetto.

В проекте две основные части. Первая собирает корневую файловую систему Android, в которой запускаются игры. Вторая - инструмент контейнеризации, который Steam использует для запуска игр в этой среде.

Разработчики Valve не стали писать часть для Android полностью с нуля. Согласно документации проекта, Lepton включает патчи и компоненты из Waydroid, Anbox, Halium и Hybris.

Лицензии у двух частей тоже разные. Корневая файловая система Android распространяется под GPL-3.0 из-за входящих в неё компонентов, а сам инструмент совместимости Lepton доступен под лицензией MIT.

Релиз добавляет ещё один элемент в игровую инфраструктуру Valve, всё сильнее привязанную к Linux. Proton уже отвечает за Windows-игры в Linux, а Lepton расширяет эту стратегию на игры для Android, прежде всего те, что нацелены на платформу Steam Frame.

Впрочем, Lepton пока не стоит воспринимать как новое решение для запуска Android на десктопном Linux. Его задачи уже: дать те возможности Android, которые нужны для эффективного запуска игр внутри экосистемы Steam.

Исходный код доступен в GitLab-инстансе SteamOS от Valve.