選択するサーバープラットフォーム[終了]


8

これらの要件を備えたオンラインマルチプレーヤー用のサーバーを作成します。

  • 完全にサーバー上でプレイされる非常にシンプルなターンベースのゲーム(カードゲームを考えてください)(セキュリティ上の理由)
  • テーブルごとに4人のプレーヤーで複数のゲーム(テーブル)を実行できる必要がありますが、ロビーシステムは必要ありません(別のサーバーが処理します)
  • できるだけ多くのプレーヤーを同時にサポートできます。複数のサーバーが必要になる場合があります
  • プレイヤー間でチャット
  • Flash / AIRクライアントへのソケット接続
  • 他のサーバーと通信できる必要があります(プレーヤーアカウントなど)

今、私は2つのオプションを考えています:

  • Smartfox(または同等のもの)
  • TomcatなどのカスタムJavaソリューション

Smartfoxを選ぶ理由

  • 複数の部屋を処理し、ネイティブでチャットします
  • おそらく、よく知られているマルチプレイヤーゲームの問題の解決策があります。

なぜカスタム?

  • Smartfoxには多くの不要な機能があり、パフォーマンスが悪い
  • SmartfoxはXMLベースのフォーマットと通信するため、より効率的なバイナリフォーマットを使用できます。
  • Smartfoxの拡張メカニズムを使用して、サーバーでゲームモデル全体を実行するのが便利かどうかわからない
  • 複数の部屋とチャットは簡単に再実装できます
  • Tomcatまたは軽量コンテナはSmartfoxよりも展開が簡単です
  • Tomcatでの開発のためのより良いIDEサポート(自動デプロイなど)

どう思いますか?私の仮定は正しいですか?追加するものはありますか?どのオプションを選択する必要がありますか(または完全に別のオプションを選択する必要があります)?


たぶん私は何かが足りないかもしれませんが、「カードゲーム」は非常に単純なので、簡単な時間でゼロから書き込めるので、パフォーマンスが問題になることはありません。
o0 '。

回答:


3

私は明確にカスタムソリューションを使用します。短期的には少し時間を失う可能性がありますが、必要に応じて確実にスケーリングが向上し、得られた経験は次のゲームで大規模に再利用できます。BlazeDsはニーズに最適なツールのように聞こえますが、Javaゲームサーバーをゼロから書き直すことは、たとえばNettyやProtobufを使用するなど、それほど大きな作業ではありません。


「Netty and Protobuf」とは何ですか?
Quazi Irfan


5

カスタムソリューションをサポートするためのポイントについて:

Smartfoxには多くの不要な機能があり、パフォーマンスが悪い

これは「単純なターンベースの」ゲーム用であるため、パフォーマンスが問題になることはほとんどありません。

SmartfoxはXMLベースのフォーマットと通信するため、より効率的なバイナリフォーマットを使用できます。

繰り返しますが、単純なターンベースのゲームの場合、開発の容易さはフォーマットの効率よりも優先されます。そのため、効率的なバイナリフォーマットを開発したいのでない限り、そうしないでください。

複数の部屋とチャットは簡単に再実装できます

これは、この機能を自分で実装することを選択するのに十分な理由ではありません。あなたがこの道をたどることを決心したならば、それは知るのに心地よいものです。

Tomcatまたは軽量コンテナは、Smartfoxよりも展開が簡単です。Tomcatでの開発のためのより良いIDEサポート(自動デプロイなど)

カスタムソリューションを開発してそれを迅速に展開することにより、既存のソリューションを使用して、場合によってはより長い展開を行うことと比較して、節約する時間を比較検討する必要があります。おそらく、開発時間は、より速く/より簡単な展開がもたらすほとんどの利点を相殺するでしょう。

要約すると、可能であれば、既存のソリューションを使用することをお勧めします。それはあなたに多くの時間を節約する可能性があります。これはあなた次第です既存のソリューション、。


パフォーマンスのポイントに関して:はい、ゲームはシンプルですが、できるだけ少ないサーバーで50万人のプレーヤーをサポートする必要があります(クライアントが希望する場合)
Bart van Heukelom

50万人の同時プレイヤー?Google App Engineのコメントのように思えますが、もう少し検討する価値があります。これにより、より大きな請求書を作成するだけで、プロトタイプから完全な展開まで拡張できます。
drxzcl 2010

@drxzclは正しいです。Google Appエンジンは、スケーラビリティの理由から、ターンベースのゲームに最適です。
AturSams 2015年

3

SmartFoxとElectroServerの両方をかなり広範囲に使用してきたので、常にElectroServerをお勧めします。SmartFoxと同じことをすべて行いますが、もう少し堅固で、バイナリサポートが含まれています。


1
バイナリサポートとはどういう意味ですか?
user3689 2010

2

Google App Engineプロジェクトを確認することを強くお勧めします。

ホスティングと技術的な理由の両方のため。ゲームのペースが速い場合は、それを開始して実行するのに適した場所であり、規模を拡大する余地があります。

コードはPythonまたはJavaで作成できます。

NeptuneのプライドはGoogle App Engineにあります。こちらの開発者へのインタビューをご覧ください。


3
ソケットをサポートしているようには見えませんが、HTTPのみをサポートしています
Bart van Heukelom 2010


2

オープンソースのJavaマルチプレイヤーゲームサーバーであるFirebaseを実際に調べてください。

Smartfoxと比較すると、Firebaseはバイナリプロトコルを使用しており、機能が肥大化しておらず、高いパフォーマンスを発揮します。

独自のシステムを導入する場合は、ソケットの処理から同時実行の処理まで、すべてを処理する必要があります。Firebaseでは、部屋ごとに一度に1つのアクションが保証されます。

:Googleが取得したFirebaseにはオープンソースオプションがありません。

ご覧くださいhttp : //www.cubeia.org/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.