リアルタイム戦略ゲームをゼロから作成するプロジェクトがあります。私はまだ計画の初期段階にありますが、機構を見るために少しプログラミングをしています。
プログラミングの方法を知っています。また、コンピュータープレーヤーのゲームクラスとルールベース(ステートマシン)AIをどのように構成するかについても良い考えがあります。
特定のユニットに特定の動作を与える(しかし、スカウト、ミッションルートに従う、ポジションを保持する(接近する敵を攻撃する、または圧倒された場合は退却する)など)Doctrineを開発したいなど
教義はユニットにのみ適用されるため、ユニットの観点があり、マップ全体の状況については認識されません。
コンピューターAIは、表示されているマップ全体を分析し、別のルールセットに応じて各ユニットを割り当てるソクトリンを決定します。
OpenGLを使用してC#でこれを行っています。
今のところ、私は主な構想を始める前に、テストには多くのことはなく、ほんの少ししかありません。すべてのゲーム処理(更新、戦闘、戦闘などを次々に呼び出す)が発生するゲームループがあり、Application.Idleイベントの場合は非常に頻繁に呼び出されます。
今、私は疑問に思っていました。ゲームループでは多くの処理が必要になるため、コンピューターAIとユニットはそのループでアクションを選択する必要がありますか、それとも遅すぎますか?
すべてを同時に実行したい場合、コンピューターAI用に別のスレッドを作成する必要がありますか?それとも、ユニットごとに個別のスレッドですか?
マルチスレッドの経験はあまりありません。これに最適なアプローチは何でしょうか?