スキップしてメイン コンテンツに移動

Azureを使って高性能なクラウドVMでゲームをやってみる

クラウドゲーミングの時代はもう少し先になりそうだ。



STADIAは失敗に終わりそうだし、Apple Arcadeも動きがない。Amazon Lunaはまだサービス開始前だがどうなるかわからない。



結局、遅延やラグという問題がなかなか解決できずに、主流のfpsやアクション性の強いゲームを好む層に普及しなかったようだ。



私はかねてより、クラウドゲーミングと最も相性が良いのはシミュレーションゲームである。と考えてきていた。ゲームによってはとても高いPCスペックを要求されるし、多少の入力遅延は一切気にならないからだ。


ところが、シミュレーションゲーム自体があまりメジャーなジャンルではないということもあり、シミュレーションゲームを豊富に取り揃えるクラウドゲーミングプラットフォームはない。



私は、cities skylinesというゲームが好きなのだが、PCのスペックが足りず、買い換えようにもお金もないし、GPUなんかは高騰しているので今は本気で時期が悪い。

GeForce NOWでこのゲームはプレイ可能だが、MODが使えないで少しきつい。


そしてこのcities skylinesというゲームはかなり重い設定で遊ぶとおそらくRyzen9にRTX3090を搭載しても快適とは言い難いようなゲームだ。



そこで、クラウドコンピュータを使ってハイスペックなPCでSteamのゲームを遊んでみようと思い立った。


クラウドコンピューターは今までほとんど使ったことがないので、色々と手間取ったが、一応形にはなったので、これはその備忘録である。


なお、これらは本来はゲームの用途に使うものではないため、おそらく期待しているようなパフォーマンスは発揮できないと思われる。


また、Azureは従量課金性であるが、以下の手順に従った結果、高額な金額を請求されたとしても私は一切の責任を負わない。



・クラウドの選択


クラウドコンピューターと一口に言ってもいくつかある。代表的なものとしてはAmazonのAWS、MicrosoftのMicrosoft Azure、GoogleのGCPの3つだが、今回はMicrosoftのAzureを選択した。理由としては単純で、これはWindows10Proを使うことができるのだ。AWSとGCPも確かにWindowsは選べるが、Windows Serverしか選択できない。

おそらくWindows ServerでもSteamは動くだろうが、使い慣れないOSはあまり使いたくないということもあり、今回はAzureを選択した。コスト面でもこれが一番良いと感じた。


・手順

1.AzureにMSアカウントでログインし、Azure用のアカウントを作成する。

2.Azure VMでインスタンスを選択する

3.RDPでVMに接続し、あとはWin10と同じ感覚で操作できるので、各種ドライバやSteamのインストール等を行う


手順としては以上のみであり、そんなに難しくはないが、やはり初めてのクラウドコンピューターは少し苦戦した。

まず手順1は問題なくできると思われる。



次に、VMの作成とインスタンスの作成を行う。

メニューからVirtualMaschineを選択する


次に左上の追加を選択し、続いて仮想マシンを選択する。


するとVMの作成画面が現れるので、各項目を埋めていく。


仮想マシン名は好きに決めていい。ユーザー名とパスワードは忘れないようにしておく。地域は西日本か東日本が最も低遅延ではあるが、西日本はインスタンスタイプが少ないため、東日本が最も良い。また料金面を考慮するならUS Westあたりでもいいかもしれない。
物理的な距離はそのまま遅延に直結するが、今回のようなシミュレーションゲームであればそこまで気にする必要もないだろう。

イメージは自信がある人はLinuxでもいいかもしれないが、余計なトラブルを避けたいならやはりWin10 Proが最も良いと思われる。

ここで、必ず『スポット価格』にチェックを入れるのを忘れてはいけない。こうすることで料金を抑えることが出来るし、一定の金額に達したときに自動でVMを停止してそれ以上の料金がかからないように設定が可能だ。私は50ドルを上限にしている。


次にインスタンスタイプの選択だが、私のおすすめはNC8as T4 v3である。自分でもっと詳しく選びたい人は
で詳しく調べればいいが、高いGPU性能を持つものを選ぶことを忘れてはいけない。


次にディスクの選択に移るが、追加ディスクはなくてもコンピューターは動作する。最初から126GBのSSDが料金に含まれているため、ゲームの種類にもよるが、これで問題ないというのであれば追加のディスクは必要ない。なお追加ディスクの料金は以下から閲覧可能



次にネットワークだが、正直言ってここは私はよくわからない。とりあえず『受信ポートを選択』のところでRDPには必ずチェックを入れ、SSHにもチェックを入れておいてもいいかもしれない。くらいの認識でいる。


