斜めの動きが地図をさらに探索するのを防ぐことはできますか?


57

8方向のいずれかの動きがまったく同じターン(チェスボードスタイルの規則)を要するタイルグリッドで、斜めの動きが直交する動きよりも多くの新しいタイルを表示するのを防ぐことができますか?

たとえば、次の画像の赤いボックスです。緑色のセルが現在表示されています(正方形の視野)。8方向のいずれかに1タイルの距離を移動できます。

北東に移動すると、13の新しいタイル(青で表示)を探索します。代わりにに移動する場合、7つの新しいタイル(紫色で表示)のみを探索します。

位置に依存する可視性を持つグリッド

各方向への旅行を探索に等しく有利にするにはどうすればよいですか?


27
これは、このようなゲームの設計の根本的な欠陥です。対角線の動きを許可しないか、この問題のない六角グリッドのようなものに切り替える必要があります。
テトラッド14

1
@Tetradあなたはそれが欠陥であることを間違ってはいませんが、おそらくあなたはそれがこのようなゲームでどれほど普及しているか気づいていないでしょう。
スミス氏14

8
直交と斜めの動きが同等に速いゲームでは、常に、斜めの動きが直交の動きよりも優れていることがあります。逆の場合も同様です。解決できないだけです-ある穴を塞ぐと、別の穴が開きます。
パタシュ14

3
完全な答えではありませんが、対角線の長さに比例して、対角線の移動に直交線よりも長い時間がかかる可能性はありますか?第二に、動きがダイヤモンドパターンを使用し、表示距離が正方形パターンを使用する混合ソリューションを使用できますか?
バリティ

2
もう1つの答えではありません:直交移動は現在のように動作しますが、斜め移動は光源を「ファジー」にします-範囲に入ったばかりの13個の正方形がすべて表示されるわけではありませんが、7個だけです(または)ランダムに決定されます。
スノーボディ14

回答:


67

Dungeons and Dragons 3.5(ペンと紙のRPG)には、移動とグリッドベースの半径の計算の両方に使用されるソリューションがあります。対角移動には1.5直交コストがかかります。単位正方形の対角線は約1.414なので、1.5はかなり近いです。

D&D 3.5は整数移動のみをサポートしているため、実際に計算される方法は、直交移動のコストが「1平方」であるということです。最初の対角線の動きも「1正方形」しかかかりませんが、2番目の対角線の動きは「2正方形」です。対角線ごとに1つと2つの正方形を交互に配置します。ゲーム内でこの移動ルールを実装すると、斜めの移動に関するいくつかの問題を処理できます。

この図が示すように、この移動ルールは円の合理的な近似を作成し、真の距離と比較した場合(開始から15単位以内の場合)に1を超えてオフになりません。

ここに画像の説明を入力してください

視界/探索半径もこの方法で計算される場合、対角線の動きと対角線の発見は、直交のものとほぼ同じか遠くになります。


まさに私が提案したかったもの。キャラクターが1ターンにつき1スペースしか移動できない場合、移動を制限するという点でこの戦略は失敗することに注意してください(質問の図からそうですか?)。それらがターン間で奇数/偶数の対角線上にある場合、あなたは「覚えている」ことができますが、これはプレイヤーを混乱させる/イライラさせるかもしれません。とにかく、これは可視性の問題に対してうまく機能します。
アレクシスBeingessner 14

5
@AlexisBeingessner、本当。質問者はチェスキングのような動きを望んでいたことを示しましたが、これはコンピューターゲーム開発サイトであるため、優れたゲームプレイソリューションを指摘します。これがなぞなぞや純粋な数学の質問の場合は、別のサイトで期待しています。これがローグライクゲームの場合、それらの一部は既にさまざまな移動速度をサポートしています。
デーン14

ほとんどのローグライクゲームはターンベースのように見えますが、実際には時間コンポーネントがあります。そのため、斜めに移動すると、他のオブジェクトが反応するまでの時間が長くなります。
コス14

67

視野の形状を変更する必要があります。

そのため、任意の方向に移動すると、同じ数の新しい正方形が表示されます。

1つの可能性があります。

グリッドの例


5
面白い; 私はダイヤモンドの視野を考慮したことがありません。ただし、このビューにも問題があります。斜めに移動しているときに敵を見つけた場合、直交して移動していた場合よりもはるかに近くなるため、斜めに移動するのはひどい考えです。
スミス氏

43
@ ... mr.smithは、はい、それは新たな問題がありますが、私はあなたの古いものを解決してきました
ChargingPun

確かにそうしました。私は質問で十分に具体的ではなかったようです。
スミス氏

8
ここで円形の形状が役立ちますか?
amitp

3
@amitpこれ円形です。距離関数がマンハッタン距離である場合。
ダニエルワグナー14

27

