🎮

EndeavourOS i3-WMを普段使いする手順(FF14を遊ぶ)

2022/06/29に公開
1

https://zenn.dev/kako_jun/articles/e49ef7603efabb
https://zenn.dev/kako_jun/articles/0d6095719666f5
https://zenn.dev/kako_jun/articles/b2b7eeb2d4139d
https://zenn.dev/kako_jun/articles/00c539bec2141b
の続きです。

今回で最後。

ThinkPad X13 Gen 2 (AMD)の外付けSSDにインストールした
EndeavourOS i3-WMのウィンドウの1つとして、FF14を遊び


の画面を作ります。


LinuxでFF14を遊ぶ方法として

  • 方法1. LinuxのSteamのProtonで、Windows版FF14を起動して遊ぶ
  • 方法2. 別のゲーミングPCでWindows版FF14をSteamで起動して、LinuxのSteamからリモートプレイで遊ぶ
  • 方法3. 別のゲーミングPCでWindows版FF14を起動して、リモートデスクトップで遊ぶ(AnyDesk)
  • 方法4. 別のゲーミングPCにWindows版FF14とGeForce Experienceを入れて、Arch Linuxにmoonlight-qtを入れて遊ぶ

を試しました。

もはやEndeavourOSとか、i3wmとか関係なく
2022年にFF14をLinuxで遊ぶ方法じゃん、という気もしますが……

タイル型ウィンドウマネージャで遊ぶのがロマンなの!


なぜWindows版FF14で試したかというと、私はSteam版FF14を持ってないからです。

どゆこと……?
って疑問な、ほとんどの人のために

まず、世界最大のMMORPGにして、個人的にシナリオがFFシリーズ最高傑作であるFF14を
知らない人に向けて、そもそもの解説をします。

FF14には複数の種類がある

FF14には
PSやXBOXなどコンシューマ向けと
Windows、macOS、Steam向けがあります。

接続先が分かれてたりはしなくて
PSの人も多くはキーボードを繋いでるし
フレンドが何で遊んでるかを意識することはありません。

FF14はリリース直後に1度コケて

根性版と呼ばれたり
馬鳥がチョコボに変わったり
スタッフが交代したり

どうせ無理だよと言われたのに、いったん仕切り直したり
ぜんぜん無理じゃなくて、新生版は大成功したりと

けっこう特殊な歴史を持ちます。


この1回コケた時に、macOS版も出たのですが
それはWindows版をWineで動作させたものいう解析がありました。

つまり、FF14は元々
公式にWineで動かしやすい作りになってるわけです。

FF14のSteam版は
WindowsでもLinuxでも動作します。

SteamにはProtonという仕組みがあり
これはWineをもっとゲーム向けに修正したもので

ゲームに限らず、exeなら何でも自身のSteamにゲームとして勝手登録して起動すると
Wineを使わなくても動いちゃったりします。

Windows版とSteam版は別商品なので、アカウントも分かれてる

FF14を遊ぶには、スクエニのアカウントが必要です。

アカウント自体は、メールアドレスを持ち込むことで無料で作れる、よくあるやつです。

このアカウントの下に、FF14のアカウント管理サービスである「モグステ」や
DQ10のアカウント管理サービスである「アストルティア入国管理局」がぶら下がり

そのモグステの下に
FF14のサービス契約情報がぶら下がってて

ユーザーにとっての
イニシャルコストである「拡張パッケージのレジストレーションコード」(昔でいうディスク代)と
ランニングコストである「サービスコース」(毎月のプレイ権利)があります。


FF14で無料の範囲は、新生、蒼天、紅蓮、漆黒、暁月のうちの
蒼天までなので

紅蓮以降を遊ばない限り
「拡張パッケージのレジストレーションコード」は必要なく、イニシャルコストは無料。

(体験版としてのレジストレーションコードを登録するんだっけ?
買った後は見れないから分かんない……)

そして
(絶妙にいじわるな制約は付くものの)体験コースとして遊ぶので
ランニングコストも無料。

つまり、すでにネット環境と、ある程度のPC性能を持つ人が
FF14の、特に熱い蒼天ラストバトルを遊ぶために、必要な追加投資は0円ってことです。


しかし、Windows版とSteam版の関係がややこしく
これらはレジストレーションコードが別。

サービスコースは共通で行けるわけだし
あとは、モグステの下に

  • Windows版のレジストレーションコード
  • Steam版のレジストレーションコード

が仲良くぶら下がってくれれば
今日はWindowsで、明日はLinuxのSteamで、と遊びやすかったのだけど

直感に反する、おっきな制約があって
Windows版のレジストレーションコードとSteam版のレジストレーションコードは、
1アカウントに片方しか登録できないッ!

そういう仕様。

