手続き的に生成されたレベルで見つかったバグを報告する方法は?


8

手続き型生成がどのように機能するかについては多くのトピックがありますが、テストする方法や、さらに重要なこととして、手続き型生成レベルで発生する可能性のあるバグを報告する方法に関する情報は見つかりませんでした。新しいゲームをプレイするたびに異なって見えるマップ上で、たとえばレベルデザインに関連するバグを説明する最良の方法は何ですか?バグレポートにどのような情報を含めれば、レベルデザイナー、レベルアーティストなどが簡単に再現できるようになり、その後、回帰プロセス中にも再現できますか?

編集:私がテストする準備をしているゲームは、開発のごく初期の段階にあり、レベルの生成を担当するシステムとともに常に変化していることは、言及する価値があります。この調査の目的は、バグの記述方法(レポートに含める情報)を学習することです。そのため、変化する環境での回帰は、可能な限り時間がかからず、可能な限り効果的です。


2
ターゲットオーディエンスは誰ですか?つまり、これらのバグレポートに誰が記入するのですか?
ヴァイランクール

1
可能な解決策の1つは、「保存」機能、または少なくともいくつかのハッシュメカニズムを追加することです。このようにして、テスターはレポート全体にレベル全体を含めることも、少なくともテキストのハッシュを含めることもできます。これを後で逆転させて、類似したレベルの束にすることができます。最初のオプションは簡単ですが、トラフィック/スペースを消費します。2番目のオプションを実装するには、真剣なブレインストーミングが必要です。Ps私は間違っているかもしれませんが、私が覚えている限り、Diablo 2はハッシュを使用しました。したがって、レベル(およびそれに似ている他のレベル)はハッシュで記述されていました。
Sergey.quixoticaxis.Ivanov 2017

どのようなゲームですか?ターンベースのゲームで使用されるIEテクニックは、リアルタイムゲームには適さない場合があり、その逆も同様です。
ピカレク

@ Alexandre Vaillancourt:テスターは、自動化ツールを使用してバグを報告します。このツールは、物理オブジェクトの量、AIの数などの単純な情報を収集します。これらの自動化されたレポートだけでなく、従来のレポートにも何が含まれているのでしょうか。テスターに​​よって書かれたレポート。@Pikalek:オープンワールドとリアルタイムのゲームプレイを備えたFPPアクションゲームです。
BoYLER 2017

回答:


18

また、マップ生成アルゴリズムが確定的で、初期シード値に基づいて再現可能な場合にも非常に役立ちます。したがって、同じシード値を入力すると、同じマップが得られます。これはあなたが思っているよりも実装が簡単かもしれません。ほとんどの乱数生成APIはシード値で初期化でき、同じシードに対して常に同じ乱数シーケンスを生成できます。これが当てはまらない数少ないプラットフォームの1つ(ブラウザー・ベースのJavaScriptなど)を使用している場合は、独自の乱数ジェネレーターを実装できます。実装がそれほど難しくなく、通常は常にシード値を必要とするアルゴリズムがたくさんあります。

テスターは、バグレポートでマップシードに言及できます。「湖の真ん中に木が生える」などのバグレポートには、「シードa4f6dd32でマップを生成し、位置4321500:1269100に移動する」という再現指示が含まれる場合があります。これを確認したら、影響を受けるマップチャンクでトリガーするマップ生成アルゴリズムに条件付きデバッガブレークポイントを設定し、何が起こっているかを正確に確認できます。

確定的マップ生成アルゴリズムを使用すると、自動テストを実装することもできます。既知の出力を持つさまざまなテストシードを作成し、生成アルゴリズムのパフォーマンスを改善した後、自動テストでその出力が同じかどうかを確認することができます。


アイデアをありがとうございました。ゲームがプレイ可能/テスト可能な状態にないため、私はそれらをまだ使用して試してみることができません。実際にテストの準備ができるまでには、さらに多くの時間が必要になります。今のところ、私はこの問題について研究しています。
BoYLER 2017

これは素晴らしい答えです。現在、Dungeon Architectを使用して、シードに基づいてレベルをランダムに生成するゲームを作成しています。私はさらに一歩進んで、ランダム値をDAと自分のサブシステムの両方のすべてのサブシステムに送信するランダムシングルトンクラスを作成しました。利点は、シード値とレベル自体の値(たとえば、ダンジョン1-1またはフォレスト3-6)を知っていれば、同じモブを使用して、同じ場所に同じレベルでまったく同じレベルを再現できることです。戦利品テーブルとすべて。この値はログに記録されるため、バグレポートを解析してシナリオを再作成するのは簡単です。
ジェシーウィリアムズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.