Android Echtzeit-Multiplayer über LAN [geschlossen]

9

Ich habe mehrere Spiele für die Android-Plattform entwickelt und plane nun, mein erstes Multiplayer-Spiel zu erstellen. Was ich im Sinn habe, ist im Grunde nur ein 2-Spieler-Spiel, das Sie mit 2 Telefonen über lokale Verbindung / WiFi spielen können.

Beide Telefone müssen in der Lage sein, 3 Ganzzahlwerte in Echtzeit an das andere Telefon zu übergeben. Bisher habe ich überlegt, Sockets zu verwenden, aber bevor ich mich zu tief damit beschäftige, wollte ich fragen, ob es einen besseren Ansatz gibt.

Vielen Dank!

Heigo
quelle
3
Ein besserer Ansatz als Steckdose ... nicht sicher. Sie müssen jedoch keine Raw-Sockets verwenden, da bereits vorhandene Bibliotheken dies für Sie tun. Ich gehe davon aus, dass Sie auf einer Android-Plattform mit Java entwickeln (Sie haben nicht als Java markiert), damit Sie sich Kryonet ansehen können.
Nathan
Das stimmt, ich entwickle mit Java. Ich werde in Kryonet schauen. Danke für den Kommentar.
Heigo
Wenn Sie nur ein paar Werte übergeben, sollten Sie Bluetooth in Betracht ziehen. Hier sind ein paar gute Referenzen: developer.android.com/guide/topics/connectivity/bluetooth.html und stackoverflow.com/questions/5619850/…
amb
Ich könnte auch in Betracht ziehen, Bluetooth in der Weiterentwicklung zu verwenden, aber im Moment sind die Leute mit WiFi besser vertraut.
Heigo
1
Ich fange gerade an, ein Multiplayer-Spiel zu erstellen, und denke darüber nach, ein Rest-Service-Backend (für die Registrierung von Spielern, Matchmaking usw.) und einen Spieleserver zu haben, der auf TCP-Sockets basiert. Wenn das Spiel beendet ist und das Spiel tatsächlich startet, sendet der Restdienst eine Socket-Nachricht an den Server und die eigentliche Instanz des Spiels wird erstellt (um die Skalierbarkeit zu verbessern). Die Clients erhalten die IP-Adresse für den Server und stellen mithilfe eines vom Restdienst bereitgestellten Sicherheitstoken eine Verbindung her. Der Spielserver überprüft und erledigt den Rest.
Thomas

Antworten:

-2

Eine Option, die Sie sich ansehen könnten, ist Socket.IO .

Es scheint eine Menge Diskussionen über Socket.IO bei Stack Overflow zu geben, einschließlich:

Leider konnte ich nicht herausfinden, wie ein Android-Gerät über Socket.IO direkt mit einem anderen Android-Gerät kommunizieren kann, oder sogar einen Schritt der Indirektion, bei dem beide mit einem einzigen WLAN-Zugangspunkt zwischen ihnen sprechen. (Ich weiß immer noch nicht, ob dies ein Fehler in meinem Code, eine Art Firewall im Code eines anderen oder eine inhärente Einschränkung von Socket.IO war.) Ich habe eine kleine Demo mit einem Android-Gerät zum Senden von Nachrichten an einen Webserver erhalten, der die Nachricht an das andere Android-Gerät weiterleitete.

David Cary
quelle
Als Plugin für einen Node.js-Server kann Socket.IO für eine Frage zum Echtzeit-Multiplayer in einem Browsergame relevant sein. Im aktuellen Kontext von Java und Android dient seine Erwähnung jedoch nur zur Irreführung.
Eric
Ich habe eine kleine Demo mit einer benutzerdefinierten Android-App, die Socket.IO verwendet, um (indirekt) über einen Node.js-Server mit einer anderen benutzerdefinierten App auf einem anderen Android-Gerät zu kommunizieren. Es "funktioniert" mehr oder weniger, aber wenn Sie einen besseren Ansatz kennen, insbesondere einen mit direkterer Kommunikation, würde ich (und ich bin sicher, das Originalplakat) gerne davon erfahren - bitte sagen Sie es uns.
David Cary
-2

Haben Sie gesagt, beide Geräte befinden sich im selben Raum?

Jedes Android-Gerät verfügt über einen Lautsprecher und ein Mikrofon. Im Prinzip ist es möglich, dass eine App eine Reihe von Tönen über den Lautsprecher sendet und die andere App dann auf die Töne wartet und sie zurück in eine Nachrichtenzeichenfolge dekodiert. Sie können entweder (a) das gesamte Audiospektrum zum Senden von Daten verwenden, etwa die akustischen Koppler der 60er und 70er Jahre, oder (b) eine viel engere Bandbreite von 15 kHz bis zur höchsten von Ihrem Gerät unterstützten Bandbreite (wahrscheinlich 24 kHz) verwenden - - eine viel langsamere Datenleitung, aber die meisten Menschen können diese Frequenzen nicht mehr hören - es ist Ultraschall für sie.

Amateurfunker haben viele clevere Techniken entwickelt, um extrem schwache Signale aus viel Rauschen herauszuholen.

" Kommunikation über die Audio-Buchse für Android-Handys"

Sound auf Android lesen: a b c

"Die Zoosh-Software von Narrate nutzt die Lautsprecher und Mikrofone von Smartphones, um die gleiche Datenkommunikation zwischen Geräten zu ermöglichen, die der heutige NFC bietet, jedoch mit Ultraschallfrequenzen, die für Menschen unhörbar sind." - Woche , Slashdot .

David Cary
quelle