Steam Deck の衝撃 - 汎用機・自由な OS の革命

# はじめに

これは自由ソフトウェアを支持する人間によるポエムである。そして自由ソフトウェア支持者としての初めての投稿である。前後の記事と文体や口調は異なるが、自由ソフトウェアの啓蒙のための投稿においては、この文体と口調を採用することにした。あらかじめご容赦願いたい。

# Steam Deck とは

日本時間の 2021 年 7 月 16 日の午前 2 時、Steam を運営していることでも有名なメーカーである Valve 社が Steam Deck を発表した。

Steam Deck は Steam で購入したゲームをプレイすることを主な目的とする携帯ゲーム機で、Arch Linux をベースとした Steam OS 上で様々なゲームをプレイすることができるデバイスである。

価格は 64GB モデル (eMMC) が 399 ドル、256GB モデル (NVMe SSD) が 529 ドル、512GB モデル (NVMe SSD) が 649ドルとのことであるが、ストレージ容量とストレージ速度以外にはそれぞれにスペックの差はないと言う。どのモデルも比較的最近の AAA タイトルのゲームをプレイできるパワーがある。

なお、日本での販売についてはまだ公式に発表されていない。

https://www.famitsu.com/news/202107/16227354.html

# Steam Deck の特異性

Steam Deck にはゲーム専用機ではないという特異性がある。

前述したとおり、プレイするゲームは Arch Linux をベースとした Steam OS 上で動く。
Steam Deck は、ゲームをプレイするという機能以外に制限をかけるということは特にしていないようだ。
GNU/Linux にインストールできるアプリケーションは何でも使用でき、Windows をインストールすることすらも可能という。
また、標準で KDE Plasma がインストールされており、Steam Deck で GNU/Linux を使用することができる。

つまり、これは携帯ゲーム機でありながら、GNU/Linux のモバイルデバイスでもあるのだ。

また、詳細な情報は今の時点では不明なものの、オプション製品である Dock を別途購入することで、ディスプレイやキーボード、マウスを接続することができるようだ。
これによって、Nintendo Switch のように大型なディスプレイでゲームをプレイすることも、GNU/Linux デスクトップとして使用することもできる。

推測ではあるが、本体には USB Type-C のポートがあり、Bluetooth にも対応していることから、Dock を購入しなくても上記の環境が実現可能であると考える。ゲーム専用コントローラも使用可能だろう。
このようなことを容易に推測できる理由は、Steam Deck が汎用機であり、GNU/Linux という自由な OS を採用しているからである。
この汎用機に搭載されている標準化されたポートや通信規格が、様々な周辺機器を接続できることを保証し、OS である GNU/Linux がそれを実現する自由と (数多のドライバやソフトウェアによって) 動作を保証してくれるからである。
Steam Deck では、Discord で音声チャットをしながら仲間とゲームをプレイすることも、ゲーム配信をしながらプレイすることもできるだろう。GNU/Linux で実現できるユースケースは、Steam Deck ですべて実現できるはずである。Steam で購入したゲーム以外をもプレイできるだろう。
新たに発表された製品で何ができるかを、ここまで事前に推測できる携帯ゲーム機がこれまでにあったのだろうか。

# 専用機と汎用機

免責事項: ここで言う専用機とは不自由な機器という意味を含み、汎用機とは自由な機器という意味を含む。

Apple や SONY、任天堂といったイノベーターである企業は、様々な技術革新や既存技術の組み合わせによるアイディアを具現化させ、革新的なプロダクトを発明し、イノベーションを起こしてきた。
ただし、それらのプロダクトはそのイノベーションの根幹となる技術とその周辺技術に用途を閉じた専用機であることも多い。

汎用機とは、基本的に専用機のフォロワーであり、専用機が具現化した技術を応用することができるようになって初めて産声を上げる。

私は汎用機が好きだ。

iPhone よりも Android を好み、Mac よりも PC を好む。

汎用機が、人よりも早くイノベーションを体験させてくれることはない。
しかし、私が汎用機を手にする時、専用機が利用する技術はすでに汎用化されており、他の汎用機でもその技術を利用できるようになっていることも多いだろう。

