Valve、Steam FrameでAndroidゲームを動かす「Lepton」をオープンソース化
Steam FrameでAndroid向けのVRゲームがどうやって動いているのか。その中身を、誰でもソースコードで追えるようになった。
Valveは、Android用ゲームをLinux上で動かす互換レイヤー「Lepton」のリポジトリを、SteamOS向けのGitLabで公開した(Lepton - SteamOS GitLab)。WindowsのゲームをLinuxで動かす「Proton」のAndroid版にあたるもので、Steam Frameの単体動作を支える柱のひとつだよ。
Proton・FEX・Lepton、Steam Frameを支える3つの層
Steam Frameの中身は、Snapdragon 8 Gen 3(Arm64)の上で動くSteamOSだ。PC向けに作られたゲームをそのまま走らせるには、あいだに何枚か“翻訳”を挟む必要がある。Valveは開発者向けの資料で、その役割分担を次のように説明している(Steamworksドキュメント「What games can run standalone on Steam Frame」)。
| 互換レイヤー | 受け持つもの | 仕組み |
|---|---|---|
| Proton | Windows用ゲーム | Wineを改良したものと、DirectXをVulkanへ変換するDXVKなどを組み合わせる |
| FEX | x86向けにビルドされたゲーム | x86の命令をArm64へ変換し、OpenGLやVulkanの呼び出しは本体側のライブラリへ直接渡す |
| Lepton | Android用ゲーム | Androidの環境をコンテナとして動かし、オーバーヘッドを抑える |
LeptonがとくにありがたいのはVRゲームの開発元だね。ほかのスタンドアロン型VR機器向けに、すでにAndroid・Arm64版を作っている作品が多いからだ。Valveの資料でも、そうした“モバイル向けに最適化済みの版”を追加の手間なくSteam Frameへ持ってこられる点が強調されている。
配信する側の手順も用意されている。Steamworksでアプリの対応OSに「Android」を加え、Android用のデポにAPKを置いて起動オプションに指定すれば、SteamがLepton経由でインストールと起動をこなす(Steamworksドキュメント「How to upload Android APKs to Steam」)。資料には「Androidデポがあることで、Lepton経由でAPKをインストール・起動できるようになる」とはっきり書かれているよ。
ゲーム専用に削ったAndroid、ライセンスはMITとGPL-3.0
公開されたリポジトリは大きく2つの部品でできている。Androidのルートファイルシステムを組み立てる部分と、ゲームの起動時にSteamから呼び出されるコンテナ側の互換ツールだ。
ライセンスは部品ごとに分かれていて、互換ツールはMITライセンス、Androidのファイルシステム側はGPL-3.0。後者はWaydroid、Anbox、Halium、libhybrisといった既存のオープンソースプロジェクトの成果を取り込んでいるため、この形になっている。
設計でおもしろいのは、割り切り方の潔さだにゃ。
- root権限が要らない:rootでのセットアップや補助アプリ無しで動き、すべてのプロセスが同じ一般ユーザーとして走る
- 分離はコンテナ単位:アプリごとの分離はせず、コンテナまるごとで区切る
- 不要なサービスは止める:ゲームに要らないAndroidのサービスを無効にしている。そのぶん一部のアプリは動かない可能性がある
- 起動を速くする工夫:Androidのユーザー空間の状態をキャッシュして、立ち上がりを短くしている
- 開発者向けの道具立て:strace、gdb、lldb、RenderDoc、Perfettoといったデバッガーやプロファイラーとの連携、ホスト側のグラフィックドライバーの取り込み、Steamworksライブラリの統合、Vulkanレイヤーへの対応
つまり汎用のAndroidエミュレーターではなく、「ゲームを起動するのに最低限必要なものだけ」を残した環境になっている。リポジトリ自身も、ふつうの利用者はSteamクライアントに組み込まれたLeptonを使えばいい、という立場だ。好きなAPKを入れて遊ぶための道具として公開されたわけではない、という点は押さえどころだね。
開発者向けには、adbでLeptonにつなぐ方法(Leptonは5555番ポートで待ち受けている)もドキュメントにまとまっている(Steamworksドキュメント「Connecting adb to Lepton」)。Protonのときと同じく、コードが外に出たことで、SteamOS以外のLinux環境で試したり、不具合の原因を外部の開発者が追ったりする道も開けた。
Redditの反応:称賛は、いつのまにか「Valveを好きでいていいのか」論争に
Redditのr/Steamでは、このニュースがその日のトップに上がった。最初に目立ったのは、Steam Frameの値段には不満があっても、技術を外へ出す姿勢は評価したいという声だ。
Steam Frameの価格が気に入らない人はいるだろうけど、この機械は新しい技術をたくさん連れてくるし、それをオープンソースにまでしてくれる。本当にうれしい。Valveが完璧な会社だとは思わないけど、Valveがいなかったら僕らはもっと悪い状況にいたと思う。
コミュニティに何かを還元してくれる何十億ドル企業なら、好きになったっていいんだよ。
ここから話は「大企業だから嫌う」ことの是非へ移っていく。
何十億も稼いでいるというだけでValveを嫌う人を見かける。でもそれだけ稼げているのは、みんながお金を払いたくなるような良い仕事をしているからだし、200人ほどの社員にも十分な給料を払っている。これ以上何を望むの?
これに、真っ向から待ったをかける返信が付いた。
Valveは誰にも負けないくらい好きだよ。でも稼いでいる何十億の一部は、ギャンブルまがいの仕組みによるものだ。一部の人がValveを嫌うのは、そこなんだ。
ここで言う「ギャンブル」は、主に『Counter-Strike 2』のケース開封とスキン取引を指している。売上に占める割合はどのくらいなのか、年齢制限はあるのか、保護者の管理機能で防げるのではないか――スレッドはこの論点で一気に長くなった。
「一部」って言ったって、1%にも満たないでしょ。世界最大のゲーム配信プラットフォームの売上が大半なんだから。
Valveは『CS2』の年齢区分をいまも18歳以上にしている。結局のところ、すでにある保護者向けの制限機能を親が使うかどうかの話になる。
一方で、自分の経験から「それでも企業の責任はある」と語る人もいた。
ケース開封の倫理を批判するのはアリだと思う。13〜14歳のころ、危うくハマりかけたからね。要りもしないナイフに100ユーロを使った。自分で決めたことではあるけど、あれは10代の子どもが決めていいことじゃなかったのかもしれない。
「保護者の責任だ」という意見には、「それで企業の責任が消えるわけではない」という反論が返され、別の人は「中毒になるように心理学者を雇った」という主張に「ソースは?」と突っ込んでいた。売上の内訳についてはValveが細かく公表していないので、スレッドに出た数字の多くは確かめようのない見立てにとどまる。
最後に目を引いたのは、流れそのものを疑う声だ。
ここには仕込みの投稿がかなりある。「億万長者」の切り口は世論をValveに向けさせるためのもので、Steamの競合が悪い評判を受けるたびに、決まってこうなる。
AndroidのVRゲームを動かすコンテナの話から始まったスレッドは、ルートボックスと保護者の責任、そして巨大企業への信頼の話で終わっていた。LeptonのリポジトリにあるMITライセンスの文字は、そのどちらの側からも「還元」の例として持ち出されている。
関連記事
VRヘッドセット『Steam Frame』国内販売開始、256GB 199,980円でPC不要の単体動作にも対応
ValveのVRヘッドセット『Steam Frame』が9月15日、KOMODO STATIONで販売開始。256GBが199,980円、1TBが244,980円。PCと無線でつなぐだけでなく、ヘッドセット単体でもSteamのゲームが動くにゃ。
熱狂は続かなかった――VRゲーム『失速』の正体を、数字とユーザーの声で追う
RiftやPSVRに胸を躍らせたあの頃から、早10年。『最近VRの大作を聞かなくなった』という声が掲示板をにぎわせていたにゃ。Questの販売台数、Metaの巨額赤字、そしてValveの新型――数字を並べて
Steam Machineに早くも“死の赤い線”報告—Xbox 360のRRODを思わせるGPU故障がRedditで話題に
発売間もないValveのSteam Machineで、前面LEDが赤く点滅しGPU故障を示す“Red Line of Death”の報告がRedditに。Xbox 360の悪夢を思い出すユーザーもいるみたい。

コメント (0)
最初のひとことをどうぞ🐈
感想でも「わかる」の一言でも大歓迎。あなたのコメントがこのページの一番乗りです。