対角線と直交の動きでほぼ同じ領域を明らかにするには、2つのものが必要です(それぞれ単独で、別の回答またはコメントで既に提案されています)。

  1. ほぼ円形のビュー範囲

    擬似円形視野範囲の画像

    単独では、これは両方のタイプの動きに対してまったく同じ面積を明らかにするものではありません。たとえば、上の画像では、直交移動で9個の正方形が表示され、斜め移動で13個が表示されます。ただし、この例の正方形の表示領域の13/7比よりも優れています。

    実際、ビュー半径が大きくなると、対角線/直交ステップごとの露出領域の比率は、円形領域では√2≈1.414になり、正方形のビュー領域では同じ比率は2になります。

  2. 遅い斜めの動き

    実際の生活では、正方形のフィールドを斜めに歩くのは、辺の1つに沿って歩くよりも時間がかかります。実際、約√2≈1.414倍の時間がかかります。ゲームの動きをリアルにしたい場合は、ゲームでもそれを実現する必要があります。

    実際には、3/2 = 1.5は√2のかなり良い近似値です。したがって、各直交ステップで2つの時間単位を使用し、各対角ステップで3時間を使用することができます。上記のビュー領域の例では、9/2 = 4.5は直交移動の時間単位あたりの正方形を示し、13/3 = 4.33は対角移動の時間単位あたりの正方形を示します。かなり近いですね?

    あるいは、直交移動のために「1ステップ= 1時間単位」に固執したい場合は、Daneが提案したD&Dシステムのようなものを使用して 2番目の対角線ごとに余分なターンを消費させることができます。(ただし、それを行う場合は、各ユニットが行った斜めのステップ数を明示的にカウンターする必要があります。そうしないと、E、NE、E、NEなどのエクスプロイトが発生する可能性があります。 。プレイヤーが意図したよりも速く探索できるようにする移動シーケンス。


このような悪用を防ぐ簡単な方法は、対角線の移動コストに2ティックかかることです。ただし、2ティックかかる同じ方向への移動が先行する場合を除きます。
supercat

1
@supercat:True、ただし、E、NE、E、NE、...シーケンスは、直線の直交/斜めの動きよりも探索の効率が著しく低いため、望ましくない場合があります。
イルマリカロネン14

そのシーケンスの効率は低下しますが、それではどうでしょうか。すべての探査方法が同等に効率的である必要はありません。実際には、前後の動きが二重請求の対角線であった場合は免除され、向きの変更に時間のペナルティを課すことは悪くないかもしれません。
supercat 14

2
しばらく前に似たようなことをしましたが、直交移動には1平方あたり2つの「ティック」がかかり、斜め移動には3つのコストがかかりました。
メイソンウィーラー14

11

グリッドを使用しており、ユーザーがどの方向に進んでいるのかを知っているため、前の回答を適応させ、方向に応じて異なる視野を使用することを制限するものはありません。

たとえば、基本方向に移動するときにフィールドを拡張して角を含め、斜めのケースの両端にある2つの正方形を縮小して、それぞれが9つの正方形を発見できるようにすることができます。

照明の動作に依存する別の方法は、アンチエイリアスを使用したより良い円近似を使用して、一部の正方形を部分的に明らかにすることです。


これは興味深い妥協案です。斜めに移動すると、通常は表示されていたはずのすべてのセルが表示されるわけではありません。ターンを待って(これらのセルを探索する)、移動を続けることができます。
スミス氏14

8
「前の答え」はどの答えですか?
Mooingダック14

7

視界を固定するのではなく、プレーヤーの視界領域をプレーヤーが向いている方向と、おそらく最後の数ターンでプレーヤーが向いた方向に依存させるのはどうでしょうか(北に移動していたプレーヤーはすぐに南に一歩進みますが、その方向に最大表示距離を得るために数回転かかる場合があります)。狭い廊下から北へと大きな部屋に向かい、北への旅を続けるプレイヤーは、東と西の視界が制限されるでしょう。プレイヤーが移動を停止すると、プレイヤーの現在の視界内にある見えない領域をシステムが自動的に「探索」することができますが、プレイヤーがアクティブに移動している間、視野をより制限する必要があります。


3

より複雑な視野(上記で説明したように、グリッドベースのレイアウトの制約のために独自の問題を追加します)の代替として、控えめに基づいていないゲームの動きの効果をエミュレートすることができますグリッド。自由な移動が可能な場合、1単位の対角線の移動は、正方格子で見られる〜1.41単位の移動ではなく、まさにそれです。

デスクリートグリッドを失うことなく単一ユニットの移動を強制することはできませんが(ゲームデザインが大幅に変更される可能性があります)、追加の移動を追跡し、後でドロップ移動することができます: 1.00はそのユニットに移動をスキップさせます。または、対角線を通常と見なし、水平または垂直方向の移動ごとに0.41秒を加算し、1を超える(または対角線移動の場合は1.41)余分な移動クレジットを与えます。

これをプレイヤーにどのように提示するかを、スムーズで公平に見えるように注意する必要があります。多人数プレイヤーのシナリオでは、このような変更はプレイヤーが戦略的に活用するものになる可能性があります-これは問題かもしれませんし、これをゲームメカニックと混ぜる自然な方法があるかもしれません(おそらくプレイヤーは小さな後で迅速に反応し、そのプールに余分な0.41秒の移動フィード(または取り出し)を与えるために使用できる「未使用の移動クレジット」の量。

これは、プレイヤーコントロールエンティティが1ターンごとに1ユニット以上移動した場合に最適です。たとえば、3つの移動ポイントを3つの水平移動として使用するか、2つの対角移動ポイントとして後で0.16をプールに残します。それが1.00に達すると、プレーヤーは「自由な」時間/非常に動き、1.41で自由な対角線を獲得します。余分なものを1.5に制限すると、その時点で強制的に使用したり失われたりして、プレイヤーがこの保存されたエネルギーを長期間保持したり、蓄積したりするのを止めることができます。

明らかに、これは完全に望ましくないゲームルールの複雑さであり、コンピューター化されていないゲームでは実用的ではありませんが、ゲームの既存のルール内で動作させることができれば、必要なく移動方向間の探索の違いを制限しますグリッド形式を放棄します。


2

プレイヤーが上下左右に1つだけ移動する場合、プレイヤーに2つのスペースを移動させることができます。それは完全に均等になるわけではありませんが、もっと近いでしょう。


これは良いアイデアですが、私は(対角がちょうど2つの直交する動きのように)単に斜めの動きを禁止と同等と考えている
Vality
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.