GameStream Co-op 第二回

前回に引き続いてGameStream Co-opの実験レポートをお届けする。今回は3人集まって相互に接続してみるというテストを実施。結論から先に書くと、どうやら接続に失敗する問題はポート解放に絡む件だった様である。既にその前日に他のお二方のテストによって、接続が失敗している状態からポートを開放してやれば成功するというデータを得ており、今回も最初に私がホストになって失敗したのを受けて、私のPCにてポートを開放してみると見事に成功。以降は順調に成功していたので、少なくとも我々のケースではポートが閉じている事が接続出来ない原因だったと見て間違いない。ちなみに開放するポートはFAQにも掲載されているUDP: 47998, 48000, 47999, 48010となる。

 ただそれまでのテストにて手動でポート解放を行わなくても成功していたケースもある為、正確な原因というのはちょっと解らない状況でもある。説明によればGFEは自動的にネットワークでの相互接続を出来る限り成功するように調整するとあるので、その辺の関連で成功したりしなかったりが起きているのかも知れない。とりあえず我々と同じ様に接続エラーが発生しているなら、ホスト側がポート解放をしてみるというのが第一の手段となるであろう。

 
先に幾つか基本的なローカルCo-opの情報を記しておく。

・2人同時操作に使用するデバイスは、以下のそのゲームにおけるローカルCo-opの仕様に準ずる
 A: KB&マウス + コントローラー
 B: 一台のKBを複数人が使用可能
 C: 複数のKBとマウスのセットを使用可能
 D: コントローラー X 人数分 可能
 E: コントローラー複数台が必須(KB不可)

A:がパターンとしては最も多い(KBが1人で残りはコントローラー)。それに加えてD:も選択可能というケースはあるが、現時点で対応ゲームを調査した印象ではあまり多くないと思える。つまり全員がコントローラーを使えるというゲームはそれ程無いようだ。なおA:のケースにてP1,P2どちらのプレイヤーがコントローラーを担当するのかが固定されている物もある(Portal 2の様に内部設定をいじってそれを変更出来る物もある)。

稀な例としてB:の一台のKBを複数人で使用可能なゲームも有り、このタイプではコントローラー無しでも行える。フルキー部分とテンキー部分に分かれて操作する等。それとC:の様に皆がKBとマウスのセットを使えるというゲームも在るがこちらも希少である。E:も同じく数は少ないが、中には1台でもOKだがコントローラーが#2番にアサインされていないとならないという物もあった。通常のコントローラーは#1にアサインされる為に自動的にP1はそのコントローラーでの操作となってしまい、P2以降はコントローラーが必須なので結果的に全員がコントローラーでの操作を余儀なくされるという意味(#2にコントローラーをアサイン出来ればP1はKBでの操作が可能になる)。Xbox 360のコントローラーはプロパティ等からコントローラー番号を設定出来ないので、これだと実質2台挿しておかないと#2のコントローラーを作り出せない様に思うのだが、コントローラー側のボタンでも設定出来ないし何か方法が有るのか?

GameStream Co-opにおいても同じルールが適用される為に、パターンA:が大半となる事からCo-opを行うには少なくとも片方はコントローラーを所持していないとならないゲームが大半を占める

・これはGameStream Co-opとは直接関係ないが、ローカルCo-opを含めたPCにて使用するコントローラーはXbox 360 Controller for Windows が基本となる。それ以外のコントローラーは認識されないケースが多く、その場合にはXInputに対応している製品を使うか、一般的なコントローラーを360コントローラーとしてエミュレート可能なドライバを使ったりしないとならない。

・このGameStream Co-opの機能により最も恩恵を受けるFPS/TPSとしては、キャンペーンCo-opに対応しているが、ローカルの画面分割のみでオンラインには対応していない物になるが、こういったタイトルは非常に少ないのが現状である。PS3&Xbox 360のゲームにしても調べてみると案外ローカルのみというのは少ない。最も多いパターンは「オンラインでのキャンペーンCo-opに対応」、更に「ローカルでの画面分割Co-opにも対応」しているゲームである。ところが「同じゲームのPC版はオンラインCo-opのみ」という仕様が普通なので、折角のGameStream Co-opの能力が活きない。ローカルCo-opにも対応していれば、ホスト側が持っているだけのゲームでもCo-opが可能になるという大きな利点が使えないのである。両方が持っているなら普通にオンラインでCo-opすれば済んでしまう話なので、(大抵は)GameStream Co-opを利用するまでもない。

