2011-10-26 6 views
8

私は多かれ少なかれプラグインの必要条件なしで、純粋なブラウザベースのゲームとして何らかのマルチプレイヤーRPGを作りたいと考えています。私はかなりの研究をして、次の計画に着きました。私がここで参照している技術のいくつかは、すべてのブラウザ(特にIE)で採用されているわけではないことを認識していますが、現時点でそれを受け入れる意思があります。ブラウザのマルチプレイヤーネットワーク戦略 - これは実行可能なソリューションのようですか?

また、私はMMOはどんな場合でも努力するという崇高な目標ですが、これまで同様の方向で小さなプロジェクトをたくさん行っていたことを知っています。私はこれを本当に良いものにしたいと思っています。最終的に行く。

CLIENT: WebGLの/ Javascriptを(おそらくthree.js

だから、HERESにラフアウトライン、私は誰もがこのような構成で見ることができる明白な問題を聞いてみたいです。ブラウザのローカルストレージを使用してゲームアセットを保持し、ブラウザのキャッシュを削除することでこれを削除します。

メッセージング:利便性と小型化のために、google protocol buffersを使用して、クライアント/サーバ間の エンコードメッセージ。メッセージ配信はWebSocketを経由します。

ゲームサーバー: はPythonでgeventの上で実行されている(多くのconcurrentsに対処するための良い解決策になりそうです)。データベースの のMySQL、PHPは、ゲームサーバとDBわたってるしき演技:DBサーバがデザインhere:

に基づいて、シャードパターンを使用して構築されるだろう。

DETAILS: 私はゲームサーバはおおよそ毎秒15〜20回の個々のクライアントを更新し、ギャップを埋めるために、クライアント側の予測を使用していたいと考えています。クライアントは30 fpsの範囲内でキー入力/メッセージをサーバーに送信することができます。私はターンベースではなく、可能な限りリアルタイムに近い経験をすることを好む。私の主な関心事は、WebSocketのTCPベースのプロトコルです。これですべてが不可能になりますか?

このソリューションは、現実的なようですか?

ありがとう、

答えて

1

通常、localStorage APIで5MBの領域が得られます。サウンド/音楽のある3Dゲームを本当に持っているのであれば、あなたの資産によって本当に素早く食べられるでしょう(最近、良質のmp3はどれくらいですか?)。あなたは資産を圧縮することで積極的に行動する必要があり、ゲームが実行されている間に地元のストレージに出入りするような仕組みを作り出す必要があります。

私はゲームサーバーとデータベースの間にPHPが必要な理由を尋ねます。ゲームサーバーはデータベースと直接話すことができず、仕事を保存することはできませんか?

あなたのプロジェクトには幸運です。

+0

Ah!まあそれは私がまっすぐに知っていないことは、5メガバイトは非常に制限要因ですので、ストリーミングのいくつかの並べ替えが順番になるだろう。PHPのことについては、DBトランザクションの負荷をゲームサーバーから取り除いて、できるだけ早くクライアントにサービスを提供し、定期的にデータのまとまりを消していくことが重要であると考えましたDBに書かれたデータをフォーマットして書き込むことなく、 – bharling

+0

CouchDBを見てみるとすぐにREST呼び出しをサポートします。 – Anders

関連する問題