サービスコースは単なる権利であって
キャラクターのレベルとか、シナリオの進捗は
レジストレーションコードに関連付けられるっぽいから

Windows版で全ジョブをレベル90にし、クリア直前まで行ってたとしても
Steam版に移行しようと思ったら、新生からやり直し。


この制約は有名だから
体験版を始めるプレイヤーに向けて

  • Steam版でなくWindows版を選んでね。Windows版にはこんなメリットがある!
  • Windows版でなくSteam版を選んでね。Steam版にはこんなメリットがある!

みたいな啓蒙が
FF14のユーザー公式ブログであるロドストで書かれてたりします。

そして、それらの記事には

以前ならばSteamに外部exeとしてWindows版FF14を勝手登録すれば
まるでSteam版かのようにSteamからも起動できたが、今はできなくなった

という情報もありました。

でも、私が試したところ
少なくとも2022/06時点では起動できたし、ログインして
Windows版の続きから遊べました。

……というわけで、EndeavourOSでFF14を遊ぶ方法の1つとして
「方法1. LinuxのSteamのProtonで、Windows版FF14を起動して遊ぶ」
が候補になるわけです。

方法1. LinuxのSteamのProtonで、Windows版FF14を起動して遊ぶ

たとえ方法1がうまく行かなかったとしても、その次に試すのは
「方法2. 別のゲーミングPCでWindows版FF14をSteamで起動して、LinuxのSteamからリモートプレイで遊ぶ」
ですから、Steamは必要です。

EndeavourOSにSteamを入れるには

yay -S steam

だけ。

$mod+d でポップアップするrofiから、Steamを選んで起動します。


そのSteamに、FF14の起動exeである ffxivboot.exe を登録するわけですが
それにはまず、FF14をインストールする必要があります。

https://www.finalfantasyxiv.com/playersdownload/jp/

からインストーラをダウンロード。

この ffxivsetup.exe というインストーラは、体験版も製品版も一緒。
(だから無料)

これ自体は28MBしかなくて、初起動してログインした時に、
購入済みのレジストレーションコードに応じて、70GBくらいダウンロードする仕様。

ダウンロードは何回も中断&再開されました。
スクエニが怒ってるのかと思ったけど、たぶん違うっぽい。

この ffxivsetup.exe を実行するのは、Wineでも
SteamのProtonでもできたのだろうけど、私はこの時点ではWineで遊ぼうと思ってたので

yay -S wine
wine ffxivsetup.exe

しちゃいました。

この手順だと、~/.wine 以下にインストールされます。
その中に ffxivboot.exe もあります。

パスは
/home/kako-jun/.wine/drive_c/Program Files (x86)/SquareEnix/FINAL FANTASY XIV - A Realm Reborn/boot/ffxivboot.exe


ここで大事なのは
FF14の永続化データには、サーバー保存のものと、ローカル保存のものがある
ってことです。

キャラクターのレベルとか、シナリオの進捗とか
改竄されたら困るものは、サーバー側が持ってて

PC1で遊ぼうと、PC2で遊ぼうと
ログインした時に、同期されて復活します。

そうでない設定もあり、画面の解像度とか
WXHBのどの位置にどのアクションを登録したとかは
ローカルに保存されてて

PCを変える時は
これを手動で移植しないと、設定をやり直すことになります。

このローカル設定の位置は

Wineで実行した場合は
/home/kako-jun/.wine/drive_c/users/kako-jun/Documents/My Games/FINAL FANTASY XIV - A Realm Reborn/

Steamで実行した場合は
/home/kako-jun/.steam/steam/steamapps/compatdata/3682251440/pfx/drive_c/users/steamuser/Documents/My Games/FINAL FANTASY XIV - A Realm Reborn/

のようにバラバラです。


で入力した「作業フォルダー」は関係ありません。



のチェックが必要でした。

Wineで実行した先人の記録によれば、起動させること自体も
DirectX 11を認識させることも大変だったようですが

Steamからならば、これだけで起動でき、DirectX 11も有効でした。
コントローラはUSB接続するだけで認識しました。

ただ、重い……!

やり方のせいではなく、Ryzen内蔵GPUの限界です。

AMDのGPUにはプロプライエタリなドライバもあるけど
オープンソースのドライバも、もはや性能は大差ないところまで向上してるらしいし
ドライバが悪いわけでもない。


Windows版と大した差はありません。
視点をグルグルしたり、走りさえしなえれば、遊べなくもない。

ただ、i3wmとの相性は悪いようです。
フルスクリーンだと問題ありませんが、1/4分割だと画面がぴったりに縮小されません。

FF14内部のシステムコンフィグには画面モードが3種類ありますが
どれを選んでも解決しませんでした。

i3wm側の $mod+f でのフルスクリーンと合わせると
アスペクト比が狂っちゃたり……


方法1は、1番準備が面倒な方法だったのに、遊びとしては残念な結果となりました。

60fpsが出ないのは、もう辛い……

1280x720に下げれば60fps出たけど……、FF14は解像度も命だから!
エオルゼアでは1920x1080が人権だから!

ちなみに、このThinkPad X13 Gen 2 (AMD)では
Windows 11ならFF14を遊んだこともあって、Ryzenでだって遊べなくもなかった。

1920x1080の解像度、ノートPC(標準画質)で
ハウジングエリアで30fps、エーテライト付近で20fps、
漆黒の派手なラスボス戦で10fpsくらいでした。
(よくクリアしたな……)

Linuxでは、常駐アプリはWindowsよりも少ないはずなのに
ハウジングエリアでも20fpsだったので、やっぱりちょっと遅いのかな……

方法2. 別のゲーミングPCでWindows版FF14をSteamで起動して、LinuxのSteamからリモートプレイで遊ぶ

この方法は簡単でした。

なぜなら、ゲーミングPCに
もうWindows版FF14入れてたから……。

方法1では、LinuxのSteamに ffxivboot.exe を追加して起動しましたが、
同じことをゲーミングPC側のWindowsのSteamでやるだけです。

すると、ffxivboot.exe を追加した直後に
LinuxのSteamの画面にも変化があり、自動的に FINAL FANTASY XIV が登録されました。

そして、緑ボタンが「プレイ」でなく「ストリーミング」に変わってます。

それを押すだけ……でなく
リモートプレイを開始した途端に、エラーでSteamに帰ってきちゃった。

libva-mesa-driver をインストールすると、エラーは起きなくなりました。


ゲームパッドも、Linux側に接続したものが使えます。

動作は軽いし、60fps。

けど汚い。
スクリーンショットの左上の木に、たくさんのブロックノイズが見えてます。

動きさえしなければ、ストリーミング元の画質と見分けつかないのにッ!

動いた途端、背景がジャギり始めて
5秒目、10秒目と、どんどんブロックノイズの四角が増えて、
何が映ってるのかすら認識できなくなってく。

IEEE802.11ax(Wi-Fi 6)なんだけどなー……


スト5なら、キャラに視線が集中してるから
背景がジャギってても気にならなかった。

けど、FF14では解像度や滑らかさだけじゃなく、綺麗さも必要だって分かりました。

あと、チャット時のキーボードの挙動が変で
日英が混在すると、半角文字だけ抜け落ちてしまう。

IMEオンにして日本語だけ打って、IMEオフにして英語だけ打って
が必要なので、戦闘中に会話できないッ

1回送信するたびにチャットからフォーカスが外れてしまい
Enterを押し直す必要もあった。

チャットを一切しないプレイヤーなら、この環境でも遊べると思うけど……

私はログイン直後に
まずフリーカンパニーの方々が構ってくれるから……
そこで返事できないのはヤバい。


あと、FF14って
起動してすぐフルスクリーンのゲーム画面が表示されるのでなく

横長いウィンドウがまずポップアップして
そこにIDとパスワードを入力するのだけど

Steamからリモートプレイでは
このポップアップが表示されなかったり

WindowsがUACのポップアップを出してるタイミングで
画面が真っ黒になっちゃって

別のリモートデスクトップでそれらを解除するまで
操作不可になっちゃうことがあった。

方法3. 別のゲーミングPCでWindows版FF14を起動して、リモートデスクトップで遊ぶ(AnyDesk)

リモートデスクトップ系アプリを使うなら、何でもありじゃん
……とはならず、奥深い世界でした。

ゲーム目的には、使えるもののほうが少ないです。

まず、VNCは音が聞こえない。
RDPだと外出時に遊べないし、あまり滑らかでない。

なので、速さをアピールしてるような、サードパーティ製のものを使います。

TeamViewerは、個人利用でない誤検出が多いのか
スマホ版のレビューは星1つ。

AnyDeskは、そんなレビューない。
しかも、AnyDeskには高速描画の設定がある。


キレイ……
ですが、動いた途端
Steamのリモートプレイと全然違って、カクカクでした。

さらに問題があり、
コントローラをEndeavourOS側でなく、ゲーミングPC側に接続する必要があります。

しかし、XBOXコントローラは有線でなくBluetoothも対応!
問題ない……と思いきや

(10mくらいまで行けるらしいのに)
私の環境だと5mくらいで、もう操作不可なくらいパッドの反応が遅れる。

タイトル画面を5分くらい操作しても、数秒遅れで反応するわ
押してないボタンを押したことになるわで、まったくゲームに辿り着けない。


Microsoft純正のRDPならば
Microsoftの社員が個人として作った、XBOXのパッドを使うプラグインがあるそうだけど