その次の『管理』は本当に何も分からないのでデフォルトのままだ。

次の『詳細』はVMをGen2にしている。Gen1とどう違うのか知らないが、まあ新しい世代のVMを使って損はないだろう。という程度の認識だ。


次のタグは、まあつけたいならタグを付ければいい。別にタグ付けするほどAzureを使いこなすとは思わないので私はつけていない。

最後に確認および生成で最終チェックを行い、エラーが出ていれば適宜指示に従う。



最後に作成ボタンを押せば、VMがデプロイされる。



デプロイが完了したら、ポータルからVMを選択し、開始ボタンを押してVMを起動する。ここから時間単位で料金が発生する。


開始したら、まずはメニューの拡張機能からNVIDIA用のドライバーをインストールする。

このスクショはすでにインストール後ではあるが、おそらくまだなにもないと思う。上の追加ボタンを押してNvidiaGpuDriverWindowsを探してインストールする。あとは自動でやってくれるはずだ。


これが完了すると、いよいよVMとご対面する。メニューの概要の上部にある接続を選択し、RDPを選択。RDPファイルをダウンロードとあるのでそれをクリックすると拡張子が.rdpのファイルがダウンロードされる。そしてファイルを開くとおそらくWindows標準のRDPクライアントで開こうとするので、その他を選択し、VMの生成時に自分で決めたユーザー名とパスワードを入力すると、RDPクライアントで見慣れたWin10の画面が現れる。



・発生した問題と解決法

  • NVIDIAのGPUが使えない
  • ゲーム中にマウスのドラッグ操作が機能しない
  • Steam Remote Playが使えない



まず、上部のNVIDIAのGPUが使えなかったのは、私がドキュメントをきちんと読んでいなかったのが原因だった。



上記のドキュメントのとおりにGRIDドライバーなるものをちゃんとインストールすればOKだ。



さて、そしていよいよSteamをインストールし、そのままRDPゲームをインストールし、起動には案外あっけなく成功したが、一つだけある問題にぶち当たった。


なんとマウスのドラッグ操作が使えないのだ。

これはいくら調べても情報が出てこなかったが、おそらくRDPクライアント上でゲームをプレイしている時はマウスのドラッグ操作が行えないらしい。


これはやるゲームによっては大きな障害になるし、cities:skylinesでは幸いキーボードで代用できる操作だったが、少しもやもやするので対策を講じることにした。


まず、RDPのクライアントを別のものにしてみたり、TeamViewerやChromeリモートデスクトップも使ってみたりしたが、どれも同じくドラッグ操作が行えない。というかそれ以前に画質が悪すぎるので却下だ。


結局、Steamの標準機能でもあるRemote Playを使うことにした。これは別のPCで同じアカウントでログインしていれば、ストリーミングプレイが可能なのだ。

しかしこれがまた大きな問題となった。なんとこいつは

RDPで接続中はRemote Playが使えない

のである。


これがなかなか厄介な問題となった。



「ふむ、だったらRDPの接続だけを切ればいいのでは?」

という人もいるだろうが、だめだった。どうやらRDPの接続を切っても、バックではRDPのソフトが動作しているらしく、それが原因でRemote Playは使えない。


「ふむ、だったらタスクマネージャーからRDPのソフトを切ればいいのでは?」という人もいるだろう。


これもだめだ。RDPのソフトをキルすると、Windowsは再起動しようとする。そこからSteamを起動するにはRDPを使ってサインインしなくてはならない。


つまり、Steamの起動にはRDPが必要で、RDPがあるとRemote Playは使えないが、RDPを切断することは出来ない。


という状況だ。


だが、RDPを使わずにSteamを立ち上げる方法は案外簡単にあった。


Win10にある、自動サインイン機能を使うのだ。


Win + Rで検索ボックスを出してnetplwizと検索し、出てきたウィンドウで自分のアカウントを選択し、上部の『ユーザーがコンピューターを使うには~』のチェックを外せばいい。これでWindowsは起動、もしくは再起動したときに自動でサインインして各プロセスを起動するのでRDPを必要としない。よってSteam Remote Playが使えるということだ。


ちなみに、このチェックボックスがない人もいる。ない場合は各自ググってほしい。レジストリを書き換える必要があるため、素人の私はこのことについては記述しないでおく。

チェックを外したあとで再起動し、RDPを使わずに待つと、そのうちSteam Remote Playが可能になるはずだ。ならない場合はスタートアップになっているかなど確認してみるといいかもしれない。


さて、これでSteam Remote Playも使えるようになった。

