Windows 向けに開発されたゲームを Linux で遊びたい場合、Proton を使うと比較的まともに遊べることが多い気がします。NixOS だと steam-run
というコマンドを使うことで Proton が動く環境を用意できます。
#事前準備
Steam をインストールして、Proton をダウンロードしておきます。適当なゲームの設定画面を開き “Compatibility” → “Force the use of a specific Steam Play compatibility
tool” にチェックを入れて、適当なバージョンの Proton を選ぶとダウンロードされます。ダウンロードすると、特に設定を変更していなければ $HOME/.steam/steam/steamapps/common
配下に設置されるはずです。例えば Proton 6.3 をインストールすると
$HOME/.steam/steam/steamapps/common/Proton 6.3/proton
が Proton の実行バイナリになります。
#実行する
Proton を実行するためにはいくつか環境変数を指定する必要があります。また、Proton が必要なファイルを見つけられるように steam-run
コマンドを使います。
NixOS であれば steam-run
は Steam を入れると一緒に入っているはずです。
export STEAM_COMPAT_DATA_PATH="$HOME/.steam/steam/steamapps/compatdata"
export STEAM_COMPAT_CLIENT_INSTALL_PATH="$HOME/.steam/steam/steamapps"
export PROTON_LOG=1
export PROTON_USE_WINED3D=1
# Proton のパス
PROTON="$HOME/.steam/root/steamapps/common/Proton 6.3/proton"
# 動かしたいゲームのパス
EXE="..."
steam-run "$PROTON" run "$EXE"
これで起動するはず。
#動かないときは
諦めましょう。
なお、Proton のバージョンは、あまり新しすぎないものを選ぶほうが動く確率が高い気がします。特に根拠はないので気のせいかもしれません。ゲームが思ったとおりに動かないときは複数のバージョンを試すといいかもしれません。