2012-05-02 5 views
3

まず最初に、私はnodejsを初めて使っています。nodejsゲームループと外部スクリプトファイル

私は本当にnodejsでボットのプレイヤーとゲームを構築したいと思います。 アイデアは、ボットにゲーム(例えばチェッカーのようなもの)をさせることです。

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

  • は、この目的のためにnodejs適してますか?主なアイデアはゲームを構築することではなく、非同期プログラミング、特にnodejsの経験を得ることであることを考慮に入れてください(ノードはすごく素晴らしいです!)。

次に、別の問題が発生しました。

  • 書き方:nodejsでWebサーバを書くこと(例の何百万人がネット上である)シンプルですが、例がほとんど存在しないので、2つの質問、イベントループを遮断せずに無限ループを作成する方法メインの偶数ループをブロックすることなく、無限のゲームループですか? C/C++ではwhile(gIsRunning){doStuff();のようなことをします。 gIsRunning = gameEnded();スリープ(ms)/遅延(ms); }

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

ゲームはボット志向なので、私はJSでボットを書いて、メインゲームエンジンにそれらを含めることができるようにしたいと思います。そこで、第三

  • それは、スタンドアロンのJSスクリプトとしてボットを書いて、限られた環境のいくつかの並べ替え(サンドボックス)内のノードで実行し、メインゲームエンジンに、次にロードすることは可能ですか?将来のアイデアは、ボット開発のための基本的なAPIを提供することです。完全な機能(fs、ソケットなど)を備えたサードパーティ製のボットを実行したくありません。また、私は、第三者のボットのコードを手動で検査したくありません。

この挑戦を「Google AIチャレンジ」といいます。 Googleはいくつかのエンジンを開発し、エンジンによって読み込まれて再生されるボットを開発するためのSDKを提供しています。私はnodejでも同じことをしたいが、ボットの開発のためにゲームエンジンとSDKの両方を書く。

申し訳ありませんが、あまりにも一般的なので、個人的な意見(ノードが適しているかどうかは個人的な好みかもしれません)に縛られています。

ありがとうございました!

答えて

3

は、あなたが質問1を開始するには、HTML5/Node.jsのゲームはモジラhttp://browserquest.mozilla.org/

ソースコードによってBrowserQuest がここにサンドボックスの効果を達成するためにhttps://github.com/mozilla/BrowserQuest

一つの方法であると呼ばれるに興味があるかもしれませんボットロジック用に複数のnode.jsプロセスを実行し、メインゲームループプロセスがボットアクションを取得するために使用するhttps://github.com/substack/dnodeのようなRPCライブラリを使用できますか?

+0

ありがとうございました!その非常に役立つ! :) –

+0

あなたの編集について。ボットごとに別のノードプロセスを実行しています。これは私にとって完璧な解決策のようです。次に、ゲームエンジンとすべてのボット(またはTCPの上のカスタムプロトコル)との間に何らかの種類のHTTP通信を実装できます。私はそれが私が行きたいモデルであるかどうかまだ分かりません。たぶん私はボット開発者にボットを自分でホストさせ、エンジンが通信するために使用するURLをボットに登録するだけです。 –

関連する問題