フェアプレイに関するF.A.Qとゲームメカニクスの変更
本日はWar Thunderの中核をなすゲームメカニクスに再び焦点を当て、
プレイヤーのあいだで「有名な」作り話の真実を明らかにしようと思います。
また、禁止されている不正行為への我々の対処法とそのような不正行為がゲームプレイに及ぼす影響に関する詳細をお伝えいたします。
今回の記事は難しく、わかりにくい部分もあるかもしれませんが、内容についてどうか真剣にお考えください。
仲間/敵が撃った弾が標的から外れているにも関わらず、キル扱いとなっている様子や、
仲間/敵が空中で消えたり、停止したり、急上昇/下降したりする様子がリプレイに映っています。
このプレイヤーはチートを行っているのでしょうか?
ヒット判定、物理現象などはサーバーサイドで計算されています。
クライアントを改造してミスをヒットに変えたり、飛行中に異常な速度で旋回したりすることは物理的に不可能です。
つまり、クライアントサイドでそういった行為がなされたとしても、サーバー上では全てあるべき姿に戻るということです。
記載された状況はリプレイでは別段珍しいものではありません。
実際、クライアントサイドのリプレイとは、そのプレイヤー自身にとってのみ、ほぼ正確なものであって、
正確に記録されているのはそのプレイヤー付近で起きた出来事のみとなります。
遠く離れた場所で起きた出来事や、あなたの視野の外で起きた出来事は圧縮した状態で送信されます(もしくは全く送信されません)。
これに伴い、あなたがリプレイを仲間の視点に切り替えると、さまざまな「不自然な」出来事が表示されます。
特に、あなたの後ろ側や数キロメートル離れた場所にいる仲間に切り替えた場合はこの現象が顕著です。
これらは単なる圧縮のエラーなのです。
どうにかして改善することはできますか?
ゲーム内では様々な出来事が起こりますし、最大200もの戦車と航空機が1つの戦闘で交戦するので、
全てを正確に再現することはユーザーとの関連性の観点から見ると、非常に無駄な行為です。
ゲームりリプレイでは目に見えない部隊までをも再現しようとは考えていません。
状況を全体的に理解できるように味方の動きを再現したいのです。
このため、あなたがリプレイ内で仲間に視点を切り替えると奇妙な出来事を目にすることになります。
リプレイをご覧いただく際には、サーバーサイドのリプレイをご利用いただくことを強くお勧めしております。
サーバーサイドのリプレイは、サーバー視点の出来事とほとんど同じものとなっています。
なぜ「ほとんど」なのかというと、サイズを最適化するため、
サーバー上のリプレイでもある程度は品質を落とした状態(平均的な位置及び向きで1秒間に10~15回)で記録されるからです。
航空機を操縦する不死身のプレイヤーがいます。
攻撃が命中し、爆発したのを確認しましたが、その航空機は墜落しません。
速射武器を使用した場合の発砲とヒットのエフェクトは、サーバー上で起きていることとは無関係にクライアント上で再生されます。
これは、速射武器(機関銃など)と動きの速い標的(航空機など)に関しては、発砲から着弾までの時間にほとんど差がなく、
ときにはこの時間の方がサーバーが情報を受け取るまでの時間よりも短いこともあるからです。
つまり、サーバーが情報を受け取ったときにだけ、こういったエフェクトが再生されるとなると、プレイヤーは過程の情報が残らず、
射撃の狙いを付け、修正することができなくなってしまうということです。
さらに悪いことに、プレイヤーが発砲から着弾まで情報を全く受け取れない可能性もあります。
プレイヤーが標的を撃ったという情報がサーバーに届かない状態で、その場を離れて飛んで行ってしまったら、
標的が視野の外に出てからエフェクトが再生されることになります。
そして、代わりに、完全に誤ったフィードバックが起こってしまいます。
プレイヤーは修正をして、射撃していると思っているのに、実際には前の発砲のエフェクトが表示されてしまうのです。
(100-120msのPing値でパケットロスが少ない場合でも、最大0.5秒のラグが生じる可能性があります)
サーバーサイドではいつヒットが検出されたのかプレイヤーにわかるように、ヒットすると、目標の周りに線が表示されます。
これがサーバーヒットです(最大8ヒットが検出されます)。
注意してプレイしていると発砲とサーバーのメッセージにラグがあることに気付くでしょう。
どんな航空機も口径37mm以上の機関砲が命中したら墜落するはずです。
私は機関砲しか撃っておらず、ゲームではヒットと表示されているのに、航空機が墜落しません。
どういうことでしょうか?
まず初めに、これはサーバーヒットの話であることを前提としなければなりません。
サーバー上でヒットが成功した場合には、サーバーヒットを示す線が目標の周り表示されます。
(大砲しか撃っていないという状況下では、ヒットはサーバー上で検出されているということになります)
次に、37mmの大砲であれば全ての航空機を撃破できるというのは必ずしも正確とはいえません。
例えば、インターネットで88mmの対空砲弾が直撃した形跡の残る状態で戦闘から帰還したB-17の写真を探してみてください。
第三に、もちろん37mmというのは大きな砲弾です。
しかし、それが徹甲弾(多くの航空機の標準のリールには、榴弾の横に徹甲弾が搭載されています)であった場合には、
航空機に4センチほどの穴を開けるだけです。
そして、その穴がエンジンまたはパイロットに開いたわけでなければ、航空機は飛び続けるでしょう。
プレイヤー/車両のバランスをとるために、ゲームではダメージ/ヒット/ヒットエフェクトモデルの
微調整が行われたと耳にしました。
本当ですか?
プレイヤーの統計をご覧ください。
可能な限り互角なプレイヤーを選択する以外、ゲームはプレイヤー同士を「釣り合わせる」行為は何もしていません。
さらに、それぞれの銃弾の軌道は絶えず計算されており、質問にあるようなことをするには、
軌道の計算に加えて多数の追加情報を解析しなくてはならなりません。
そのため、これは事実上、不可能であり、算出するのは極めて難しいものです。
実際、ゲームエンジンは全ての戦闘の全フレームで数百、数千の空中での発砲を計算しています。
当然、余分な情報が少なければ少ないほど、この作業にかかる時間は短くなります。
(プログラマーやエンジニアにとってこれは明らかでしょう。要するに、キャッシュの最適化とSIMD演算です。)
この場合も先と同様に、何か疑問を感じた場合にはサーバーリプレイをご確認ください。
リプレイを見れば大体の疑問は晴れるでしょう。
もしくは、特定の車両のダメージモデルなどに誤りがあることも確認できます。
つい最近では、1.63.2.105で、ある特別な場合にのみ、弾丸の動作の計算シミュレーターにエラーが発生していたことがわかりました。
(大きなエラーはすぐに修正されましたが、完全に修正が終わったのは1週間後のことでした。サーバーリプレイとご報告に感謝いたします。)
キルカメラで弾丸が丘や障害物を通り抜けるのを見ました。
ありえません!
キルカメラにはかなり簡略化された状況が映し出されます。
サーバーから収集されたデータにだけ、誰が銃弾を撃ったのか、どのように発砲されたのか、
銃弾の種類、銃弾が当たった位置と角度、それによって与えられたダメージ、ダメージの種類といった詳細な情報が含まれます。
跳弾した場合には、跳ね返った銃弾がどこへ飛んでいったのかという情報も収集されます。
アニメーションでは、そのデータに基づき、弾丸が放たれた場所から当たった場所へと直接飛んでいきます。
しかし、実際には、その軌道には常に弾道パターンが適用されています。
キルカメラ/ヒットカメラで見ると、破片効果榴弾でわずかな破片しか生じていませんでした。
これは間違っています。
数十の破片が生じるはずです!
モジュールに対してダメージを与えていない銃弾の爆発によって生じる破片とエフェクトは一部だけが再現されるか、もしくは全く表示されません。
データの転送量と処理能力を効率的に利用するためだけでなく、プレイヤーがダメージカメラで何が起きているのか
正確に確認することができるようにこのような措置をとっています。
チーターを目撃しました。
そのプレイヤーは信じられない正確さで発砲したり、
マーカーの存在しないモードでマーカーを不正行為によってつける、などの行為を行っています。
マーカーレスモードでは、プレイヤーは競技目的や完全に公正なゲームプレイまたはチームプレイを求めてプレイしているわけではありません。
雰囲気に浸りたくて、故意にそのモードを選んでいるのです。
実際に第二次世界大戦に参加している気分を味わうことができるように、情報の少ないモードを選択することができるようになっています。
もちろん、その場合でも、プレイヤーはできる限り多くのことを把握しようとしていますし、自身の周囲で何が起こっているのかは理解できます。
しかし、これらの情報を受信(レーダー、FLIR)、送信(スクリーン、HUD)する技術的な選択肢は概してひどく制限されます。
とはいえ、マーカーレスモードではプレイヤーに対して提示している情報よりも多くの情報が内部的には含まれているので、
誠意のない悪意あるプレイヤーや、ただ必死なだけのプレイヤーによって
禁止された様々なクライアントの改造が使用されている可能性もあります。
そこで、まず初めに、サーバーサイドのリプレイをご確認ください。
それでもあなたの見解が変わらない場合、そのプレイヤーが異なる品質の設定や解像度でプレイしていたり、
他のプレイヤーの助けを借りて射撃を修正し、狙いをつけている可能性があることを忘れないでください。
念のため、War Thunderでは、シングルプレイヤーゲームやクライアントサイドで論理処理が行われているゲームでみられるような
「典型的な」チートを行うのは不可能であることを再度お伝えしておきます。
そういったチートの例としては、不死身、スピードハック、インスタキル、通常よりも強力な兵器、
あなたや他のプレイヤーに対する物理モデルの特性の改変などです。
オートエイムと合わせて、(マーカーレスモードの)限られた範囲内であれば、いわゆるウォールハック / マップハックというものは可能です。
しかし、他者とプレイするゲームでの使用は不可能です。
チーターも使用できるのはサーバーを通してゲームクライアントに与えられているものだけなので、
全プレイヤーと同じコントロール性能しか使用できません。
有利を得ることが出来る主なクライアントの不正改造と一般の人がその改造を識別する方法をまとめました。
- 木 / 建物 / 風景の表示を無効にする
視界を確保する目的で、チーターは、クライアントを改造して本当であれば表示されているはずのこれらを無効にする可能性があります。
- 敵の上や周りのマーカーが表示されるように車両モデルの外観を変更する。
プレイヤーの戦車はクライアントに起因している為、戦車の種類と位置を知るために、
ゲームデータを変更している可能性があります。
例えば、障害物を通しても敵の戦車が見えるように明るい色に変更するといったものです。
あるいは、Windowsの機能を使用すると、プロセスをゲームに接続し、この情報を学習することができます。
そうすることで、スクリーン上にマーカーを表示したり、「レーダー」などのインターフェースエレメントを作成することができるのです。
これらはマーカーモードでのプレイ経験に基づいた、プレイヤーにとって馴染みのあるものです。
オートエイムとは自動的に銃身 / 砲塔 / 航空機が標的を狙ったり、弾道の照準を計算するといったものです。
これに関しては、別途記載しています。
普通の状態では目に見えないものが見えるような改造を使用しているプレイヤーは彼らの行動で目星をつけることができます。
「プレイヤー」視点のサーバーリプレイで、そのプレイヤーが見ている場所や狙っている場所などを見れば明らかです。
他のプレイヤーのリプレイも全てご覧いただけます。
そうすれば、チーターが家や木を通り抜ける形で「見て」いる場合には、簡単に見抜くことができます。
すなわち、見えていないはずの動いている敵を追っている場合はチーターです。
プレイヤーが許可されていない改造を使用していることを確信した場合には、お問い合わせからご報告ください。
YouTube上に動画を投稿したり、ツイートを行わないでください。
そのような「通報」はただ解釈が誤っていることもありますし(例えば、クライアントサイドのリプレイを使用している場合)、
気に入らないプレイヤーを追い払う目的での小細工と捉えられかねませんので、その行為はお勧めしません。
さらに、そういった場での発言は、必ずしも、チーターの情報を扱う人々によって確認されるわけではございません。
本当に問題を解決する為には、ウェブサイトという特別な場所から報告しましょう。
通報以外の方法は?
通報以外にも、サーバーサイドで自動的に不正な改造を「捕らえる」複数の方法を用いています。
しかし、そういった方法の大部分は100%の信頼性のある機能ではありません。
さらに、常に新たな改造手段が生み出される可能性はあります。
チーターに対抗する最も信頼性のある方法は主に以下の2つです:
- 公正なゲームの原則を擁護する誠実なプレイヤーの意識と彼らから寄せられる通報
- マーカーを使用したモード(主要な競技形式と全ての航空機モードで使用されています)。
禁止された改造の選択肢とそれらがゲームプレイに及ぼす影響を著しく減少させます。
ゲームデザインに関するその他の情報と、そのデザインが不正な改造とチーターに与える影響
サーバーがデータを伝達していなければ、これらのデータが明らかになるはずがありません。
残念ながら、たとえ、全プレイヤーの全フレームを計算することができたとしても、これは許容し難いラグに繋がるでしょう。
そして、戦車がどこかわからない場所から現れ始めることになりかねません。
そのため、ゲームではプレイヤーが敵対する車両を確認するよりも少し早く車両の情報を伝達しなければなりません。
それでも、ゲーム全体の質を改良し、チーターを存在しづらくするため、我々は現在の不正検出システムを変更することを決定しました。
まず初めに、最も「脆弱」であった検出システムのパラメーターを下げることで、
禁止された改造を通じたパラメーターの不正使用に対して、高い効果をもたらしました。
これらのパラメーターの1つは「無制限の検出距離」でした。
範囲内に存在する全ての車両の位置情報をクライアントは常に所有しています。
パッチ 1.65以前は、このパラメーターはおよそ360メートルとかなり高く設定されていました。
この値は、カメラを急回転させたあとにあなたの視野に敵の戦車が突然現れるという状況を最小限に抑えるために選択されていました。
我々はプレイヤーの視野の端の可視性を確認するアルゴリズムを改良しました。
これにより、このパラメーターは著しく改善し、
同時にプレイヤーがカメラを急回転させた場合でもできる限り速く敵の戦車モデルを表示することができるようになりました。
パッチ 1.65では、この範囲(最大レベルの搭乗員の場合)は約5分の1に減少しています。
(この値は、パッチがメインサーバーにリリースされる前に再度変更されるかもしれません。)
さらに三人称視点での「視野の検出距離」の最大距離を半分に短縮しました(2kmから1200mに変更)。
以前の値ではチーターは光像式照準器や双眼鏡に切り替えなくても三人称視点のカメラでほぼいつでも、
全てのマップで敵の位置情報を得ることができていました。
カメラが向いている場所は戦車自体の車高よりもいくらか高い可能性があり、三人称視点の可視性がその場所から確認されていることを考えると、
これは禁止された改良を使用している場合には明らかに有利になります。
同時に、敵の上にマーカーが表示されるモードで、マーカーが表示される距離も1200mから900mへとやや短縮されました。
双眼鏡と照準器を使用している場合、チーターに利益をもたらす可能性のある視野設定の他のパラメーターは検出距離の乗数です。
双眼鏡では、このパラメーターは2.6に設定されており、この数値は2倍すると、
対角線上に考えてもゲーム内に存在するほとんどのマップより大きくなる数値です。
照準器に関しては、2.4でした。
双眼鏡の視野を動かす速度は砲塔の回転速度に制限されるものではないので、これも利益をもたらす可能性を孕んでいます。
そこで、我々はこの倍率を2.6から1.4へと格段に減少させました。
照準器を使用している場合も検出距離の乗数が変更されましたが、こちらは2.4から2とそれほど大幅な変動ではありません。
これは移動速度が砲塔や銃の回転によって制限されているためであり、可視性の確認は照準器と同じ地点で行われています。
2つのパラメーターについてそれぞれお話しましょう。
動く敵と敵への射撃に関する検出距離の乗数です。
この2つのパラメーターの1つである動く目標の距離乗数が縮小された場合(1.5から1.1へと変更)、もう片方は逆に拡大します。
この変更で、敵を出し抜く選択肢を増やそうと試み、一般的な動作の数値を拡大しています。
同時に、プレイヤーがゲーム内で「スナイパー」モードを使用する際の、
不正なクライアントの改造によって得られる利益を減らそうともしています。
「ウォールハック」で標的を見つけることが容易になる長距離射撃のことです。
そのようなプレイヤーはマップのあちこちに移動するプレイヤーよりも遠く離れた場所を好みます。
また、今後のゲームクライアントは厚い植生に隠れる戦車の情報を所有していないので、これにより、木や背景などを消す改造を用いたところで、
厚い植生の後ろにいるプレイヤーを検出するのは不可能になります。
リプレイで照準が急に切り替わっているのを目撃しました。
そのプレイヤーはエイムボットを使用していました。
通常、あのように照準を向けることはできません。
照準のカーソルの位置は1秒間に複数回(10回以上)サーバーに送信されます。
これにより、クライアント内と比べて、動作の滑らかさが格段に落ちます。
そのため、照準の円の動きがロボットのように見え、「突然動いた」ようになります。
全体として、そのような動作は実際には照準をコントロールする外部プログラムの目印にはなり得ません。
チーターは滑らかな円の動きを真似ることに何の問題もありません。
そのこと自体は外部プログラムに何ら影響がありません。
どのみち、銃は制限された速度でしか動かないのです。
プレイヤーが他のプレイヤーをキルするのを助けるエイムボットというものが存在します。
どうすればそのような改造を行っているプレイヤーを見分けることができますか?
また、どれくらい効果があるのでしょうか?
そういった改造の効果はゲームモードに左右されます。
ゲームクライアントは戦車のモデルを表示するため、車両の種類と位置情報を所有しているため、戦車のRBモードとSBモード
(このモードでは目標に対するマーカーと距離が表示されません)では、エイムボットは敵の発見を助けるだけです。
さらに、離れた場所で発砲する場合、標準の弾道計算機で銃身を目標に向かって設定することができ、
それによって大体は目標に的中させられます。
(正確な角度は、プレイヤーが移動中かどうかなどの、多くの要因に左右されます。)
同時に、そのようなロボットは損傷を受けやすい場所を狙うことはしません。
なぜなら、それは複雑な作業であり、ロボットはあまり得意とないからです。
しかし、長距離で、高角度の軌道を描く場合には、銃弾が多くの戦車で装甲の弱いルーフに当たる可能性があります。
短距離(300~500メートル以下)で、うまく機能することは稀です。
そのようなエイムボット特有の目印は、発砲の際に、敵を全く「狙って」いないか、照準角を調整していないことです。
長距離から遮蔽した場所を狙撃しているので、ミスしてもヒットしても角度を調整している形跡がありません。
戦車のABモードでは、エイムボットは通常の照準機能と弾道計算機(「緑色の十字線」)に対して明らかな利点があるわけではありません。
航空機モードでは、エイムボットはどちらかというと無駄なものです。
非常に機動性の高い航空機(複葉機)を使って、比較的動かない(機動性のない)目標を狙撃するときに役に立つだけです。
大抵の場合、敵の航空機がどこに、どうやって飛んでいくのか(巧みに操作しなければ、リード補償マーカーが示すのは、
航空機が出現する場所だけです)を割り出すという点では、エイムボットはプレイヤーに著しく劣ります。
より重要なのは、その航空機自体のエネルギーや、敵のエネルギーなども考慮しなくてはならないので、
目標にうまく達するための手順を厳密に調整することはできないということです。
解析した統計に基づくと、航空機モードで使用されたエイムボットのスコアは平均よりも低いものでした。
(このため、エイムボットを使用したプレイヤーの罰則は違反が初めてであった場合、2週間から1ヶ月と比較的軽微なものとなっていました)
(彼らは我々から改めて罰則を受けずとも、自分で自分のプレイを制限していました)
シミュレーターモードの航空機では、エイムボットは全く役に立ちません。
「Autofire」はWar Thunderでは、照準とターゲットが一致したときに発射ボタンを押すボットです。
このボットは全ゲームモードにおいて、いいことよりも悪いことのほうが多いので、我々の知る限り、使用されていません。
見破る方法については、その作用の説明から明らかですが、実際にやってみると、そのボットを使用しているプレイヤーは
自身の作業を簡単にしているどころか、かえって難しくしています。
チートを行った人にはどのような対処をとりますか?
該当するユーザーのアカウントを停止します。
現在、通例では、アカウント停止は永久的なものです。
中傷行為を避けるため、アカウントを停止されたユーザーの一覧は公表しておりません。
同時に、最近アカウントを停止されたユーザーに関してはサイト上のステータスが「banned」となっていますので、
チートを疑っている場合にはそのユーザーのステータスを確認してみてください。