デスクを離れよう:SunshineとMoonlightで低遅延なクラウドゲーミングサーバーを構築する

HomeLab tutorial - IT technology blog
HomeLab tutorial - IT technology blog

課題:ハイスペックなゲーム体験のために椅子に縛り付けられる必要はない

強力なゲーミングPCを組みましたが、仕事で9時間もモニターを見つめた後、また同じオフィスチェアに座りたくはありません。リビングのテレビやソファでくつろぎながらタブレットでゲームを楽しみたいと考えました。GeForce NowやXbox Cloud Gamingのような商用サービスは素晴らしいですが、月額20ドルの費用がかかり、遊べるタイトルも限られています。さらに、常にデータセンターとの距離という物理的な制約にさらされます。

RDPやVNCのような標準的なリモートデスクトップツールは、ここでは役に立ちません。RDPは表計算やテキスト作業向けに設計されており、アクションRPGのような動きの激しい描写には向いていません。基本的なリモート接続でゲームを動かそうとすれば、3 FPSの紙芝居状態になり、入力遅延でプレイどころではなくなるでしょう。速度に特化したプロトコルが必要です。

なぜほとんどのリモートアクセスはゲーミングに失敗するのか

ゲームのストリーミングにおいて、帯域幅よりも重要な真の敵は「モーション・トゥ・フォト(操作から画面反映まで)」の遅延(Latency)です。レスポンスの良さを感じるには、ホストPCがフレームをキャプチャし、ビデオストリーム(H.264やHEVC)にエンコードし、ネットワーク経由で送信するまでを15ミリ秒以内に行う必要があります。このパイプラインに50ミリ秒かかってしまうと、まるでオートミールの中で操作しているような, もっさりとした感覚になります。

NVIDIAはこの分野の先駆けとしてGameStreamを開発しましたが、自社のプラットフォームへユーザーを誘導するために、最近このサービスを終了しました。幸いなことに、オープンソースコミュニティが立ち上がりました. ストリーミング用のハードウェアとソフトウェアを切り離すことで、今やほぼすべてのハードウェアでネイティブ環境以上のパフォーマンスを実現できます。このセットアップをマスターすることは、GPUの活用を最大化したいHomeLab愛好家にとっての「登竜門」と言えるでしょう。

選択肢の比較:Sunshine vs. その他のツール

適切な構成(スタック)を選ぶことが重要です。現在の状況は以下の通りです:

  • Steam Link: 使いやすいですが、圧縮が強いため映像が「ぼやけて」感じることがあります。Steam以外のゲームや、Windowsの管理者権限のポップアップへの対応に苦労することがあります。
  • Parsec: パフォーマンスは素晴らしいですが、クローズドソースです。4:4:4の色深度など、最高の機能の多くは月額8ドルのサブスクリプションに制限されています。
  • Sunshine & Moonlight: これが「ゴールドスタンダード」です。Sunshineがサーバー、Moonlightがクライアントとなります。無料でオープンソース、NVIDIA、AMD、Intelの各GPUをサポートしており、私がテストした中で最もオーバーヘッドが少ない構成です。

セルフホストのメリットとデメリット

メリット

  • 完全な所有権: 月額料金もライブラリの制限もありません。PCで動くものであれば、どんなデバイスにもストリーミング可能です。
  • 圧倒的な鮮明さ: ビットレートを最大150 Mbpsまで上げることができ、HDMIで直接接続しているのとほぼ遜色ない画質が得られます。
  • プライバシー: ゲームプレイはローカルネットワーク内に留まります。Stardew Valleyに何時間費やしたかを外部の企業に知られる心配もありません。

デメリット

  • ネットワーク要件: 安定した5GHz Wi-Fi 6ルーター、あるいは理想的には有線LAN(Ethernet)が必要です。2.4GHz接続では、頻繁にカクつき(スタッタリング)が発生します。
  • 設定の手間: ワンクリックでインストール完了とはいきません。完璧な環境を整えるには、Webインターフェースで20分ほど設定を行う必要があります。

