AIを使って『Backpack Battles』のようなゲームを作るには、同じアイテムを使用しながら異なる自動結果を生み出す2つのレイアウトから始めます。マッチ開始時にトレイをロックします。次に、どのアイテムがアクティブ化され、それが何をどのように変え、相手がいつ反応するかを表示します。短いイベントログにより、プレイヤーは結果を自分の配置と結びつけることができます。
Relay Cart Scrimmageは架空のワークショップゲームです。小さなカートに3つのモジュールを搭載し、4ビートのマッチを解決させます。2回のランの間に1つのモジュールを移動させ、カートが勝利に必要な十分なチャージを獲得できるかどうかを確認します。

『Backpack Battles』から配置に関する問いを抽出する
『Backpack Battles』は、PlayWithFurciferによるインベントリ管理型オートバトラーです。公式ストアページでは、アイテムの購入、クラフト、配置について説明されており、開発者のプレスキットでは、自動戦闘におけるアイテムのシナジーについて説明されています。公式Steamリストおよび開発者プレスキットを参照してください。
そのループから引き出す有用なデザイン上の問いは、プレイヤーがマッチへの制御を委ねた後、配置がどのように結果を変えるかです。このオリジナルのプロトタイプでは、装備、ワークショップ、タイミングルール、そして相手が、1つの再現可能な比較のために設計されています。
エッジとコーナーを比較する
3列2行のトレイを使用します。各モジュールは1セルを占有します。実例のレイアウトでは、エミッターを行1・列1に、スクリーンを行2・列1に配置します。比較のためにコイルには2つの候補位置を与えます。
| コイルの位置 | エミッターとの接触 | マッチ中の効果 |
|---|---|---|
| 行1、列2 | 辺全体を共有 | コイルは次のパルス用のチャージを蓄えることができます。 |
| 行2、列2 | 角のみで接触 | コイルはチャージを供給しません。スクリーンとの接触には効果がありません。 |

開始前に3つのモジュールすべてがトレイ内にあることを必須とします。重複やグリッド外の配置は拒否します。開始が受理された時点でレイアウトを記録し、その記録に基づいてマッチを評価します。プレイヤーは再開始後に何が起きたかを確認し、モジュールを再配置できます。
4つのビートを固定順序で解決します
プレイヤーのカートは耐久値2で開始し、ライバルは6で開始します。エミッターはビート2と4に発射し、2のダメージを与えます。アクティブなコイルはビート1と3に1つのチャージを蓄え、同時に1つまで保持できます。次のパルスはそれを消費し、追加で1のダメージを与えます。スクリーンはライバルからの最初の応答をブロックします。生存しているライバルは、ビート2と4に1の応答を行います。
各ビートにおいて、まずスケジュールされたエミッターのパルスを解決します。それによってライバルが停止した場合、即座に終了します。そうでない場合は、スケジュールされたコイルのチャージを解決し、次にライバルの応答を解決します。応答の後にプレイヤーのハルを確認し、ビート4の終わりに期限を確認します。期限時点でライバルがまだ稼働している場合、カートは敗北します。
| ビート | コイルが辺を共有 | コイルが角に触れる |
|---|---|---|
| 1 | 1のチャージを保存。 | チャージなし。 |
| 2 | パルスが3のダメージを与える。ライバル6 → 3。スクリーンが応答をブロック。プレイヤーは2のまま。 | パルスが2のダメージを与える。ライバル6 → 4。スクリーンが応答をブロック。プレイヤーは2のまま。 |
| 3 | 再び1のチャージを保存。 | チャージなし。 |
| 4 | パルスが3のダメージを与える。ライバル3 → 0。即座に勝利。 | パルスが2のダメージを与える。ライバル4 → 2。応答によりプレイヤーは1のまま。期限時点で敗北。 |

