複雑なゲームボットの最初の成功

(共同オープンソースプロジェクトへの招待)



なぜ人々はゲームボットを書くのですか? -多くの理由が考えられますが、その1つはもちろん、複雑なAIの問題を解決することに対する純粋な学術的関心です。 CSの哲学と数学の哲学に関する文献では、プログラミングは登山と繰り返し比較されてきました。 このような比較を行ったのは誰が最初であったかを言うのは難しいです。 私たちの意見では、それは私たちのケースに非常に適しているので、オリジナルではないように見えるリスクがありますが、それでも私たちは声明を出します:プログラマーのために非自明なボットを書くことは、登山家のピークを登るような挑戦です。 ピークにアクセスできないほど、それを征服したいという欲求が強くなります。 したがって、まず、興味深い山脈の真に価値のあるピークを選択する必要があります。 まだ誰も征服していない多くの複雑なピークを持つこれらのアレイの1つは、ゲーム「 Space Rangers 2 HD:Revolution 」(KR2)-ゲーム「 Space Rangers 」(KR)のシリーズの続きです。 ゲーム業界の鑑定家は、このシリーズのゲームを提出する必要はありません。これは、コンピューターゲームの100歳以上の人のまれなケースの1つです。ロシアのスタジオElemental Gamesが開発したシリーズの最初のゲームは、 2002年に1Cによって公開されました。 このゲームシリーズの開発の興味深い歴史は、これらのゲームに関するウィキペディアの記事によく反映されているため、ここでは繰り返しません。 SNK-Gamesスタジオが現在KR2の開発、サポート、改善を行っていることだけに注意してください。



植物学の対象の選択は多くの点で彼の態度に依存するため、開発者に言及したのは偶然ではありません(空の広告ではありません)。 多くの開発者は、ボットだけでなく、ゲームのサードパーティの修正(mod)に対しても非常に否定的な態度を持ち、ユーザープレイヤーから距離を置き、「私のゲームは開始しません」などのよくある質問への純粋に正式な回答へのサポートを減らします。 さらに、ホットラインの回答は通常、資格のない、ゲームの開発に忙しくなく、内部からそれを知らない特別に雇われたオペレーターによって与えられます。 更新に関しては、それらが出てきた場合は、純粋に表面的な変更が行われます。 フィードバック「ユーザー開発者」はほとんど機能しません。 そのような場合にゲームのバランスを改善するなどの過激なアイデアは通常無視されます。 KP2の場合、画像は完全に反対です。 ゲームは定期的に更新され、各更新には大きな改善が含まれています。 主な開発者は、誰でもゲームのデバイス(特に、使用されているアルゴリズム)で直接回答を得て意見を述べることができるフォーラムをサポートしています。 このフォーラムでは、多くのサードパーティのMODを見つけてダウンロードできます。開発者は、MOD構築を容易にするインターフェイスを開発し、これらのインターフェイスに関するドキュメントをパブリックドメインに公開し、MODビルダーから生じる質問に答えます。 開発者と植物の構築に対する同じ慈悲深い態度が見られます。 これにより、主に2つの単純なボットが作成されました。これらはユーザーに非常に人気があります。起動時の銀河マップを生成するボットと、ゲームSRHDDumpReaderBurning Daylightの著者)の現在のコースのダンプの分析、およびこの記事の著者が作成した宇宙船ハルSR2HDShipbuilderを生成するボット。 現在、私たちは( 戦術とともに)惑星の戦い(ロボットの戦い)を渡すための別のボットSR2HDPascalBotに取り組んでいます。 このボットについてさらに詳しく説明しますが、最初に対象分野、つまり惑星の戦いについて少し説明します。



画像



