ディスカッション (11件)
Linuxゲーミングが劇的に進化しています。その理由は、かつてWindowsに依存していたAPIが、現在ではLinuxカーネルのネイティブ機能として次々と実装されているからです。これによりオーバーヘッドが大幅に削減され、Windows環境を凌駕するパフォーマンスを実現するケースも増えています。ゲーマーにとって、Linuxが本格的なゲームプラットフォームとして完全に定着する日はすぐそこまで来ているかもしれません。
以前、CTOSというx86 OSの開発スタッフをやってたんだけど、トラップをいくつか実装すればDOSのコマンドラインプログラムを動かせるんじゃないかと思いついてやってみたら、うまくいったんだ。開発ツールもテキスト処理もパイプコマンドも全部問題なく動いた。DOSの実行ファイル形式とCTOSの形式が同じだったことも幸いしたね。ビル・ゲイツにリンカー(実行ファイルを作るやつ)を渡す代わりにBASICコンパイラをもらったっていう経緯があったからさ。
WindowsからLinuxに移行する前はWindows向けの開発をしていたんだけど、WindowsのWaitForMultipleObjectsみたいなシステムコールがなくて驚いたよ。まあpoll()や条件変数を使えば似たようなことは実装できるけど、WaitForMultipleObjectsの方が圧倒的にシンプルで汎用性が高い気がするんだよね。
ntsyncはそのうち完全なntoskrnl.koに進化して、Windows APIを呼び出す際の実質的なオーバーヘッドはゼロになるんじゃないかな。そうなれば、まさに「Linux版のWindowsサブシステム」って呼べるようになるだろうね。
Linuxゲーミングが本格的に盛り上がってきてる気がする。自分は古いゲームを遊ぶことが多いんだけど、7年物の古いSystem76のラップトップ(oryp5、Nvidia 2060搭載)でも、Protonを使えばほとんどのゲームを問題なく動かせてるよ。ラップトップ自体には十分なパワーがあるけど、熱やファンの回転数を抑えるためにアンダークロックして運用してる(Windows 10の時も同じようにしてた)。負荷の軽いゲームならProtonでも十分なフレームレートが出るね。何十年か前にLinuxへゲームを移植してた身としては、今のProtonのやり方は正解だと思う。あまり注目されてないメリットとして、Mod環境もほぼそのまま使える点があるんだよね。例えばESO(The Elder Scrolls Online)にはTamriel Trade Centerっていうアイテム価格を取得するアドオンがあるんだけど、それにはWindows版クライアントのexeが必要で、それがProton上でそのまま動くんだ。自分でもModを作ったりするから、Rustコードをcargo xwinでWindows向けにクロスコンパイルして、即座にProtonで動かせるのを見るのはかなり面白いよ。Windows自体はDOS 5時代からの付き合いで嫌いじゃないんだけど、Win11は良くない意味で「ゲームチェンジャー」になっちゃったね。
確実に進歩してるよ。Wineのメモリ割り当て機は3重のネストロック構造だったんだけど、reallocがメモリ割り当て機のfutexロックを保持したままバッファを再コピーしてたんだ。だから複数のスレッドが割り当てを行おうとするとfutexの競合が起きて、多くのスレッドがそこでループしちゃう状態だった。そのせいでRustのVec::pushが信じられないほど遅くなって、プログラムによっては60FPSから0.5FPSまで落ちることもあったんだ。Wine 11.0で修正されたよ、Wineチームに感謝。NTSYNCに関係してるのかは分からないけど、Wineのロック周りのインフラは間違いなく大刷新されたね。
数字を見せてくれよ。同じゲーミングPCでWindows 11とLinuxを走らせて、FPSだけじゃなくてフレームタイムの揺らぎやレイテンシとかを含めた比較がほしい。NTSyncはすごく印象的だけど、Windowsと比較したエンドツーエンドの数値はあまり見かけないんだよね。以前見た比較だと、ほとんどのディストリビューションがWindowsに比べて5~30%くらい遅れをとっていたし、ゲームによってもバラつきがあった。それにNvidia GPUのサポートもまだ万全とは言えないし。乗り換えたいんだよ。納得できる理由をくれ。いつでも移行できるように準備して待ってるから。
自分はゲーム全部にBazziteを使ってるけど(今はReturnal)、信じられないくらい快適だよ。Protonのバージョンをいじったりもせず、ただプレイボタンを押すだけ。最近Stellar Bladeも何の問題もなくクリアした。マシンのシャットダウンすらしてなくて、電源ボタンでスリープにしてるだけでいい。中断したところから即座に再開できるんだ。ここまで来たのかと思うと本当にすごいよ。
Valveがやってるみたいに、マルチプレイヤーのスタジオが競技系ゲームのLinuxサポートをしっかりやってくれれば、一般ユーザーが流入する突破口になるかもしれない。特にWindows税を払いたくない人たちにとってはね(誰もが実験的なことや非ライセンス版を試したがるわけじゃないから)。証明はできないけど、Steam DeckがOSよりもゲームそのものを重視する層にとって、大きな壁を取り払ったのは間違いないと思う。LeagueやVanguard、Warzone、BF6みたいな人気作が対応すれば、それがクリティカルマスになって、多くのユーザーが触れることで細かい問題も修正されていくんじゃないかな。
Linuxゲーミングは応援してるけど、特定のゲームが非常に侵入的なアンチチートシステムを必要とするっていう現実を、みんな無視してる気がしてならないんだ。Battlefield 6が遊べないってことに気づいて、これからどうなるんだろうって思ってる。LinuxやMacでサポートされることは今後もないんじゃないかな。
今の勢いを見ていると「Windowsはゲーム用」という格言は過去のものになりつつある気がするよ。SteamやBazziteのようなOSを見れば、消費者側の準備がようやく整いつつあるのは明らかだよね。それとは別に経済的な動機として、Amazon Lunaのようなゲーム配信事業者は、Windowsマシンのライセンス料を払い続けたくないはずなんだ。実際、私がそこにいた時、取り組んでいた大きなプロジェクトの一つが、AMDのマシンを使えるようにLinux + Proton + Vulkanでストリーミングする方法を探ることだった。正直、最大のハードルは今も昔もアンチチートとBattlEyeだと思う。何はともあれ、自分はWindows 7以来Windowsを使ってないし、このトレンドは個人的に大歓迎だね。