GSCP-KaL_01 
ゲーム別の具体的なテスト結果について。

Kane & Lynch: Dead men これは上で挙げたローカルの画面分割Co-opにしか対応していないTPSという稀なタイトルで、且つPC版でもそのローカルCo-opならば可能となっている為に是非テストしてみたかったゲームである。仕様では少なくとも片方はコントローラーを使用するがP1,P2は固定されていないし、またケインとリンチのどちらをプレイするのかもローカルなので自由に決められる(オンラインだとホスト側がメインキャラ固定というケースが多い)。

クライアント側での操作系パフォーマンスは古くて軽いゲームというのもあるのか問題無し(ホスト側は1920*1080のほぼ最高設定)。ただしGameStream Co-opとは関係が無い点における問題は幾つか感じられた。まず画面分割は左右固定となり、視界が狭い為に広範囲からやって来る敵への対応がやり辛い。それとホストの私がコントローラーを操作したのだが、慣れていないというのもあるのだろうが非常にやり辛く、将来的に通してプレイとなった際にこれはどうだろうという印象は受けた。率直に言って「本当にコンソールのゲーマーはこんな状態で操作出来ているのか?」というレベルで、アクションゲームでこれは厳し過ぎると言わざるを得ない。コントローラー設定の追い込みとかを含めて慣れないとどうしようも無さそう。後は細かい点だがお互いがダウンしたケースでの助け起こしが出来なかった。Actionボタンで良いはずなのだが、近寄ってもコンテキストメニューが出ないし助けられない。もしかして最初のミッションでは不可なのだろうか。

GSCP-SS3_01

Serious Sam 3: BFE。同シリーズはオリジナル版の1st&2nd Encounterとこの最新作がローカルCo-opに対応している(1st, 2ndのHD版とSS2は不可)。ローカルCo-opを重視しているだけあってインターフェースは優れており、画面分割は上下と左右を選択可能。4人までプレイ可能だがGSCPでは直結なのでそれは無理。ロビー画面にて各プレイヤーの使用機器選択も行える。だがKB&マウスを選択する際に、使用するKBのEnterキー押下を要求され、その後マウスのLMB押下という手順になるのだが、ここでKB&マウスを担当するクライアント側にてLMBを押しても反応しないという件が発生。しかしホスト側でクリックしてスタートさせればゲーム中は問題無くクライアント側のマウスでも使用可能になった。このゲームは4台までのKB&マウスのセットを接続して4人でのローカルCo-opを行う事も可能だそうで、この過程は誰がどのKB&マウスを使うのかを指定する為に行われている。しかしGameStream Co-opではホストとクライアント側のKB&マウスは同一のインプットとして扱われる様なので、2人が同時に各人のKB&マウスセットでプレイするというのは無理そうである(将来の検証項目)。

プレイ自体はクライアント側にてラグも無く快適という結果。ただしこれもまたゲーム性との絡みでコントローラーでの操作は厳しいと感じられる。

GSCP-PKHD_01
Painkiller: Hell & Damnation シリーズとしては初めてCo-opを可能にした作品(過去作にも一応在ったが未完成に終わっている)。左右分割のみでCo-opを行える。オンラインと同じく2人までの仕様。少なくとも1人はコントローラーを使う必要がある。プレイ自体はやはり視界が狭い上に周囲から大量の敵が迫って来るのでやり辛い。コントローラーでは尚更となる。

こちらはクライアント側にて時折、銃を撃ったりした際の操作ラグを感じるという報告あり。別のクライアントに試してもらったが同じ結果で、これは今後原因を追及する必要があるだろう。

GSCP-KF2_01
Killing Floor 2(早期アクセス) これはローカルCo-opでは無く、ホストのストリーミング配信をクライアント側にてプレイしてみるという形で行われた。[自分としてプレーする] というオプションである。しかしその結果は芳しくなく、ストリーミング画像が乱れる上に酷い操作ラグでプレイにならず。より詳しく書くと、これは同一のホストから別のクライアントに配信してみて同じ結果。テストは別の日に行われており、またその前後に試した他のタイトルでは大きな問題にはならなかった為、回線の帯域がその時だけ不安定だったという可能性は低い。

