
GDevelopで特定の2つの数値をランダムに選ぶ方法
GDevelopのコミュニティフォーラムで、ボス敵の攻撃選択に関する興味深い議論が行われています。開発者は、ボスが攻撃後の次の行動として、2つの異なる数値の中からランダムに1つを選び、それによって次の攻撃を決定したいと考えていました。
しかし、実装したところ、`RandomInRange`アクションが2つの指定した数値のみを選ぶのではなく、その2つの数値の間の全ての整数からランダムに選んでしまうことに気づいたようです。その結果、ボスは同じ2つの攻撃を繰り返し、変化に乏しい行動パターンになってしまうという問題が発生しています。
この現象は、`ReadyToChange`というブーリアン変数が`True`に設定された直後、`AttackMove`変数が`CurrentMoveTracker`に保存され、その後`MoveTransitionSelection`にランダムな数値が設定される、という一連の流れの中で起こっています。そして、この`MoveTransitionSelection`の値が次の`AttackMove`を決定します。
開発者は、「指定した2つの数値だけをランダムに選ばせるにはどうすれば良いか?」と問いかけています。この問題は、ゲームの多様性を損なう可能性があり、多くの開発者が直面する可能性のある共通の課題と言えるでしょう。
フォーラムでは、この問題に対する様々な解決策や代替案が提示されています。
- `RandomInRange`の代わりに、特定の数値のリストを作成し、そこからランダムにインデックスを選ぶ方法。
- 条件分岐(`If`イベント)を駆使して、特定の数値のみが選択されるように制御する方法。
これらの議論は、GDevelopでより複雑なランダム選択ロジックを実装する際の参考になります。ランダム性を意図通りに制御することは、ゲームデザインにおいて非常に重要です。

このフォーラムスレッドは、GDevelopコミュニティがどのように互いに助け合い、問題解決に取り組んでいるかを示す良い例です。