ValveはLinuxとオープンソースコミュニティへの優れたアップストリーム貢献者
(phoronix.com)- Steam DeckとSteamOSは、ValveのLinuxへの投資がゲーム機の中にとどまらず、オープンソースエコシステム全体へ波及している事例である
- SteamOSはArch Linux、GNUユーザー空間、systemd、KDE Plasmaの上に構成されており、ValveはKDE Plasmaの改善にも資金提供している
- Steam Play / ProtonはWineをベースにLinuxでのゲーム互換性を広げ、DXVKやVKD3D-Protonのようなプロジェクトもともに価値を生み出している
- 貢献範囲はMesa OpenGL/Vulkanドライバー、カーネルのグラフィックドライバー、AMDのカラー管理/HDR、Zink、Gamescope、Flatpakなどに広がっている
- Igaliaによると、Valveの方針は取り組んでいるものをすべてアップストリームすることにあり、その効果はLinuxデスクトップエコシステムにも及んでいる
Steam Deckから始まったアップストリーム効果
- ValveのSteam DeckとSteamOSへの取り組みは、オープンソースエコシステム全体を底上げする事例として扱われている
- Linux Foundation EuropeのOpen-Source Summitで、IgaliaのAlberto GarciaがSteamOSがLinuxエコシステムに貢献する方法を整理した
- IgaliaはValveと協力し、Linuxエコシステム改善作業の一部を継続して進めている
SteamOSの基盤とデスクトップ構成
- SteamOSはArch Linux上に構築されており、GNUユーザー空間とsystemdを使用している
- デスクトップモードではKDE Plasmaを提供し、ValveはKDE Plasma改善作業の一部に資金を提供している
- Steam Play / ProtonはWineを活用し、LinuxゲーマーとLinux愛好家に大きな価値を提供してきた
- 関連するオープンソースプロジェクトとしてDXVKとVKD3D-Protonも挙げられている
グラフィックスタックとカーネルへの貢献
- Valveのエンジニアたちは、Mesa OpenGL/Vulkanドライバーとカーネルのグラフィックドライバー構成要素に多くの改善を提供している
- 貢献対象は、Steam Deckハードウェアに恩恵をもたらすAMDグラフィックドライバーだけに限られない
-
Zink OpenGL-on-Vulkan
- Zink OpenGL-on-Vulkanの取り組みは、共通グラフィックインフラの改善と結び付いている
- Linuxグラフィックドライバーのサポート領域におけるValveとパートナーの貢献は、ゲーム以外のLinuxデスクトップエコシステムにも有益である
AMDのカラー管理からFlatpakまで
- IgaliaのエンジニアたちはValveとともに、AMDのカラー管理とHDRの取り組みに参加している
- Steam Playサポートを改善するための新しいLinuxカーネル機能の有効化といった領域にもIgaliaが関与している
- Valveが関与した他の取り組みも多方面に広がっている
- Linuxにおける大文字小文字を区別しないファイルシステムサポートの拡大
- 複数のカーネル機能
- Gamescope Waylandコンポジター
- イミュータブルなソフトウェアアップデート
- Flatpak
「Upstream everything」方針
- Igaliaによると、Valveの方針の一部は、取り組んでいるものをすべてアップストリームすることにある
- ValveのLinuxおよびオープンソースソフトウェアへの貢献をより包括的に見るには、Alberto GarciaのOSS EU 2023での発表を参照できる
1件のコメント
Hacker Newsの意見
Valveが愛されているのは、単にSteamがあるからだけではなく、Half-Life 1の頃から良いゲームを作り、ゲーマーに良いプラットフォームを提供しようとしてきたうえ、LinuxやVRのような自分たちの領域外の問題までゲーマーのために扱ってきたからだと思う。
Steamストアのポリシーなど批判される点はあっても、Valveは常にゲーマーのことを気にかけてきたと見ている。特定のゲームのためではなく、「ゲーム」を誰もが楽しめるようにしようとする継続的な支援があったからファンになった。
GabeはMicrosoftがゲームへの関心を強めることを懸念していて、デジタル配信への移行が避けられないなら、Microsoftより先にゲーマー寄りのプラットフォームを作ろうとしたのだと思う。Microsoft、Epic、GOGのような代替手段を見ても、オンライン配信への移行をValveよりうまく導いたところはなく、デジタルゲームに「理由を問わない返金」に近いポリシーを提供したのも印象的だ。返金期間外に壊れたゲームのようにポリシーに合わない場合でも、例外を設けて正しい方向で処理してきた。
最初のカスタマーサポートは役に立たず、Gabeに不満を送ったところ、Steam開発者の一人が返信して、初期対応が望ましい体験ではなかったと認めてくれた。返金されたゲームのコピーを再度送ってくれ、さらに私と息子が一緒にプレイできるように「現在および将来のすべてのValveタイトル」のコードまで送ってくれた。結局、その会社とプラットフォームへの好感度がさらに高まった。
Epicはデジタルストアが12%の手数料だけでも利益を出せると強調しているが、その資金をSteam Input、Proton、Workshopのように、すべての人にとってプラットフォームを良くするものへ再投資している姿は、Valveほどには見えない。
スクリーンリーダーでSteamを使うのは今も大変で、そのため人々が利用ガイドまで書かなければならなかった。最近Windowsでは少し改善したが、Macは依然として悪い。視覚障害者がプレイできるSteamゲームは、標準対応であれアクセシビリティモードであれかなりあるが、Steam Deckには、Linuxのスクリーンリーダーが存在し、PS5とXboxにも独自機能があるのとは違って、アクセシビリティ支援がまったくない。Valveが本当に気にかけているとは考えにくい。
[1] (古い情報) https://www.mail-archive.com/audiogames-reflector@sabahattin...
[2] https://blind.shadows1428.com/
[3] https://mortalkombatgamessupport.wbgames.com/hc/en-us/articl...
[4] https://github.com/bradjrenshaw/say-the-spire
[5] https://www.nexusmods.com/stardewvalley/mods/16205
[6] https://www.youtube.com/watch?v=yQC6TJkBElY
[7] https://www.a11yproject.com/posts/getting-started-with-orca/
[8] https://support.xbox.com/en-US/help/account-profile/accessib...
[9] https://www.playstation.com/en-us/support/hardware/ps5-acces...
Steam Deck も持っておらず、SteamOS も使ったことはないが、ここ数年で Linux における旧作・新作ゲームの対応が驚くほど良くなり、今ではたいてい動く可能性のほうが高そうに見える
Valve が改善点を自社だけで抱え込まず、アップストリームへ反映してきたことも素晴らしく、今後も続いてほしい
自分たちと契約者の作業のほぼすべてをアップストリームへ送っているため、別個の差分を維持する必要がなく、配布するソフトウェアの大半も自分たちでビルドしなくて済む。多くを社内に閉じ込めようとする多くのプロプライエタリ企業と違い、Valve はアップストリームプロジェクトと親密に協力すれば、初期の調整コストは増えても、全体としてははるかに少ない労力でより良いソフトウェアを得られることを知っている。Proton の最初の5年間(2016〜2021年)に作った者でありリード開発者として言うと、Valve は初日から作業の大半がアップストリームへ行くことを当然のこととして受け入れており、それは他のオープンソースプロジェクトでも良い成果とコミュニティ関係として表れている
[1] E.g. https://www.codeweavers.com/blog/aeikum/2019/3/27/how-proton...
それからようやく、そのゲームは当然 Linux で動くものだと前提していたこと自体が、どれほど驚くべき変化なのかに気づいた
完璧ではないし、すべてがうまく動くわけではないが、実行したいゲームのほぼすべてが動き、プレイするゲームのほぼすべてがかなり快適に動く。BG3 も Steam Deck で遊んでいる。いずれ定住して新しいゲーミング PC を組むことになったら、Linux を入れるつもりだ
Valve が優れている大きな理由は、非上場企業なので伝統的ではない経営手法が可能だからだと思う
どこかの上場企業のように、信じられないほどひどい判断をする役員を連れてくるケースとは違う。Unity のような事例が思い浮かぶ
同時に、Valve には長く育てることのできたビジョンもある。他の会社なら最低限の機能を持つ製品だけを作り、十分に儲からなければ去っていくだろうが、Valve には長期的な研究・開発・計画へ継続的にリソースを投入できるだけの余裕と方向性があるように見える。ますます貪欲になっていく上場企業の中で、Valve はオープンソースの世界、あるいはもっと広い世界をより良くしている
一方、非上場企業はトスカーナの500年続くブドウ畑のように自分たちの仕事をし、利益を出す、あるいは時には利益を減らすとしても、長期的に人を雇い、職人性を最大化できるだけ稼げれば満足できる。優れた製品はそうした育成の自然な結果であり、売上はたいてい良い製品についてくる
Proton は本当にすごいプロジェクトであり、Steam がコミュニティから愛されるプラットフォームである理由をよく示す例だ。選択肢を広げ、互換性を高めることに直接的な利益動機はない
あとはアンチチート企業が Linux をサポートしてくれさえすれば、protonDB のスコアは一晩で爆発的に上がるだろう
Linux ほど巨大な認知度と適応力を持つカーネルは存在しなかった。ゲームほど、OS のさまざまな領域を同時に強く要求する作業も珍しい
ゲーム開発者、とりわけエンジンを深く最適化する開発者たちが Linux に貢献し、性能・スループット・低遅延を最大限に引き出すよう調整し始めれば、現在の選択肢では追随したり同等に提供したりできない形でゲームは発展するだろう。AAA の大手ベンダーが見ているなら、協力し、助け、製品をより良く動かすために必要なあらゆるものを改善する用意のある、大きく取り残されたコミュニティが存在することを考慮してほしい。サーバー、モバイル、高性能コンピューティングで私たちが成し遂げたことを、ゲームでもやらせてほしい
Valve が ネイティブ Linux ゲームアワード みたいなものを作ってくれるといいと思う
最高の Linux ネイティブゲームには賞とストアでの露出、手数料 50% 割引を与え、最高の Linux ネイティブのプラットフォーム独占ゲームには賞とストアでの露出、手数料 100% 割引を与える、といった具合。Proton は WINE のように役には立つが、多くの作業を必要とする補助手段であり、Valve の負担も大きく、高品質なネイティブ移植を妨げる。HL2 や CSGO のようなネイティブゲームがもっと必要で、Valve がアプリケーション開発者の仕事を肩代わりすべきではない。長期的には、Valve のリソースは Linux、Mesa、SDL などのユーティリティに必要になる。Proton の目標は、自分自身を不要にすることであるべきではないかと思う。向こう側も Mantel や Direct3D のように互換性のない API を使っているし、すべてのコンソールはユーザーにプラットフォームの乗り換えを強制し、Apple、Microsoft、Sony、Nintendo は何十年もプラットフォーム独占タイトルを使ってきたのだから、不公平だとも言いにくい。良いネイティブゲームとしては HL1、HL2、CS1、CSGO、Civilization、Tomb Raider、OpenRA があり、とくに発売日同時の移植が重要
ただ、Valve が報酬を出すという話をしながら Valve のゲームを4本例に挙げているのは面白い。実際にそうはならないだろうけど、想像すると笑える。収益分配の 15% を節約するためにゲームを作る開発者はほとんどいないし、30% を節約できる機会を見て Linux 独占に賭ける人もいないので、そこまで不幸な提案ではないと思う。ただし、お金をいちばん必要としていない AAA スタジオが報酬を持っていく可能性がある点は問題かもしれない。それでも、結局こちらが奨励しようとしているのはそういう移植なので微妙ではある。一般部門と「小規模チーム」部門に分けることもできるが、小規模チームの定義はかなり難しいだろう
Proton なら、Windows でももう動かない Dark Messiah of Might and Magic のような問題の多い古い作品も実行できる。Linux ネイティブ移植にこだわるのは、完璧を追い求めるあまり良い解決策を逃すことのように感じるし、ネイティブ移植が必ず何かを保証するわけでもない。もちろんネイティブ移植を提供してくれる開発者には感謝しているが、結局は宇宙のエイリアン・ナチの顔に銃を撃ってくつろぎたいのであって、そのエイリアン・ナチを自分のコンピューター上でどう動かすかを考えたいわけではない
バージョンが変わるたびにコードを再コンパイルできるなら問題ないが、変わらないバイナリを配布しなければならないなら良くない。Windows 側ではすべてを静的リンクしてシステム DLL だけ持ってくればだいたいうまくいくが、Linux では望んでもそうはできない
Steam Remote Play を気恥ずかしく宣伝すると: https://partner.steamgames.com/doc/features/remoteplay
Linux で遅延なくリモートプレイする良い代替手段がなかったケースで、今ではリモートデスクトップ用途でも VNC よりこの方式を好む人がいる
Steam Deck は実のところ Steam Deck の精神 を支援したくて買った。本当に楽しくて面白いコンピューターになり得ると思ったし、Valve がまた貢献しているのも満足している
販売台数がそうした姿勢を明確に後押ししていると思う。以前もやっていなかったわけではないが、成功した製品が作業を牽引する助けになる。届いてからゲームを24本ほど買い、またゲームにのめり込んだ。旅行中は命の恩人だし、家ではドックに挿したまま古い Stadia コントローラーを主な入力デバイスとして使っている。Steam Deck は特別なデバイスだ
Steam Deck 発表直後に予約金を払ったが待機列の後ろの方で、自分の番が来たときは休暇中だったため通知を見逃し、3日後に予約金が返金されて初めて気づいた。腹が立ってもう一度予約金を払い、最後尾に並び直したが、生産量が増えて長くは待たなかった。成功要因は圧倒的な利便性だ。単に一時停止・再開でき、テレビCM中にも少し遊べる。Steam ライブラリにある古い未プレイゲームを探索するのにも良い。あとは Ravenholm の Half-Life 2 のセーブ地点で、体力や腕前が足りず生き残れない区間を越えるためのチートコードを見つけるだけだ
ハードコアゲーマーではなく、いくつかのゲームを少し試した程度だが、時間があれば主に Switch か、高性能な NVIDIA カードを積んだゲーミングノートで遊んでいる。Pop_OS! ではとてもよく動く。ただ、デスクトップ側はもう少し洗練されてほしい。正直、多くの人が Deck をゲーム機としてだけでなく メインのコンピューティングデバイス としても使えると思う
ほかにも無骨な部分はあるが、満足している
ValveのエンジニアたちがMesa OpenGL/Vulkanドライバーとカーネルのグラフィックドライバーコンポーネントに行ってきた数多くの改善が核心
Steam Deckのハードウェアに役立つAMDグラフィックドライバーだけでなく、Zink OpenGL-on-Vulkanや共通インフラにも貢献しており、この領域での貢献はゲーム以外のLinuxデスクトップエコシステムにも非常に有益だった。グラフィックのVulkan、低レベルWindows互換のProton、ドライバーサポート、コントローラーのカスタマイズとオプション、そしてすべてをアップストリームへ出すやり方までを見ると、非上場企業が長期ビジョンを実行する能力については語るべきものがある。CanonicalからNintendo、Activision/Blizzardに至るまで、Valveが長期的により良い顧客体験を提供して自分たちの昼飯を奪っていくのではないかと心配すべきだ
自社ストアを運営する方が30%の収益分配より良いと判断しない限り、共生関係だ。Valveも一定の売上以上ではより低い取り分を提供しており、すでにそこでは譲歩している
Valveが初めてLinuxにゲームを持ってくると言ったときは、正直かなり懐疑的だった
Microsoftの略奪的な方針を牽制するためのポーズのように見えたし、善意があったとしても結局守られない空約束のように思えた。LinuxでWindowsゲームを、ハックや小細工や魔法なしに、「バグを見なければたまに雑に動くこともある」程度ではなく、まともに動かすなんて完全に狂気の沙汰だった。ところが彼らはやってのけた。その狂った人たちはわずか数年でやり遂げ、本当にすごい。Gabe、Steam開発者、Proton開発者たちに祝福を送りたい
これらすべてはWineなしには不可能だったし、ネイティブ移植のない多くのゲームをLinuxで動かせるようにしてくれた。ProtonとSteamOSは特に完成度と使いやすさの面で最後の区間をつないでおり、パレートの法則のためにそれが重要なのは確かだが、すべての功績をValveに帰すことはできない
ただ、あまりにうまく磨き上げてパッケージ化しているので、ハックのように感じないだけだ。これほど自然にうまく動くのを見るたびに、今でも驚かされる