そして、Remote Playでは無事にマウスのドラッグ操作も出来たし、画質も申し分ない。



あと、VMを使い終わったあとは、シャットダウンだけではなく、必ずAzureのポータル画面から『停止』を選択するのを忘れてはいけない。停止ボタンを押すの忘れて一晩寝たりしてしまうとその分の金額も請求されるので。




・試行錯誤の中で見つけた別の手段や応用術

・VPN
リモートプレイに関してはVPNを使えばより安定したRemote Playが可能になるし、ローカルPCとのデータの送受信も楽になる。


VPNの構築は素人にはなかなか厄介だったが、やってみても面白いかもしれない。私はSoftEtherを使用し、以下のドキュメントを参考にした。



・Gaming Anywhere
Steam Remote Playよりも細かく様々な設定を行う手段としてGaming Anywhereというオープンソースのソフトウェアを使うことも手段の一つではあると思われる。

どうやらクラウドゲームのデベロッパー向けのソフトらしいが、しばらく更新がないのでこのまま消えていくソフトなのかもしれない。ソースコードからビルドする必要があるし、VisualStudioのインストールやらなんやらも必要で面倒くさいので使わなかった。誰か試してみてほしい。


・NVIDIA Game StreamとMoonlight
NVIDIAが提供しているGame StreamとオープンソースソフトのMoonlightというソフトを併用して細かな設定を行いながらゲームのストリーミングを行う。
しかしながら、Azureが提供するGPUは機械学習の開発やデータセンター向けのTeslaシリーズである。NVIDIA Game StreamはGeForce向けのソフトなので、AzureのVMでは使用できない。

ところが、redditの有志達によってそれを可能にしようという試みがある。以下がそのGithubのリポジトリだ。


が、正直にいうと使い方がよく分からなかった。誰か試してみたらその方法をどこかで公開してほしい。




ー追記ー

やっぱだめだわ。


Azureの課金方式について詳しく理解していなかった。どうやらVMを起動していなかったとしても、ストレージやネットワークがある限りは課金され続けるっぽい。1日あたり数十円程度だけど、1ヶ月単位で考えるとかなりの値段になるのは間違いない。何かしらのサブスクサービスを契約できる程度の値段にはなる。


やっぱりやめるべき。

以上。

コメント

このブログの人気の投稿

xbox game pass for PCからSteamにデータ移行する方法の備忘録

 xboxgamepass(以下ゲーパス)は定額でゲームをプレイし放題の革新的なサービスである一方、ある落とし穴が存在する。 こういうサービスなので、ゲームが配信終了されることもたまにあり、それ自体は仕方のないこととして納得するものの、ゲーパスのゲームのセーブデータはクラウドに保存され、ユーザーはそれにアクセスすることが不可となっている。 つまり、面白かったからSteamで購入し、セーブデータを移行して続きからプレイする事は出来ない。というクソ仕様だ。Microsoftからすれば、xboxで購入してプレイしろよという話なのだろうが、あんな使いにくいゴミアプリはゲーパス以外の価値はない。 ここから本題。先程、セーブデータはクラウドに保存され、ユーザーはそれにアクセスすることが出来ないと述べたが、実際には名前を変えてローカルにも保存されている。以下はセーブデータの移行方法。 注意点として、全てのゲーム、環境でこの方法が使えるわけではないので、悪しからず。 また、予めSteamでゲームを購入し、そのゲームのセーブデータを作っておく必要もある。 この方法でセーブデータが消去されてしまったとしても、私は一切の責任は取らない。 今回移行するゲームはProject Wingman まず、C:\Users\User\AppData\Local\Packages\にアクセスする。 長い名前のフォルダがあるが、セーブデータが保存されていると思われるフォルダはゲームのデベロッパーかパブリッシャーの名前を含んでいるので、検索して探す。Project Wingman の場合はHumbleと検索すると見つかる。探しているゲームに合わせて検索ワードを変えて探し、フォルダの中に入る。 次にSystemAppDataのフォルダに入り、その中のwgsというフォルダに入る。wgsには"t"というフォルダと、めちゃくちゃ長い名前のフォルダの2つがあるので、めちゃくちゃ長い方に入る。 中には変わった名前のフォルダがいくつかあると思う。 ゲームによって多少変わるものの、ゲームのセーブデータはいくつかのファイルから構成されている。このフォルダはそのファイルを1つ1つフォルダ分けし、名前を変えられてこの中に入っている。 なので、この中にあるファイルの名前を1つ1つ変更し、Steamのフォルダに...

凱旋門賞に向けてパリロンシャン競馬場の軽いレポート

