2012-05-02

なぜValveはGNU/Linux対応を急いでいるのか

Valveが目下、GNU/Linux用にSteamクライアントを開発し、Sourceエンジンを移植しているという噂は、Phoronixの中の人がvalveを訪れてより確定し、広く公の知るところとなった。

Phoronixの中の人の話によれば、Valveの創始者であるGabe Newellは、GNU/Linuxを賞賛し、逆にWindowsには未来がないと表明したというのだ。特に、Windows 8はひどいのだそうだ。

もちろん、これから開拓する市場であるGNU/Linuxユーザー向けのリップサービスかもしれないが、元Microsoft社員で、しかも一番最初のWindowsから13年もの間、MicrosoftでWindowsの開発に携わり、その稼いだ金を元手にValveを立ち上げた経歴を持つGabe Newellとしては、お世辞にしても極端な転身ぶりだ。

しかも、ValveのSteamは、昔も今も、Windowsが最大の市場である。この事実は、もうしばらく変わらないだろう。なぜWindowsには未来がないのか。

GNU/Linuxは疑いようなく優れているが、ゲーム用途としては、まだWindowsには及ばない。理由はいろいろある。ゲームのプラットフォームとして、GNU/Linux環境向けには、あまり真剣にゲームが開発されてこなかった。開発環境がGNU/Linuxということはありえるが、エンドユーザーによるゲームの実行がGNU/Linuxで行われるというのは、まだ小規模だ。そのため、ゲーム開発の経験が少ないし、開発フレームワークも、Windowsに比べて劣っている。

DirectXは、かなりゲームを意識して設計されている。単にDirectXと書いた場合、グラフィックの描画はもちろんのこと、音声や動画のデコードと再生、文字列描画、その他の補助的なライブラリまで、幅が広い。OpenGLは、むしろ汎用的で移植性の高い3D描画用途として設計されている。そのため、DirectXほど末端の高級な機能まで用意されていない。これは、OpenGLを支援している企業や団体が、OpenGLにはそのような設計を望んでいるからである。

幅広い環境も問題だ。Windows環境でさえ、ハードウェアの差異を意識しなければならない。GNU/Linuxでは、ソフトウェアの違いも意識しなければならないのだ。

もちろん、GNU/Linuxが真剣にゲームプラットフォームとして使われだしたならば、フレームワークなどが多く開発され、環境の差異もフレームワーク下で吸収されるだろう。しかし、この業界においては、「今できる」ことが重要であり、「来年できる」というのは、「できない」のと同じである。

ではなぜ、ValveはGNU/Linux対応を急いでいるのか。先日、この記事を読んで気がついた。プラットフォームとしてのSteamの存在が脅かされているからだ。

たとえばスマートフォンだ。iPhoneやAndroidといった環境では、統一されたソフトウェア配布の公式プラットフォームが存在する。このプラットフォームは、そもそもの元締めであるAppleやGoogleによって提供されている。これらのスマートフォンで、統一されたプラットフォーム外のソフトウェアを実行しようと思うと、かなり手間がかかる。技術的な手段を持って制限されている場合もある。これは、不自由なソフトウェアを使う者は当然予期しているべきなので、当然の報いである。

さて、ここで不穏な動きがある。AppleのPCハードウェア用のOSであるMac OS Xにも、そのような統一されたソフトウェア配布の公式プラットフォームが提供されている。どうも最近の動きとして、最新のMac OS Xは公式プラットフォームから提供される、コード署名されたソフトウェア以外は、デフォルトで実行しないように設定されているとのことだ。もちろん、この設定は変更できるが、はたして将来どうなるだろうか。今はGUIから設定できるかもしれない。しかし将来、端末からコマンドを入力しなければ解除できないようになるかもしれない。更に進めば、設定ファイルを手動で変更しなければならなくなるかもしれない。最終的には、OSのソフトウェアに非公式のパッチを当てて解除しなければならなくなることも予想される。そうなったとき、Appleの公式ソフトウェア配布プラットフォームであるApp storeは、Mac OS X唯一のソフトウェア供給プラットフォームとなるのだ。そこにSteamが入り込む余地はない。

実は、Windowsもこの動きに追随する様子がある。Microsoftも公式のソフトウェア配布用プラットフォームを開発中だ。

つまり、今現在のところ、WindowsはSteam最大の市場であるが、Windowsを開発するMicrosoftは、Valveの競合相手となるのだ。MicrosoftがValveのSteamを参入しにくくする機能、すなわち公式プラットフォームから入手したコード署名されたソフトウェア以外は、デフォルトで実行しない機能を実装しないとは、どうしていえようか。これは、不自由なソフトウェアを使う者ならば、当然予期しているべきなので、当然の報いである。

もちろん、コード署名は邪悪ではない。コード署名は当然使うべき技術である。コード署名によって、我々は入手したソフトウェアが、発行元から我々に届けられるまでの間、悪意ある第三者によって改変されていないかどうかを確かめることができる。むしろ、ソフトウェア配布のプラットフォームはコード署名を積極的に使うべきである。

しかし問題は、ある環境が、ひとつのプラットフォームからのコード署名しか許可しないとなれば、別のプラットフォームが参入することはできない。解除する設定方法を提供したとしても、やはり参入の生涯になる。デフォルトの設定は強い。エンドユーザーにデフォルト設定の手動での変更を強いるようなソフトウェアが普及することは難しい。

もちろん、デフォルトの設定をそのようにするのは、邪悪ではない。たとえば、Windowsは通常のソフトウェアを、管理者権限では実行しない。これは当然の機能である。もし、あるソフトウェアが、理由もなしに管理者権限を要求するならば、怪しまねばならない。ソフトウェアのインストール、アンインストール、Windowsの設定を変更するような設定項目(たとえばファイルの関連付け、自動起動の設定、右クリックのコンテキストメニューへの追加など)を除いて、、およそ普通のソフトウェアは、管理者権限で実行する必要はない。このようなデフォルトの設定は、邪悪ではない。

しかし、MicrosoftがAppleに追随している現状は憂うべきである。このままでは、プラットフォームとしてのSteamを提供するのが難しくなる。第一、OSの開発元が公式にソフトウェア配布のプラットフォームを提供しているのであれば、わざわざサードパーティのプラットフォームを使う必要は薄れるだろう。

ここに、自由なソフトウェアの価値が出てくる。不自由なソフトウェアは信頼できないのだ。Steamがどこまで自由なソフトウェアを尊重するのか。どうせ囲い込みをするのではないかなど、懸念事項はたくさんある。しかし、SteamのGNU/Linuxへの参入は歓迎すべきだ。なぜならば、GNU/Linuxは自由なソフトウェアだからだ。Steamが気にいらないあれば使わなければいい。もし、使用中のディストロがSteamから金をもらってSteamクライアントを組み込んできたとして、それが気にいらないのであれば、Steamを取り除いたforkを新たに立ち上げればよい。

都合がいいことに、今PCでゲームをする顧客層というのは、比較的GNU/Linuxに移行しやすい層なのだ。初歩的な話だが、OSを自分でインストールするとか、グラフィックカードを交換するなどの作業は、PCゲーマーならば必須のスキルである。だから、GNU/Linuxへの移行もそれほど難しくはない。そうでないヘタレは、とっくの昔にコンソールに移っている。

No comments: