ときはクリスマス・イブ。彼女もおらずこれと言った予定もないことからこの聖夜を一緒に過ごせるようなじっくり遊べるゲームはないかとSteamのストアを漁っていた。そのときディスガイア2がSteam OS向けに移植されており、Linux上でネイティブに遊べることを思い出した。
そしてクリスマスセールなのか割と安い。
デモ版を触ってみると快適にプレイできたので早速購入。
ゲームのフォーカスが一度外れると再表示することができなくなる不具合
しばらくプレイしてある問題に直面した。
ゲームは常にフルスクリーンで動作し、一度ゲームウィンドウのフォーカスが外れると非表示状態になるのだが、その非表示状態から復元できなくなるというものだ。具体的には復元しようとすると、一瞬だけウィンドウアニメーションとともにゲーム画面が表示されるがすぐさま非表示状態に戻ってしまう。
この状態に陥ると二度とゲームに復帰することはできない。ゲームの再起動が必要になり当然プレー中のデータは消失する。マップの途中やセーブをしてなかったりすると結構辛い。ゲームを開始したらセーブするまでぶっ続けでやればいいのだが、やっぱり不便であったので少し調べてみた。
Compizやmutterなどアニメーションを実装したWMが悪さしているっぽい
I'm using a Steam Controller, and GNOME 3 is my DE of choice. GNOME (among others) does a long "fade out" transition before turning monitors off. I didn't realize before now that this transition steals window focus. Steam notices that, and drops the controller into desktop mode; that means virtually any button press now generates keyboard or mouse events, which cancels the sleep. The game then regains focus, so the controller goes back to the game config. Convoluted under the hood, but dead simple to use and didn't need any setup.
今回の現象と同じ不具合かは定かではないが、 a long "fade out" transitionは今回の現象に関係ありそうである。またLinuxでディスガイア2をプレーするユーザーは少なくなさそうであるが、自分のような割と致命的な不具合を訴える声は調べる限り見つからなかった。このことから自分の環境に特有な要素が絡んでいること、特に上記の不具合はアニメーションを実装したWMに関連した不具合と推測された。
自分はArch LinuxユーザーでありMATE/Compizでデスクトップ環境を作っているので、試しにMATE標準のWMをmetacityに戻してみると、実際に上記のような不具合は発生しなくなった。
Compizはやめたくないので設定でなんとかする
ccsm(Compiz config settings manager)で以下のように設定する。
不具合の動作的にも、意図されずに最小化状態が維持されてしまっているようだったので、
Wineでも様々なゲームをするが、実際にフルスクリーンにまつわる不具合が多かった。osu!やOverwatchもネイティブフルスクリーンでは動作に割と問題があったため、OS的にはウィンドウモードでウィンドウの枠を消しただけのいわゆる『ボーダーレスウィンドウモード』で遊んでいる。
やはり安定して動作するがパフォーマンス面で劣るのかフルスクリーンよりFPSは下がってしまう。ただでさえWineがボトルネックになっているので、少しでもパフォーマンスはよくしたいところなので、これを機にいろいろ解決できれば良いなと思う次第である。