プラネタリーバトル(PB)はメインゲームの個別の小さなタスクですが、メインゲームを経由せずにリストから選択できます。 タスクは、一時停止の可能性があるリアルタイムで実行されますが、中間保存の可能性はありません。 各タスクには、ゲーム世界の独自のマップがあります。これは、プレイヤーのロボットと1つか3つの敵パーティのロボットの間で戦闘が行われる(互いに戦う)アリーナ(たとえば、山地と低地の風景がある島)です。 目標は、すべての敵ロボットを破壊することです。 通常、各サイド(プレーヤーを含む)には、十分な数のリソースを備えた1つまたは複数のロボットをモジュールから構築できるベースがあります。 モジュールの範囲には、さまざまな種類の武器(ロケットランチャー、機関銃、火炎放射器など)、移動デバイス(車輪付きシャーシ、クローラー搭載シャーシ、エアクッションなど)、および異なるロボットハウジングを含めることができます。武器システムの数、およびその他のモジュール。 異なるモジュールの生産には、異なる量のリソースが必要です。 リソースには、チタン、電子回路、エネルギー源、プラズマが含まれます。 リソースは工場で生産されます。 オブジェクト(植物またはベース)をキャプチャするには、このオブジェクトの特別なプラットフォームにロボットを接触させる必要があります。 特定の瞬間に構築できるロボットの数の制限は、パーティーが所有する拠点と工場の数によって異なります。 一般的な原則を理解することは重要ではないように見えるため、この短い説明では省略した多くのルールがあります。



SR2HDPascalBotゲームボットのタスクは、勝つためにPBを自動的に維持することです。 この問題を解決するには、選択したPBマップで、特別なスクリプトでマップパラメーターとボットアクションを記述する必要があります。各マップにはスクリプトがあります。 T.O. ボットのコンポーネントの1つは、スクリプトインタープリターです。 もう1つの明らかな部分はパターン認識システムです。これにより、ボットはスクリーンショットからゲーム世界の瞬間的な状況に関する情報を取得できます。 そして、ゲームボットの3番目の標準部分は、ユーザーコマンドの模倣です。 キーボードとマウスのエミュレーション。 インタープリターとして、Wirthowski Pascal P4を修正したPascal P5インタープリターを自由に配布しました。 Pascal P5はPascalで記述されており、原則として自己コンパイルする機能が必要ですが、Pascalをゼロからスピンするタスクはありません。そのため、インタープリターのソーステキストをPascal Delphi-7 OOに翻訳し、GUIを使用して標準のWindows APIを使用します。 スクリプトの特別な機能(たとえば、マウスの左ボタンクリックを模倣する機能)は、標準のもの(たとえば、writeln、odd)と同様に、インタープリターで事前定義されていると説明されています。 プロジェクトは初期段階にあり、2枚のPBカードのみから予備的な結果を得ることができました。 ボットは、最初の最も単純な(トレーニング)マップを渡し、常に勝ち、2番目のより複雑なマップで勝ちます。 この記事の著者がその通過に6〜10分を費やしている間に、ボットが5分未満で最初のマップを渡すのは興味深いことです。 2番目のマップの最良の結果は、10回の試行のうち5回の勝利の結果でした。 残念ながら、再生されませんでした。 ボットは2番目のマップに最大1時間を費やすため、再現可能な結果を​​得るために大規模な試行に時間を費やす代わりに、このマップのスクリプトとボット自体の両方の改善に集中することにしました。 予想どおり、ボットをドラフト形式で記述するのは、適切なスクリプトよりもはるかに簡単でした。



画像



そのため、AIの分野での純粋に実験的な研究を含む大量の作業があり、現在のようなわずかな力(わずか2人)で成功する可能性は低いです。 ゲーム2のファンの中には、多くのプロのプログラマーがいます。彼らを期待して、私たちはすでにこのプロジェクトに参加するよう招待しています。 この記事では、このゲームについて聞いたことがないかもしれないが、ゲームボットの非常に難しいタスクの解決に参加したい専門家を対象にしています。 私たちの意見では、KP2は特定の仮想宇宙の非常に成功した興味深いモデルであるため、このモデルを十分に理解するのに時間の価値があります。 しかし、私たちはこのゲームのプロパガンダを目標として設定していません。 複雑で面白いボットは、ゲーム自体を特に掘り下げることなく、これに適したゲーム用に作成できます。 私たちの意見では、KP2が他の多くのゲームよりもこれに適している理由を上記で述べました。

ソースコード



All Articles