ValveがLinuxネイティブゲーム向けコンテナ機能をGitLabに公開

※当サイトは広告収入で運営されているため広告が表示される場合があります。

Linux のネイティブゲームにはいくつかの問題点が存在する。

その中でも Linux エコシステム自体の後方互換性のなさというのが大きな問題だ。システムファイルやライブラリの更新に合わせてアプリケーションの更新も行われていないと依存関係が壊れてしまうことがある。このためメンテナンスを予定していない Linux ネイティブなゲームが数ヶ月もしたら起動すらしなくなってしまうということはよくあることだ。

先月、 Valve の開発チームがこの問題を解決するかもしれないツールを公開したのでご紹介。

pressure-vessel

Valve は今まで Proton や GameNetworkingSockets など様々な Linux 向けのオープンソースソフトウェアプロジェクトを手がけてきた。それらは今まで GitHub で公開してきたが、新たに GitLab アカウントに「pressure-vessel(圧力容器)」というゲームとそれに必要なライブラリをひとつのコンテナ内で管理できるようにするプロジェクトを公開した。

GitLib ではよりコミュニティに寄り添ったソフトウェア開発を行っていくとのことだ。

pressure-vessel は Steam ゲーム向けに調整した Flatpak の簡易版みたいなものです。 独立したコンテナ内でゲームが動くようにする互換ツールで Steam Linux Runtime を介して動作します。

https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tree/master/pressure-vessel

これは去年から Steam コミュニティ内で必要な機能ではないかと議論されていたものだ。コンテナ内でゲームを動かすのには多くのメリットがある。

デベロッパーとユーザ双方にメリット

ゲーム開発者はディストリビューションの違いを気にすること無く安定した開発環境で様々なテストが行えるようになる。

またコンテナに一纏めにするため、ホームディレクトリに多量のディレクトリやファイルをゲームが生成するのを防ぐこともできる。ゲームをアンインストールする際にもゴミを残すことなくすべてのファイルを削除してくれる。

まだ議論が行われている段階だが Steam 本体にこの機能が組み込まれたら現状の後方互換性のなさがいくらか改善されるだろう。

しかし、 pressure-vessel はゲーム開発者自らがゲームに組み込まなければいけない機能なのでまた一つ学習しなければならないことが増えてしまう。どれだけのゲーム開発者がこの機能を利用するのかは未知である。

最後に

個人的にはネィティブアプリケーションをコンテナで扱うことはもうひとつレイヤーを追加してものごとを複雑にしているようで好きではないのだが、ゲーミングに関しては現状絶対に必要な機能だと考える。

優秀なアプリケーションはフォークされたり引き継いでいかれていく(また必要でないとコミュニティに判断されたものは沙汰される)が、ゲームに関しては特にユーザ数が少ない Linux においてメンテナンスされていく可能性は大変低い。

Linux ネィティブなゲームだと喜んで遊んでいたのに OS のパッケージが更新された途端依存関係が破壊されて動かなくなってもそのまま放置されるゲームも少なくないのだ。是非この機能の利用が広まってほしいものだ。

Eyecatch Photo by Guillaume Bolduc on Unsplash

おわり

コメント

タイトルとURLをコピーしました