質問
ゲームに自動テストを追加するにはどうすればよいでしょうか?
ゲーム エンジンの多くの機能 (ネットワーク、オブジェクト作成、メモリ管理など) を単体テストできると思いますが、実際のゲーム自体のテストを自動化することは可能ですか?
私はゲームプレイの要素について話しているわけではありません (マップ X で Protoss が Zerg を打ち負かすなど)、ゲームとエンジンの間の相互作用について話しているのです。
序章
ゲーム開発において、エンジンはゲームの単なるプラットフォームです。ゲーム エンジンは OS と考えることができ、ゲームは OS が実行するソフトウェアと考えることができます。ゲームは、スクリプトのコレクションまたはゲーム エンジン内の実際のサブルーチンである可能性があります。
考えられる答え
私の考えはこれです:
決定論的なエンジンが必要です。これは、1 組の入力が与えられた場合、出力がまったく同じになることを意味します。これには、同じ入力でシードされる乱数発生器が含まれます。
次に、アバター/ユーザーが操作できるいくつかのオブジェクトを含むベアボーン レベルを作成します。小さく始めて、より多くの相互作用が開発されるにつれて、オブジェクトをレベルに追加します。
パスをたどる (パスファインディングをテストする) スクリプトを作成し、さまざまなオブジェクトと対話します (結果または期待される動作を保存します)。このスクリプトが自動テストになります。一定の時間 (たとえば 1 週間) が経過したら、エンジンの単体テストと共にスクリプトを実行します。