3

まず第一に、私はnodejsを初めて使用し、それは私にとって驚くべきものに見えます!

nodejsでボットプレイヤーと一緒にゲームを作りたいと思っています。アイデアは、ボットにゲームをプレイさせることです(たとえば、チェッカーなど)。

最初の質問は次のとおりです。

  • nodejsはこの目的に適していますか? 主な目的はゲームを構築することではなく、非同期プログラミング、特に nodejs の経験を積むことであることを考慮してください (node はクールで素晴らしいからです!)。

その後、別の問題に遭遇しました。nodejs で Web サーバーを作成するのは簡単ですが (ネット上に何百万もの例があります)、イベント ループをブロックせずに無限ループを作成する方法の例はほとんどないため、質問 2:

  • メインの偶数ループをブロックせずに、無限のゲーム ループを作成する方法は? C/C++ では、while(gIsRunning) {doStuff(); のようなことをします。gIsRunning = gameEnded(); スリープ (ミリ秒)/遅延 (ミリ秒); }

もちろん、私の場合、ゲームは無限であり (プレイヤーはボットであるため)、ノード プロセスを手動で強制終了していない間に実行する必要があります。

このゲームはボット指向なので、ボットを JS で記述してメインのゲーム エンジンに組み込みたいと考えています。3番目に

  • ボットをスタンドアロンの JS スクリプトとして記述し、それをある種の制限された環境 (サンドボックス) でノードによって実行されるメインのゲーム エンジンにロードすることは可能ですか? 将来のアイデアは、ボット開発用の基本的な API を提供することであり、完全な機能 (fs、ソケットなど) でサードパーティのボットを実行したくありません。また、すべてのサードパーティボットのコードを手動で検査したくありません。

このチャレンジは、いわゆる「Google AI チャレンジ」と考えてください。Google はいくつかのエンジンを開発し、エンジンによってロードされて「再生」されるボットを開発するための SDK を提供します。私は同じことをしたいのですが、nodejs で、ボット開発用のゲーム エンジンと SDK の両方を作成します。

質問がSOには一般的すぎて、個人的な意見に限定されて申し訳ありません(ノードが適切かどうかは、個人的な好みかもしれません)。

助けてくれてありがとう!

4

1 に答える 1

3

質問 1 から始めるには、mozilla http://browserquest.mozilla.org/の BrowserQuestという HTML5/Node.js ゲームに興味があるかもしれません。

ソースコードはこちらhttps://github.com/mozilla/BrowserQuest

サンドボックス効果を実現する 1 つの方法として、ボット ロジック用に複数の node.js プロセスを実行し、メインのゲーム ループ プロセスがボット アクションを取得するために使用するhttps://github.com/substack/dnodeなどの RPC ライブラリを使用できますか?

于 2012-05-02T10:41:11.010 に答える