負荷という面を探ってみると、GSCPではクライアント側に送られるのは単なるデータのストリームであり、それ故にクライアント側ではビデオカードの性能を要求されず、デコードする為のCPU性能のみが問題となっている。しかしその解像度も720P&30FPSと大きな負荷とは言えないし、CPUの必要性能もIntel i3-2100 3.1GHz 以上と別に高くは無い。私はあまり詳しくはないが、「非常に細かくて、且つ激しい動き(変化)を伴う」映像はエンコード&デコード時の負荷が高くなるそうなのでその辺を考えてみたが、敵が数多く出て来てやたらと動くから変化が激しいとは言えるものの、それならSerious Sam BFEとかでも発生しても良い様に感じられるのにそちらは極めて快適である。またエンコード負荷が高いのならば通常の動画配信でもそうなるはずだが、普通のライブ配信を視る限りでは1080Pの配信を同じChromeブラウザにて受信しても特に遅延が発生している様には感じられない。

ホスト側からするとエンコードにはCPUの性能が重視される。思考は単純とは思うのだが敵の数が多いのでAI処理等に過大な負荷が掛かっているとか、グラフィックスの設定を上げるとCPUも影響を受けるのでそれが重いとかで、ゲーム側のCPU占有率が高い為にエンコードの遅れが生じてストリーミング遅延の原因になっているという説が一つ。一方でこのGSCPのエンコードはビデオカードのシェーダーユニットの一部を利用して高速で並列演算している可能性が高く、当然そうなるとレンダリング用に使われるシェーダーユニットとそれを分け合うという形になる。そしてKF2ではゴア演算に多大な負荷が掛かるのを同じくシェーダーユニットを分散利用するPhysXにて処理している。よってグラフィックスと物理演算の設定を高くした際に、それだけでビデオカードのシェーダーユニットが高稼働状態になってしまうケースでは、エンコード用に使われるシェーダーユニットが足りなくなってストリーミング処理が遅れてしまうという可能性もある。この件はホスト側でグラフィックスやPhysXの負荷を下げてみてのテストというのが必要となる。

GSCP-GRID_01
GRID Autosport これはレースゲームの様にレスポンスが重視されるゲームではどうなのだろうという観点からテストを実施。このゲームはローカルでの対戦モードを備えており、ロビー画面からそれぞれのプレイヤーが使用機器の選択を行えたりとその辺りは良く出来ている。私がホストになって別々のクライアントに配信。テストの為に片方はKB、もう片方はコントローラーにてプレイして貰ったが、ほぼラグ無しでプレイ可能と快適だったそうだ。

Vertical Drop Heroes HD これは2Dのスクロールゲーム。参加プレイヤーが皆で一台のKBを兼用する形式なので実験してみた。実験とはクライアントとホストで本当のローカルCo-opの様に一台のKBを兼用している形になるのか、クライアントのKBは別物(#2)として認識されるのかの意味。結果は一台のKBとして認識され、それぞれの入力が同じKBからの入力だとして処理される。なので使用キーの位置が近い場合にリアルなCo-opだと手がぶつかってやりにくかったりする所が問題無くなるという利点はあり。

The Witcher 3 これは前の日のテストで問題が発生したという事で再検証。問題とはクライアント側でKBの操作が一切効かなくなるという件で、これをクライアントを変更して再度テスト。私がクライアントになったが同現象が発生。コントローラーでは操作可能なので何等かのバグと考えられる。ただしゲームに入る前のオーバーレイ画面では操作が可能である。

GSCP-client_01
その他に幾つか検証した情報を書いておく。

・ホスト側にて招待URLを送る為に画面を切り替える際、Shareのオーバーレイ画面を表示した状態にて可能な物と、先にオーバーレイ画面を閉じないとならない物が在る

・招待URLの生成時に失敗しても、リトライすると成功するケースがある。どうも起動時の早期にそうしようとするとなり易い印象。ちゃんとメニュー画面に達してから誘った方が安定する。

・未対応ゲームのパターンとしては、GameStream Co-opを含めたベータ版のShare機能を呼び出すオーバーレイ画面をゲーム中に開けない物と、開いた瞬間にゲームが最小化されて「サポートされているゲームが必要です」というエラーが発生する物がある。理由としては前回も書いた「OpenGLを使用しているゲーム」or「排他的フルスクリーンでは無いゲーム」のいずれかが考えられるが、見分け方などは不明である。

・現在様々なゲームをGameStream Co-op可能なのか検証中だが、何件か特異な異常を発見した物が在るので書いておく。How to SurviveはGEFのShareを有効にしていると起動出来ない(私の環境では100%発生する)。無効にしてから起動し、その後Shareを起動してもゲーム画面上では有効化出来ない。Magickaも同様で起動に失敗するが、こちらは起動後にShareを有効化してやれば招待URLの発効までは行える。

 
今後の活動やGameStream Co-opの展望について

 先に書いたがKane & Lynch: Dead Menの様にローカルCo-op限定だったのでプレイが出来なかったというゲームは希少であり、GameStream Co-opにより新たにCo-opが可能なるという物は残念ながら少ない。或いはホストしか持っていないゲームでローカルCo-opに対応している物をCo-op可能になるというのはあるが、これもまたPC版のFPS/TPSタイトルでは少ないというのが現状。

 ローカルでのCo-opにしか対応していないゲームとしてはインディーズの作品が多く、これはオンラインのネットコードを制作するのが困難という小規模なチーム事情に因る所が大きい。ただしアクションのジャンルではFPS/TPS作品は少な目で、トップダウンかスクロール形式が大半となり、描画形式は3D, 2.5D, 2Dと様々。なのでこの辺りで面白い作品を探して行くというのも必要となってくる。これはGameStream Co-opに限らず、通常のオンラインCo-op用タイトルでも変わらない。インディーズ作品は知名度が低いので皆が持っていない可能性は高くなるが、その分メジャーな物と比較して安いのでやるとなったら揃え易いという利点がある。

 そしてそこで役に立つのがこのGameStream Co-opでもあり、この機能を使えばローカルCo-opと作動条件に対応していれば、ホストのみが持っていさえすればCo-opが可能となるのでプレイ可能タイトルの幅は大きく拡がる。その為に現在いろいろとGameStream Co-opでCo-op可能なゲームを調査中。想像していたよりも動作可能なタイトルの割合は低そうだが、それでもベースとなる数が相当多いので結構な数が利用可能にはなりそう。

 オンラインでCo-op可能ならばローカルCo-opは必要ないと書いたが、実際にはそうでもないかもという感も受けた。例えばCo-opではないがレースゲームにおいては画面分割の方が相手も見られて面白いという面がある。FPS/TPSにしても相方の状態が常に確認出来るのは協力という意味では好ましいとも言え、ゲームによっては画面分割ならば違った形で楽しめるという可能性が感じられた。

 
 制限としては第一に画質の件がある。これを上げるとエンコード負荷に加えて更なる通信速度が要求されてくるが、現時点で一杯一杯という程では無いだろうし、おそらく将来的にはユーザー側にて可変になるのではないだろうか。国内同士の良好な状態であれば1080P&60FPSも実現可能だと思える。

続いては人数制限。1対1でのストリーミング配信である事から2人までに制限されているが、これも拡張される可能性はある。画質調整が可能になるなら、ホストから同時に2人か3人のクライアントに配信してやり、(ゲーム自体が対応しているなら)最大4人までのローカルCo-opがプレイ出来るようになるかも知れない。

対応しているゲームの他にも、異なる使い方で制限を突破するというのも考えられる。FPS/TPSタイトルでは少ないと思うが、多数のキーを使ってプレイするスタイルのゲームにおいて、2人でKB入力が出来る事から別々の作業を担当して協力するという遊び方。RTSの様に操作が忙しいゲームにおいて、2台のマウスで画面操作したり、2人でキー入力を行ったりといったプレイ方法もある。

 
またGFEのバージョンが上がったりしたら検証を行ってみたいと考えている。テスト結果の情報も引き続き募集中。