汎用機には、どの汎用機を選択するかの自由がある。
汎用機には、既存の様々な周辺機器が接続できる。
汎用機が普及することによってメーカー間に競争が生まれる。
競争によって技術や製品が精錬される。競争によって価格競争が起こり、私を含む一般大衆が手に取りやすい価格で製品が普及する。競争によって新たなイノベーションが生まれる。

だから私は汎用機が好きだ。

# 不自由な OS と自由な OS

免責事項: ここで言う自由とは厳密な意味での真の自由は指さない。概ね自由であるという意味で自由という用語を用いる。

世の中には不自由な OS と自由な OS がある。

macOS や Windows はメーカーと取り交わした契約の範囲内で OS を自由に使うことができる。
契約の範囲内の自由しか保証されないため、これらは不自由な OS に属する。

一方、自由な OS である GNU/Linux には、使用許諾というものはない。用途は自由で、どのように動作するかの仕組みを調べることも、その実装を読んで理解することも、改造することも、改造した OS を再配布することも、すべて自由である。

Steam Deck にはその自由な OS である GNU/Linux が載っている。今の時点で Valve 社がどのような条件でこの製品を販売するかの詳細はわからないが、GPL v2 で保護された GNU/Linux が搭載されているデバイスであることを公表している時点で、その派生物である Steam OS をどのように改造するかの自由は保証されているはずだ。（と信じている。）

つまり、Steam Deck は自由なデバイスであり、様々なユーザーによりハックされ、今の時点では想像もつかない様々な用途で使用されるようになる可能性があるということだ。自由な OS である GNU/Linux が、その可能性を保証しているからである。改造され再配布された OS にさえもその自由が保証されるのだ。

# 注意したいこと

携帯ゲーム機として、純粋に Steam Deck を評価した場合、万人におすすめすることはできない。

なぜなら実問題として、Steam で購入したすべてのゲームが Steam Deck 上で問題なく動作することを保証できないからである。

Steam Deck 上でプレイできるゲームには、GNU/Linux にネイティブ対応したゲーム以外に、Proton と呼ばれる Wine を応用した技術を使うことによる Windows 上で動作するゲームも含まれる。

しかしながら、Proton はあくまで Windows の互換レイヤを提供するものであるため、Windows でプレイできるゲームがすべてプレイできるわけではない。また、Proton を使用して動作するゲームは、Proton を動かす デバイスと同じスペックを持つ Windows PC でそのゲームをプレイすることに比べて、多少のパフォーマンス劣化はあってしかるべきだろう。

ProtonDB というサイトには、どのようなゲームが Proton で実際にプレイできるかがまとめられている。おそらく、想像していた以上にプレイできるゲームがある印象を受けるだろう。（ただし、評価が Platinum のレートが付いたゲームであっても、ユーザーの環境によっては不具合が生じることがあるようだ。したがって過信は禁物である。ProtonDB にはそれらの知見が日々共有されている）

https://www.protondb.com/

# 結び

私は Steam Deck の発表に衝撃を受けた。携帯ゲーム機の世界に自由がもたらされると思ったからだ。革命だと思った。

しかしながら、ゲーム産業を支えるメーカーが多く存在する日本で、日本人として声高に歓声を上げるのはいかがなものかとも思えた。

イノベーターには最大の敬意を払いたい。イノベーターあってのフォロワーである。

ただ、私自身は、ユーザーとしてもフォロワーである。だからこのニュースは一大事件に思えた。
ただそれだけの、個人の関心や好みの問題であって、イノベーターへの尊敬が変わることは決してない。

以上。

# 追記

Twitter で指摘をいただいたのでそれについての追記をした。長くなったので新たな記事にした。

https://qiita.com/taiju/items/6e469378536609417421

# 移動した

Qiita に書く内容じゃないでしょ、という指摘を複数名からいただいた。指摘内容はごもっともだと思ったのでコンテンツは下記に移動した。

https://libre.taiju.info/2021/07/16/impact-of-the-steam-deck.html