推奨ハードウェア

1440pや4Kでスムーズな体験を得るには、以下のスペックを目指してください:

  • ホストPC: NVIDIA GTX 10シリーズ以降(NVENCエンコーダー用)、または最新のAMD Radeonカード。ルーターとはギガビットイーサネットで有線接続してください。
  • クライアントデバイス: ほぼ何でも使えます。50ドルのGoogle TV搭載Chromecast、古いノートPC、あるいは最新のスマートフォンでもデコード可能です。
  • ネットワーク: 5GHz帯で少なくとも80MHzのチャンネル幅に対応したルーター。

セットアップガイド:SunshineとMoonlightの導入

ステップ 1:ゲーミングPCにSunshineをインストールする

Sunshineは、あなた専用の放送局として機能します。LinuxやmacOSもサポートしていますが、ほとんどのユーザーはWindowsで実行することになるでしょう。最新のインストーラーをSunshine GitHubからダウンロードしてください。

LinuxベースのHomeLabを運用している場合は、ターミナルを使用できます:

# Debian/Ubuntuユーザー向けの例
wget https://github.com/LizardByte/Sunshine/releases/latest/download/sunshine-debian-bookworm-amd64.deb
sudo apt install ./sunshine-debian-bookworm-amd64.deb
systemctl --user enable --now sunshine

ステップ 2:Web UIの設定

Sunshineの管理はブラウザから行います。以下にアクセスしてください:

https://localhost:47990

「接続はプライベートではありません」という警告は無視して構いません。これはローカルマシン用の自己署名証明書によるものです。ログイン情報を設定し、Configuration(設定)タブに移動します。ほとんどはデフォルトのままで問題ありませんが、Advertised Name(公開名)を「Gaming-Rig-01」のように識別しやすい名前に設定してください。

ステップ 3:クライアントの接続

スマートフォン、テレビ、またはSteam DeckにMoonlightアプリをインストールします。アプリを開くと、Sunshineホストが自動的に表示されるはずです。アイコンをクリックすると4桁のPINコードが表示されます。そのPINをPC側のSunshine WebインターフェースにあるPINタブに入力し、デバイスを安全にペアリングします。

ステップ 4:「ネイティブ」に近い感覚を得るための最適化

デフォルト設定で満足しないでください。クライアント側のMoonlightの設定を開き、以下の調整を行いましょう:

  • ビットレート(Bitrate): 1080pの場合は30〜50 Mbpsに設定します。Wi-Fi 6ルーターを使用し4Kでストリーミングする場合は、80 Mbpsまで上げてください。
  • フレームレート(Frame Rate): クライアントの画面に合わせてください。iPad Proを使用している場合は、ヌルヌルと滑らかな動きにするために120 FPSに設定しましょう。
  • フレームペーシング(Frame Pacing): 微細なカクつきを感じる場合は、Moonlightの設定で「Balanced(バランス)」フレームペーシングを有効にします。

外出先でのプレイ

インターネット経由のストリーミングは少し工夫が必要です。ルーターのポートを開放しないでください。重大なセキュリティリスクになります。代わりに、ゲーミングPCとモバイルデバイスの両方にTailscaleをインストールしてください。Tailscaleは安全で暗号化されたトンネルを作成します。MoonlightはTailscaleのIPアドレスをローカル接続として認識するため、500マイル離れたホテルのWi-Fi fromでもCyberpunk 2077をプレイできるようになります。

最後に

ゲーミングサーバーのセルフホストは、ハードウェアの可能性を取り戻すための試みです。Sunshineを高速エンコーダーとして使用することで、固定されたPCを家中のどこからでも利用できる汎用リソースに変えることができます。これは、生のパワーと実際の利便性の間のギャップを埋めてくれます。もう、最高のグラフィックか、家の中で一番快適な席かのどちらかを選ぶ必要はありません。

Share: