
皆さんの趣味はなんでしょうか?
私はプログラミングとゲームが趣味です。WEB システムを自作したり、アプリを作ったりと年がら年中タイピングし、指が疲れたら息抜きにゲームをします。そんな時に椅子に座ってゲーム、疲れがとれません。
そこで、UMPC/ハンドヘルドPCと呼ばれるような小型のWindows端末にコントローラや画面がついた機器を使ってソファーやベッドでゲームをしていましたが、使っている内にいくつかの不満が生まれました。

このままずっと使っていくには、懸念点が多くどうにか解決できないかを考えました。発想を変えて、
を満たす要件を考えることにしました。e-GPUには可能性を感じていたんですけど、ハードウェアだけではなく、ソフトウェア面でも安定しないのですよね。e-GPUで使う通信量は20Gbps~40Gbps程度ですが、WiFi経由で常にこの通信を飛ばすのは現実的ではないです。そのため、処理をネットワーク経由にするのではなく画面や入出力をネットワーク経由にするストリーミングが現実的と考え、調べました。
最初に目を付けたのはGeForce Nowというクラウド上の仮想マシンでゲームを実行し、スマホやタブレットでゲームをストリーミングで実行するためのサービスです。最初に聞いた時は類似のサービスを使った際に遅延でプレイにならなかった経験から偏見があったのですが、ネットの評判を見ると遅延が少ないと高評価でした。
月3,580円で利用できるので、実は高品質なハードウェアを購入するより安価でしたが、結局、当時住んでいたマンションの回線が最大16Mbpsしか出ず、回線の品質としても劣悪だったため、とてもプレイできたものではなく、断念しました。
ただ、クラウドできることはオンプレミスでもできるはずで、以前触れた時は2018年。当時はダメでも今なら技術が進歩しているのでは?とサービスを漁った結果、理想のサービスに巡り合えました。
SunshineとMoonlightです。
これはPCにSunshineをインストールすると、タブレット/スマホからストリーミング経由でアクセスできるようになるサービスです。LANで稼働するため、NICとルーターがそれなりにちゃんとしていればのクオリティであれば問題なく動きます。
検証した限りでは、Sunshineなら1K60fpsなら20、4k120fpsでも50Mbpsの帯域を確保できればほとんどラグやカクつきはありませんでした。自宅環境では1ms以下の遅延でプレイ可能でした。
ちなみにですが、Windowsには標準機能でリモートデスクトップがありますが、サポートされているのは30FPSまででかつそれなりの遅延が生じるので回線の品質は関係なく、ゲームはカクカクでまともにプレイができません。
次にクライアントですが、処理は本体のPCでやってくれるのでタブレットにスペックは要りません。画面がでかい&軽量であればよいです。UMPCの時の不満だった発熱&電池の減りも一切ありません。12時間くらいは電池が切れずに連続プレイが可能でした。
画面が大きく軽量なものとしてNXTPAPER 11 Plusを選びました。画面がサラサラしていて触り心地が良いです。コントローラはタブレットサイズを挟めるRazer Kishi V3 Pro XL を選定しました。10インチ以上のタブレットを挟めるコントローラってほとんどないんですよね。実質、これ一択になってきます。13インチまで挟めます。
Switchと比較しても約4倍の画面サイズとなり、快適にプレイが可能です。

例えば↓の端末はMacbook Pro 2016で、スペック的にも現役からもかなり遠ざかっており、最新ゲームなんかは重くて全くできないですし、Bootcampも不具合が多くて使い物にならず、文鎮と化していました。Moonlightを利用することで、最新のMacbookとは比較にならない性能を手に入れることができます。

Steamというかゲームの仕様上、1端末1ゲームしかできませんが、これまでの技術を応用すると、Hyper-Vで仮想マシンを立て、仮想マシンへにSunshineをインストールし、Moonlightで接続することで1つのマシンでもマルチプレイが可能になります。(リモートデスクトップを使わないだけで、当たり前といえば当たり前ですが)
応用した話として、NordVPNというVPNサービスと連携すれば、外出先でもアクセスできるようになります。5Gでは回線が不安定なため、書類仕事ぐらいなら問題なくできますが、帰省の際にもMacbookから自宅のマシンに対して、VPN経由でアクセスしてプログラミングや書類仕事なんかをしていました。
新幹線など移動中にも使えるかなと思ったりもしましたが、移動中は基地局がすぐに切り替わる=接続が瞬断される=セッションが切断されるため、残念ながら使い物になりませんでした。ローカルでのスペックはこういう時には求められますね。用途に応じて使い分けるとQOLが上がります。