GNU/Linux版Steamがクソすぎる件
正確に言うと、Steam Runtimeがクソすぎる。
GNU/Linux版のSteamは、ユーザースペースをごっそり自前で用意している。これはSteam Runtimeと呼ばれている。steamランチャーとsteamのゲームは、Steam Runtimeでchrootされた環境で実行される。
GNU/Linuxにおいてプログラムをバイナリブロブで配布して実行する場合、ユーザースペースをすべて同梱した上でchrootして実行するのは手っ取り早く互換性を保てる方法だ。問題は、バイナリはそのまま時代に遅れていくということだ。
現在のSteam Runtimeは、Ubuntu 12.04のユーザースペースのものである。実に4年も前のバイナリを使っているわけだ。
事の発端は、GNU/Linuxで動かすfactorioのFPSが安定しないということだった。私が構築したゲーム用のGNU/Linux環境は、GeForce GTX670MXを使っている。数世代前のGPUとはいえ、factorioを動かすのに問題があるとは思えない。
STEAM_RUNTIME=0することで、steamランタイムを無効化できるのだが、依存するi386版のshared libraryを全部インストールしても、まだvgui2_s.soが見つからず起動できない。これはsteam側のshared libraryのようだ。
ところで、factorioの公式サイトのアカウントは、factorioを購入済みのSteamアカウントと紐付けることで、factorioのSteam DRMのかかっていないバイナリを落とすことができる。このバイナリで試してみたところ、なんとFPSが60で安定した。
結論、GNU/Linux版Steamはクソ