ゲーム業界では、ゲーム/レンダリングの視覚的な部分に自動テストを使用していますか?どうやって?


10

ゲームの一部は、自動化された方法(ロジック、数学、入力処理)で簡単にテストできます。しかし、純粋に視覚的で簡単にテストできないものもたくさんあります。

ゲーム業界がこれをすべて手動テストに任せたとしたら、私は驚きます。十分なお金があるので、少なくともゲームの視覚的な側面のいくつかを回帰テストできるように努力が払われたと思います。

これは本当ですか?もしそうなら、ゲームのレンダリングをテストすることができる可能な方法は何ですか?出力のキャプチャと画像の比較(これは信頼できますか?)?低レベルでグラフィックカードからのデータをインターセプトしますか?その途中で頂点情報(など)をキャプチャするグラフィックスカード?可能性はたくさんあるようです。しかし、これに関する情報は見つかりません:(

注:この質問はこの質問の重複であるとマークされていましたが、これを行う方法について特定のtech / frameworks / toolsについては質問していませんが、このプラクティスに関するアイデア、および実際のゲーム業界が行っていること(ある場合)彼らはまったくそうします)。


おそらく彼らは(サードパーティまたは自社開発の)十分にテストされたグラフィックライブラリを使用しているだけだと思います。ゲームレベルを設計する際、すべてのオブジェクトが正確に座標X、Y、Zにあるかどうか、または遠近法が正しいかどうかをチェックしませんが、オブジェクトがそこにあり、壁などでブロックされていないことを確認するなどの簡単なことを行います。グラフィックライブラリが社内で開発されている場合、テストは自動化され、より基本的なものになります。
SJuan76 2014

@ SJuan76エンジンの上に構築している場合、問題はエンジンのテストに当てはまります
Danny Tuppeny

この質問は、重複としてマークされた質問よりも範囲がいくらか広くありませんか?OPはC ++またはOpenGLについて言及していません。ゲーム産業はそれよりも大きい。
toniedzwiedz 2014

ハードウェアが機能していることをテストするよりも、グラフィックAPIにバグがなければ、コードが正しいことを正式に証明する方がおそらく簡単です。AMDとNVidiaのドライバーはプロプライエタリなので、グラフィックスカードとの通信に関与するプロトコルは、1)プロプライエタリであり、2)変更される可能性があり、3)カードによって異なります。さらに、グラフィックスカードに送信されたデータが正しい場合でも、グラフィックスカードにハードウェアの欠陥がないことをどのようにして確認しますか?
Doval 2014

2
だましターゲットはOpenGLグラフィックスの自動テストの戦略に特化したものだったので、私はこれを再開しようとしました。これは私の専門ではありませんが、ゲーム業界をよく知っている他の人からのフィードバックを信頼しているので、もう一度チャンスを与えたいと思います。同様の質問への参考のためにここを参照してください:programmers.stackexchange.com/questions/150688/...
maple_shaft

回答:


1

どの企業もさまざまな方法で行い、ゲームによってテストの方法は異なります。

  • たぶん、グラフィックスに関する情報が不足しているのは、レンダリングが実際に「反復的」であるため(申し訳ありません)、一般的な複雑なシーンでは、ほとんどの人がほとんどのグリッチ(使用頻度の低いシェーダーを除いて、ストレスシェーダーの特別なレベル/デモを使用できます)。人間は何千年もの間ハンターであったことを覚えておいてください:)おそらく私たちはグリッチを見るために設計されています。
  • また、ほとんどのゲームに存在する動きの自由と、より「現実的」であると感じさせる典型的なゲームの他の要素のランダム化は、通常、純粋な自動テストを適用するための悪夢です。実際、人間のテスターは、より迅速かつより多くを見つけるでしょう。自動テストよりもエラー。テスターがプレイしているときはいつでも、タイミング、統計、位置/角度/その他の変数を記録するためのロジックをコーディングできます...自動化されていないテストでも、自動化されたテストのようなフィードバックがあります。通常、ベータテスターで記録されたセッションを再生できると便利です(通常、最終的なゲームでも優れた機能です)。
  • レンダリング統計については、たとえば、次の情報を取得できます。シェーダーのそれぞれの描画呼び出しカウント統計(呼び出しを行うので、いくつかのカウンターを維持するのに十分です)、アップロードカウント(同じ、いつ制御するか) gpuバッファが更新されます)、タイミング(fpsだけでなく、各呼び出し間の経過も)など。必要に応じて(ただし、特定のエラーを探している場合を除いて、これはお勧めしません)グラフィックカード自体から統計を取得できます。 (たとえば、オクルージョンクエリを使用して、フィル率などを取得できます)。
  • 最後に、ベータテスターを使用する他の理由は、グラフィックカードが異なると動作が異なる可能性があるためです...テストマシンo_Oのファームが必要になる場合があります。最愛の人間のベータテスターは、すべての混乱を和らげます。

それが役に立てば幸い!

免責事項:私はベータテスターではなく、開発者XDDDです。


私は人間がパターン、グリッチなどを見ることを中心に設計されていることに完全に同意します...私たちは確かに視覚的な存在です。
Trilarion 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.