ホスト側とゲスト側の両方にインストールが必要で、しかもどちらもWindows限定。

結局、リモートデスクトップ系は、ゲームに特化したものでないと
ゲーム以外が快適だろうと、どうせパッド操作でつまづくと分かりました。

方法4. 別のゲーミングPCにWindows版FF14とGeForce Experienceを入れて、Arch Linuxにmoonlight-qtを入れて遊ぶ

結果から書くと、これが最強。

ほぼゲーミングPC本体で遊んでるのと遜色ない感覚でゲームできる
唯一の方法でした。

最大化した状態のスクリーンショット。

動きの激しい場面でも、ほぼジャギは出ず
動きの止まった会話場面では、実機と見分けがつかない……!

ゲーミングPC側の音量を0にしてくれる設定もある。


つまった点もいくつか。

yay -S moonlight-qt して
完璧に設定したはずなのに、初めて試した時には

RTSP handshakeでエラー552が起きました
ポート48000、48010を開放してください

的なメッセージが表示された。

いやいやいや!
LAN内なのにルーターが関係あるわけないじゃーん。

GeForce Experienceをアップデートしたり、再インストールすると直る
という情報が英語サイトにあり

入ってるGeForce Experienceのバージョンを調べると3.25.1.27。
最新版のバージョンも3.25.1.27。

ああ絶望的だ……と思ったけど
再インストールすると、ホントに直った。


時々、アプリの描画が固まってしまう。

$mod+q を押すと強制終了でなく、FF14のウィンドウだけ閉じるという結果になり
ゲームの並んだmoonlightの画面に戻ってくれる。

そこにあるFF14の画像上には再開ボタンがあるから、それを押せば
続きから遊べる。

10秒程度で復帰できるから
バトルの真っ最中とかでない限り、問題にならないと思う。


時々、ガガガッて音や動きが引っ掛かってしまう。

映像ビットレートを
10Mbpsにしても、20Mbpsにしても、30MBbpsにしても
現象は解消しなかった。

なら、10Mbpsに落とすことは、画質が劣化して損するだけだった。

それでもブロックノイズは発生しないので、Steamのリモートプレイよりよっぽどキレイ。
試しに0.5Mbpsにしたら、Steamのリモートプレイと同じくらいの汚さになった。

ガガガ現象は、方法1で無茶な解像度にした時の挙動と似てるし
ゲーミングPC側の負荷が原因っぽい。

FF14を最高画質で描画する & ストリーミング映像もエンコードし続ける
は、さすがに厳しいんだろう……。


moonlightはパッドでのゲームに特化してるようで
マウスカーソルの遅れは、ほかの方法よりも激しかったので

FF14がマウス操作なプレイヤーは
無理だと思う……。

あと、ダブルクリックが効かないので
デスクトップのアイコンとかは、選択してEnterキーで起動する必要があった。

まとめ

最後に完成形のスクリーンショット。

Moonlightというタイトルバーは消せませんでした……。

あとマウスカーソルが、Moonlightから脱出できなくなります。

しかし、さすが i3wm。
$mod+← とかで、無理やり脱出できました。


今回、勉強になったことまとめ。

  • Windows版FF14は今ではSteamで起動できないという情報があったが、SteamのProtonで普通に起動できた。
  • サーバーに初接続した際に、最初のハイデリンのムービーが中断して、作成済みのキャラ選択画面にワープし、普通に続きから遊べた。
  • GPU性能の良いPCならば、普通にEndeavourOS i3-WMでもFF14を遊べるだろう。
  • この実験をしてる2時間くらいは、スクエニが怒った様子は無かったけど、継続して遊ぶとBANされるかもしれない。
  • Steamのリモートプレイは、滑らかさは充分だけどジャギがすごくて、FF14だと背景が見えずに酔う。チャットも快適には打てないので、継続して遊べる気がしない。
  • AnyDeskでのリモートデスクトップは、動きがカクカクで、Bluetoothパッドの射程距離が短いことも大幅マイナス点なので、継続して遊べる気がしない。
  • ゲーミングPCがある人ならば、GeForce Experienceとmoonlight-qtのコンボによるストリーミングが最強。Steamのリモートプレイと同じくパッドを使えて、Steamは何だったの?ってくらい圧倒的に画質が良い!

やっとオールドシャーレアンに着いたけど、(広すぎて)回るのめんどくせー!

Discussion

smearblesmearble

Debian環境で,ff14はプレイしていないのですが,i3のconfig ファイルにて

for_window [class="XEyes"] border pixel 1

とすることでxeyesのタイトルバーを見えなくすることが出来ました.
class名を調べれば恐らく適用可能かと思われますので良ければお試しください。
ただしタブやスタックで用いる場合にはタイトルバーが出てきます。