AIにトレイとイベントのルールを与える
SEELEは、書面によるアイデアからゲームプロジェクトを開始することをサポートしています。最初のリクエストで、レイアウトのルール、スケジュール、優先順位を記述してください。アニメーション付きトラックを追加する前に、シンプルなモジュールとテキストログで完全なインタラクションを示すことができます。
オリジナルのインベントリオートバトラー「Relay Cart Scrimmage」を作成してください。
トレイは3列、2行を使用します。エミッター、コイル、スクリーンはそれぞれ1セルを占有します。重複やトレイ外の配置は拒否します。開始前にすべてのモジュールを必須とします。トレイのスナップショットを撮り、ロックします。
プレイヤーハル2、ライバルハル6、保存チャージ0、スクリーンブロック1つで開始します。
最大4ビートまで自動実行します。エミッターはビート2と4にパルスし、2のダメージを与えます。保存チャージを消費した場合、追加で1のダメージを与えます。
辺が隣接するコイルは、ビート1と3に1のチャージを保存し、上限は1つです。
角への接触またはスクリーンへの接触ではチャージは得られません。
各ビートでまずエミッターを処理します。ライバルハルが0に達した場合、即座に勝利します。
次に、スケジュールされていればコイルを処理します。その後、ライバルがビート2または4で生存している場合、1のハルで応答します。スクリーンは最初の応答のみをキャンセルします。
プレイヤーハルが0に達した場合、即座に敗北します。ビート4後にライバルが生存している場合、期限時点で敗北します。
チャージ、パルスダメージ、ブロック、応答、結果を順番にログに記録します。試合中のトレイ変更は受け入れません。リスタートはパッキングに戻り、時計とハル値をリセットし、チャージをクリアし、スクリーンを復元します。
オリジナルのプレースホルダーモジュールと、固定された1体の非人間対戦相手を使用してください。
まず、重複と範囲外の配置を試してトレイを確認します。次に、両方のレイアウトを再生し、ログを比較します。角の配置でチャージが得られた場合、ゲームが開始時にどの接触ルールを読み取ったかを確認します。勝利パルスの後にライバルが応答した場合、試合がいつ停止するかを確認します。ブリーフからプレイ可能へのテストガイドでは、修正リクエストに1つの具体的な不一致を与える方法を示しています。
チャージを1つ遅らせる
辺のレイアウトを維持します。2つ目のコイルチャージのみをビート3からビート4に移動します。ビート4では、エミッターが依然として最初に行動します。保存チャージがないため、パルスは2のダメージを与え、ライバルのハルを1にします。その後、コイルはチャージを保存しますが、それを使用する後続のパルスはありません。ライバルが応答し、実行は期限時点で終了します。
同じレイアウトからの2つのイベントログを比較します。遅延バージョンでは未使用のチャージ、オリジナルでは最終パルスで消費されたチャージを探します。モジュールが依然として接触しているにもかかわらず、違いがタイミングから生じたかどうかを判断できます。
よくある質問
なぜ試合開始時にレイアウトを凍結するのですか?
凍結することで、自動試合に解決すべき1つの配置を与えます。また、プレイヤーが結果を生み出した正確な計画と比較できるようにします。初期テストでは、スナップショットを表示したままにするか、試合終了後にイベントログの横にレイアウトを表示してください。
対角線は隣接としてカウントすべきですか?
パズルに役立つルールを選び、プレイヤーが開始する前に示してください。このバージョンでは、コイルを1行移動すると効果が変化するよう、共有辺のみをカウントします。他のモジュールを同じ配置のまま、角の配置と辺の配置をテストしてください。
なぜトリガーを順番に記録するのですか?
両方のアイテムが同じビートでアクティブ化されていても、チャージが遅すぎる場合があります。イベント、その効果、新しい状態を発生した順に記録します。ログに後から現れるチャージは、トレイ内の接続不良とタイミング問題を区別するのに役立ちます。
ランダムな戦闘をいつ追加すべきですか?
各レイアウトが何をするかを再現できるまで、対戦相手を固定してください。その後、明確な理由(異なる防御選択をテストするライバルなど)でバリエーションを追加します。チャージ、ダメージ、イベント順序の変化を診断するために、元の4ビート試合を保持してください。
結果を変える1つの配置から始める
接続、トリガースケジュール、1体の対戦相手を選びます。それらのルールをオリジナルのビルドブリーフとしてSEELE AI Game Makerに持ち込みます。より多くの装備を追加する前に2つのレイアウトを比較し、配置が何を変え、いつ変えたかを判断できるようにします。


