24

私は Android 開発者で、いくつかのボード ゲームを作成しました。今、ボードゲームのいくつかをマルチプレイヤーにしたいと思っています。独自の Web サービスを作成してホストしたくないので、P2P について考えました。

最初に見つけたのは XMPP プロトコルでしたが、これは本当の P2P ではありませんが、既存の Google トーク サービスを使用できるのであれば、準備はできています。これは、Google トーク クライアントの通常の動作を妨げることなく、既存の Google アカウントを使用しながら可能ですか?

それから、本当の P2P ソリューションである JXTA について聞きました。J2ME から Android にすでに移植されています ( http://code.google.com/p/peerdroid/ )。

多分私はここで物事を複雑にしすぎています(私は時々そうします)

ボードゲームで簡単な P2P を行う最も簡単な方法を知りたいだけです。

皆様のご意見大歓迎です!前もって感謝します

4

4 に答える 4

4

クリストフ、あなたの質問に対する答えは得られましたか? サーバーをホストすることを選択しましたが、最近はマルチプレーヤー アプリケーションにも取り組んでいます (当初は)。現在、選択を再検討していますが、使用しているライブラリはピア ツー ピア通信を完全にサポートしています。基盤となるプロトコルは、Google Protobuf の上に構築されています。これは基本的に、Protobuf を使用できる Netty の上に構築された全二重 RPC スタックです。RPC protobuf スタックへの URL は次のとおりです: http://code.google.com/p/protobuf-rpc-pro/

著者は非常に役に立ちました。私はいくつかのバグを見つけましたが、大きなものはありません。また、これらのライブラリを Android フォンで動作させるのにほとんど問題はありませんでしたが、それほど「コンパクト」ではありません。特別に大きくはありませんが、小さくはありません:)。これまでのところ、同期と非同期の両方で通信​​を機能させるのに問題はありませんでした。そのため、ゲームを「ピアツーピア」スタイルに移行し、既存のゲーム/サーバーを見つけるために使用される必要な場所/登録サーバーを提供するだけです。

于 2010-10-21T21:12:00.113 に答える
3

これまで見てきたように、既存の Google トーク サービス/接続を使用することはできません。Janusz のアドバイスに従って、smack ライブラリをチェックしてみてください。それが最善の策です。同じ GTalk ログインで干渉しない複数の接続を許可するには、XMPP アドレスのリソース コンポーネントを調べます。これにより、同じアカウントで同時に 2 つのクライアントにログインできるようになります。ゲームを効果的に別のクライアントにすることができます。詳細はこちら: http://code.google.com/appengine/docs/java/xmpp/overview.html#JIDs_and_Resources

最後に、2.2 にはデバイスのプッシュ通信に関連するいくつかの新しい機能があるようですが、私はまだ調べていません。2.2 もまだ広く展開されていないため、おそらく使用は限定的です。

于 2010-06-30T03:40:12.023 に答える
1

基本的に、マルチユーザー ゲームや XMPP (Jabber) 上に構築されたゲームを作成する場合は、XMPP の pubsub 拡張機能を真剣に検討する必要があります。HTTP とは逆の方法で、サーバーからクライアントにデータをプッシュするように設計されています。HTTP では、クライアントは常にサーバーから情報をプルして、新しいデータがいつプッシュされたかを知る必要があります。XMPP は、何かが発生したときにクライアントにデータをプッシュするように設計されています。サーバーとクライアントで使用されるリソースが少なくなります。

XMPP のチャット部分は使用しないでください。ユーザーの存在が妨げられるためです。

pubsub では、ノードのツリーを作成できます。クライアントは、クライアントがサブスクライブするツリー内の任意のノードまたはサブノードで発行された新しいデータをリッスンできます。そのため、あるクライアントが 1 つのノードでデータを公開すると、そのノードにサブスクライブしているすべてのクライアント、または任意の親に、このデータについて通知されます。

XMPP の良いところは、拡張可能であるため、独自の拡張機能でプロトコルを拡張できることです。また、ユーザーの承認、認証、および暗号化も提供します。自分でデバッグする必要はありません。

pubsub を適切にサポートする任意の XMPP サーバーを使用することも、1 つのサーバーを自分でホストすることもできます。これに使用できるサーバーはたくさんあります。前回見たとき、GTalk は PubSub をサポートしていませんでした。

于 2011-06-10T13:40:21.327 に答える