9月17日、GamingOnLinuxが「Lepton from Valve to run Android games on Linux is now open source」と題した記事を公開した。ValveがAndroidゲームをLinux上で動作させる互換レイヤー「Lepton」のソースコードを、自社のGitLabインスタンスで公開したという内容だ。
Valveはこれまで、WindowsゲームをLinux/SteamOS上で動かす**Protonを開発・公開し、Steam Deckの普及とともにLinuxゲーミングの裾野を大きく広げてきた。LeptonはそのAndroid版に相当する位置づけだ。主な対象はSteam Frame**——Valveが展開するスタンドアロンVR向けデバイス——上でのAndroid VRゲームで、Meta QuestシリーズやMeta Horizon OSが支配するVR市場に対してValveが打ち出した技術基盤である。Android上で動くVRゲームをLinuxベースの自社エコシステムに取り込むための核心技術として、Leptonが位置づけられている。
ゲーム実行に特化した設計思想
Leptonは「汎用Androidエミュレータ」ではない。GitLabのREADMEには、他のAndroidコンテナ化プロジェクトとの差別化点が明記されている。
- 非rootで動作:rootfulなセットアップを不要とし、コンテナ内の全プロセスが同一の非rootユーザーとして実行される
- ゲーム専用の割り切り:ゲーム起動に不要なAndroidサービスを無効化し、最小限の機能のみを維持。汎用のAndroid利用は設計目標外
- 起動時間の最適化:Androidユーザースペースの起動を高速化するため、各種ステートをキャッシュする
- アプリ間の分離なし:アプリごとに個別のAndroidコンテナで実行することを前提とし、コンテナ間の強制分離は行わない
ゲームランタイムとしての実用性に振り切った設計であり、「使い勝手より速度と軽量さ」を優先した判断がにじんでいる。
開発者向けの実用的な機能群
ゲーム開発者がSteam Frameへ移植する際に役立つ機能も充実している。
ホストOSのライブラリとしてマウント可能なものには、グラフィックスドライバ(MesaやZinkなど)、Steam/Steamworksライブラリ、そしてVulkanレイヤーが含まれる。Vulkanレイヤーの中には、視線の焦点領域を高解像度で描画しその周辺を低解像度に落とすことでGPU負荷を削減するフォービエイテッドレンダリング(Foveated Rendering)のインジェクタや、レンダーパスオプティマイザが含まれる。VRコンテンツの描画負荷を下げるための最適化がプラットフォームレベルで組み込まれているわけだ。
デバッガ・プロファイラのサポートも充実しており、strace、gdb、lldb、renderdoc、perfetto といったツールとの統合が可能だ。開発・デバッグの現場で使われる標準的なツールチェーンがそのまま利用できる。
既存OSSプロジェクトの成果を組み込む
LeptonはAndroidコンテナのrootファイルシステム構築に際し、**Waydroid(Linux上でAndroidアプリを動かすコンテナソリューション)、Anbox、Halium(Androidカーネルとモバイルディストリビューションを橋渡しするプロジェクト)、Hybris**(libhybrisをベースにしたAndroid互換レイヤー)といった既存OSSプロジェクトのパッチとコンポーネントを組み込んでいる。
ライセンスはLepton本体がMITライセンス、Android rootfsがGPL-3.0という二層構造だ(それぞれLICENSE.leptonとLICENSE.AOSP.imageで管理)。フォークや改変を行う際はこの構造に注意が必要だ。
元記事ではProton、Lepton、そしてARMデバイス上でx86バイナリを動かすエミュレーション層**FEX**の三つを「Linuxゲーミングシーン全体にとって重要なプロジェクト」として並べて言及している。Valveがエコシステム全体の底上げに継続的に投資していることが見てとれる。
ソースコード公開で何が変わるか
通常の利用では、Steamクライアントが提供するLeptonをそのまま使うのが推奨されている。ただしソースが公開されたことで、コミュニティによるフォークや拡張の余地が生まれた。Steam Frame以外のデバイスへの展開や、VR以外のAndroidゲームへの応用、さらにはWaydroidのような既存プロジェクトへのフィードバックなど、OSSとしての波及効果がどこまで広がるかが今後の見どころだ。元記事も「正式にオープンになったことで、コミュニティが何をするか興味深い」と締めくくっている。
詳細はLepton from Valve to run Android games on Linux is now open sourceを参照していただきたい。