免責事項; 私はJavaとAndroidプラットフォームではあまり行っていません。
ただし、Windowsモバイルプラットフォームでの「.net」言語とWindowsプラットフォームの私のより広範な経験は、Bluetoothまたはネットワークデータ接続の作成と維持に必要なすべてのコードの75〜90%が維持されていることです。ハードウェアにアクセスする必要があるOSまたはライブラリでサポートされます。
これまでのところ、これはAndroidにも当てはまるようです。OSがBluetoothまたはインターネットを介してデータ接続を作成する方法を公開し、それぞれのハードウェアを有効/無効にします。
Bluetoothが実装のコストが最も低い(サーバーなし)ため、Bluetoothが推奨される接続方法になると思います。そして、よりローカルな集まり/ゲームを可能にします。Bluetoothはかなり簡単に使用できます。接続するデバイスが分かれば、通常のネットワークソケットと同様に機能します。
その他は、Bluetooth v2.0 / v2.1が現在大量のデータロードをサポートできないという点で正しいです。これは、v3.0以降の普及に伴って変化します。この制限を回避する方法があります。
とりあえず、シンプルなコンセプトですが、複雑な解決策があります。私はしばらくそれを使用しています、それはピアツーピアに似ていますが、同時にすべてのデバイスでゲームをホストすることを伴います。これにより、接続が一時的に失われたり、速度が低下したり、何らかの理由でプレーヤーが切断されたりしても、他のプレーヤーは影響を受けません。これにより、ドロップされたユーザーは、他のプレイヤーや自分のゲームをほとんどまたはまったく中断することなく、進行中のゲームに再び参加できます。
CON:各プレーヤーは実際には、ゲームの独自の多少ユニークなインスタンスを再生します。これは、他のプレーヤーとリンクして、ゲームが非常にずれるのを防ぎます。
CON:サポートするコードは広範囲で複雑になる可能性があり、達成したいことによっては頭を一周するのが難しい場合があります。
PRO:中央サーバーやデバイスは不要です!$$$の維持費は必要ありません。
PRO:プレーヤーが(再)参加したとき、またはゲームが初期化されたときにのみ、大量のデータ交換が発生します。-すべてのゲームが確実に生成され、すべてのプレイヤーが同じように進行するようにすることで、これを減らすこともできます。ネットワークの使用量が多いために発生するエネルギー消費を潜在的に削減します。
PRO:他のプレイヤーがいなくてもゲームを続行するために必要なすべてのデータがデバイスにすでにあるため、データの時間依存性が低くなります。許可あなたは、個々のユーザーのために実際のゲームの経験はなく、選手のグループに集中します。
これを利用する完全な詳細なゲームエンジンを実装する時間がありませんでした。私が作成したゲームは、モノポリーと非常にうまく機能しているように思われるUnoに似たゲームの再現に限定されていました。
最も簡単なのは、Unoをエミュレートしたものです。プレーヤーがすべてのゲームに勝ったことを確認するために、プレーヤーが勝った後、私は基本的に敗者のデッキを積み重ねました。95%以上、他の人とまったく同じゲームをプレイしていないとは言えませんでした。
マスターオブオリオンIIに似たゲームの作成を開始しましたが、ゲーム自体は自分でやるのは少しだけでした。