いざ凱旋門賞 日本競馬がこれまで何度も立ち向かい、ディープインパクトやオルフェーヴルでも勝利することが出来ない世界の壁であり最大の鬼門。 今年は日本からはタイトルホルダー、ドウデュース、ディープボンド、ステーフーリッシュの4頭が出走予定。 そんな凱旋門賞はフランス、パリにあるパリロンシャン競馬場にて行われる。 パリ大賞(GI)が行われる7月14日にパリロンシャン競馬場を訪れたので、今回はその簡単なレポートをつらつらと書いていく。 1857年という今から165年も前に開場したこの競馬場は世界で最も美しい競馬場とも言われており、先述した世界最高峰のレースである凱旋門賞が行われる競馬場として有名。 パリ郊外のブローニュの森という森の中に造られており、アクセスする手段はバスに限られる。メトロの駅から歩けない距離でないが、40分以上は余裕でかかるのでおすすめはしない。 日本の競馬場は街なかに人工芝を用いて作られるが、欧州の競馬場の多くはもともと自然が会った場所に競馬場を建設する為、大きな競馬場でもアクセスが悪いことは珍しくない。また水はけが悪く、馬場状態が悪化しやすく回復しないのも特徴の一つだ。 これが日本の走りやすい芝に特化した競走馬が欧州ではなかなか勝てない所以と一般的に言われている。 入場券はかなり高額で€20(2800円程度)もする。早期にネット予約すればもう少し安くなるが、日本と比べると非常に高額。 入場ゲートをくぐると、金色に光るスタンドとそれに続く階段が目に入り、その奥には馬の銅像が置かれている。 この馬はグラディアトゥールという馬で1862年にフランスで生産され、英2000ギニーステークス、ダービーステークスを勝利。仏に戻りパリ大賞典(パリ大賞)にも勝利。その後再び渡英しセントレジャーステークスを勝利して史上二頭目の英クラシック三冠馬となる。 生涯戦績19戦16勝という圧倒的な強さを誇った馬。 当時のフランス競馬はイギリスかぶれの貴族たちによって行われていたものの、イギリス本国と比較すると劣っていた。そんな中でフランスの馬がイギリスのクラシックを総なめしたというのだから、その人気は絶大なものだっただろう。銅像が作られるのも納得である。 さらに進み、右に曲がるとパドックが見える。パドックの作りは日本と大きく違い、かなり長い長方形となっている上、木々が生えている。...

頼むから放送規格をもっと厳格に規格してくれ

 エンコード設定の決定版がなかなかない 今はQSVを使ってh264にエンコードし、地デジやBS・CSの解像度に違いがあるため1920x1080に変換し、音声はコピーしてmp4に格納しており、エンコードの設定は以下のようになっていた。 ffmpeg -hwaccel qsv -c:v mpeg2_qsv -i "$RECPATH" -c:v h264_qsv -preset 1 -look_ahead 0 -look_ahead_depth 100 -q:v 21 -c:a copy -map v:0 -map a:0 -vf scale_qsv=w=1920:h=1080 これで7倍速でエンコード出来るし、画質、容量、互換性も申し分ない。本当はHEVCでエンコードしたいが、なぜかWindowsで再生できないためH264に変換している。 しかしながら、放送規格が局によって大きく変わったり、同じ放送局でも番組によって変化するため、非常に難儀している。 まず問題となるのが、AT-Xだ。AT-Xは有料のアニメ専門チャンネルでそれなりの料金を支払って契約しているが、当局の番組のエンコード中、それも特定の限られた番組にのみある問題が起きた。途中でエンコードが終了しているのだ。問題となった番組を再び同じ設定でエンコードしたところ、『Error parsing ADTS frame header!』と表示され、エンコードが途中で強制終了した。そのためGoogle先生の力を借りて解決策を模索したところ、-bsf:a aac_adtstoascと入力すれば問題は解決した。 …かのように思えたが、別の問題が発生した。東名阪以外の田舎に住んでいるアニオタにとっての救世主であるBS11イレブンをエンコードしたところ、音声は格納されているのになぜか音声が再生されない。つまり音無しの動画になってしまったのだ。 私は大阪に住んでいるが、BS11イレブンは画質が良く、アニメのラインナップも充実しているので貴重な存在であることには代わりはなく、対策をする必要が出てきた。 ffmpeg内臓のAACエンコーダーは品質が悪いので、できれば使いたくないが、コピーしてしまうと放送局の放送規格の違いが原因で何かしらの問題が出てきてしまうようなので、仕方なくエンコードすることにした。 『-c:a...