背景は次のとおりです... 自由時間には、Staker (古い BASIC ゲームのTank WarsとScorched Earthに触発されたもの) と呼ばれる砲撃ゲームを設計し、MATLAB でプログラミングしています。最初は「なぜ MATLAB なのか? ゲーム デザインに適した言語/ソフトウェア パッケージは他にもたくさんある」と思うかもしれません。そして、あなたは正しいでしょう。ただし、私は馬鹿で、ゲームをゼロから設計する方法の基本を学ぶことに興味があるため、必ずしもプレハブ モジュールで何かを使用したいとは限りません。また、私は MATLAB を何年も使用しており、他の人が実際に試みたことのないことを MATLAB で行うという挑戦が好きです。
目前の問題に移ります。プレーヤーがコンピューターと対戦できるように、AI を組み込みたいと考えています。ターゲットに命中するための方位角、仰角、発射体の速度を選択し、ターンごとに調整するアルゴリズムを設計する方法について考え始めたばかりです。問題を考えすぎて、最初は AI を複雑にしすぎたのではないかと感じたので、一時停止して、ここのコミュニティにアルゴリズムの設計方法についてアイデアを求めてみようと思いました。
具体的な質問:
AI 設計に関する具体的な参考文献はありますか?
AI プレーヤーの難易度が連続的に変化するように設計しますか (難易度 0 (簡単) から 1 (難しい) まで、すべて同じ一般的なアルゴリズムを使用します)、または個別の数の AI プレーヤー用に特定のアルゴリズムを設計しますか (ランダムな方向に発砲する簡単な敵や、風の影響を考慮できる難しい敵など)?
どのような種類の数学的アルゴリズム (疑似コード記述) から始めますか?
追加情報: 発射体の動きをシミュレートするために使用するモデルには、流体抗力と風の影響が組み込まれています。「流体」は空気でも水でも構いません。空気中では、いくつかの単純な大気モデルに基づいて、空気の密度 (したがって抗力の効果) が地上からの高さによって変化します。水中では、抗力が非常に大きいため、発射体は通常追加の推力を必要とします。つまり、発射体は重力以外の力の影響を受ける可能性があります。