Android multiplayer w czasie rzeczywistym przez LAN [zamknięte]

9

Opracowałem kilka gier na platformę Android i teraz planuję stworzyć moją pierwszą grę wieloosobową. To, co mam na myśli, to po prostu gra dla dwóch graczy, w którą możesz grać na 2 telefonach przez połączenie lokalne / WiFi.

Oba telefony muszą być w stanie przekazać 3 wartości całkowite do drugiego telefonu w czasie rzeczywistym. Do tej pory rozważałem użycie Socketa, ale zanim wkopię się w to zbyt głęboko, chciałem zapytać, czy może być lepsze podejście?

Dzięki!

Heigo
źródło
3
Lepsze podejście niż gniazdo ... nie jestem pewien. Nie musisz jednak używać gniazd surowych, ponieważ już istniejące biblioteki robią to za Ciebie. Zakładam, że rozwijasz się na platformie Android z Javą (nie oznaczono Cię jako Java), więc możesz spojrzeć na Kryonet.
nathan
Zgadza się, rozwijam się z Javą. Zajrzę do Kryoneta. Dziękuję za komentarz.
Heigo,
Jeśli przekazujesz tylko kilka wartości, możesz rozważyć Bluetooth. Oto kilka dobrych referencji: developer.android.com/guide/topics/connectivity/bluetooth.html i stackoverflow.com/questions/5619850/...
amb.
Mogę również rozważyć użycie Bluetooth w dalszym rozwoju, ale w tej chwili wydaje mi się, że ludzie są bardziej zaznajomieni z WiFi.
Heigo,
1
Obecnie zaczynam także tworzyć grę wieloosobową i myślę o posiadaniu zaplecza usługi odpoczynku (do rejestracji gracza, dobierania graczy itp.) Oraz serwera gry opartego na gniazdach Tcp. Po dopasowaniu i uruchomieniu gry, reszta wyśle ​​wiadomość o gnieździe na serwer i zostanie utworzona rzeczywista instancja gry (w celu zwiększenia skalowalności). Klienci otrzymują adres IP serwera i tworzą połączenie za pomocą tokenu zabezpieczającego dostarczonego przez usługę rest. Serwer gry sprawdza poprawność i wykonuje resztę.
Thomas

Odpowiedzi:

-2

Jedną z opcji, na które możesz spojrzeć, jest Socket.IO .

Wydaje się, że w Stack Overflow jest wiele dyskusji na temat Socket.IO, w tym:

Niestety, nie mogłem wymyślić, jak zmusić jedno urządzenie z Androidem do bezpośredniej komunikacji z innym urządzeniem z Androidem przez Socket.IO, ani nawet jednego kroku pośredniego z obiema rozmowami z jednym punktem dostępu WiFi między nimi. (Nadal nie wiem, czy to był błąd w moim kodzie, jakaś zapora ogniowa w czyimś kodzie, czy nieodłączne ograniczenie Socket.IO). Dostałem jedno małe demo pracujące z jednym urządzeniem z Androidem wysyłającym wiadomości do serwera internetowego, który przesłał wiadomość na drugie urządzenie z Androidem.

David Cary
źródło
Jako wtyczka do serwera Node.js Socket.IO może być przydatny w pytaniu dotyczącym gry wieloosobowej w czasie rzeczywistym w grze przeglądarkowej. Jednak w obecnym kontekście Java i Androida jego wzmianka służy jedynie wprowadzeniu w błąd.
Eric
Mam małą wersję demonstracyjną z jedną niestandardową aplikacją na Androida używającą Socket.IO, aby (pośrednio) komunikować się z inną niestandardową aplikacją na innym urządzeniu z Androidem, za pośrednictwem serwera Node.js. To mniej więcej „działa”, ale jeśli znasz lepsze podejście, szczególnie takie z bardziej bezpośrednią komunikacją, ja (i jestem pewien, że oryginalny plakat) chciałbym o tym wiedzieć - powiedz nam.
David Cary
-2

Czy powiedziałeś, że oba urządzenia były w tym samym pokoju?

Każde urządzenie z Androidem ma głośnik i mikrofon. Zasadniczo jedna aplikacja może wysłać serię dźwięków z głośnika, a następnie druga aplikacja nasłuchuje dźwięków i dekoduje je z powrotem do ciągu wiadomości. Możesz albo (a) wykorzystać całe spektrum audio do wysyłania danych, coś w rodzaju sprzęgaczy akustycznych z lat 60. i 70., lub (b) użyć znacznie węższej szerokości pasma od 15 KHz do najwyższej obsługiwanej przez twoje urządzenie (prawdopodobnie 24 KHz) - - znacznie wolniejszy potok danych, ale większość ludzi nie słyszy już tych częstotliwości - jest dla nich ultradźwiękowy.

Szynowi operatorzy radiowi opracowali wiele sprytnych technik wyciągania bardzo słabych sygnałów z dużej ilości hałasu.

Komunikacja przez gniazdo audio Jack dla telefonów z systemem Android”

Odczytywanie dźwięku na Androidzie: a b c

„Oprogramowanie Zoosh firmy Narrate wykorzystuje głośniki i mikrofony smartfonów, aby umożliwić taką samą transmisję danych między urządzeniami, jakie zapewnia dzisiejsza NFC, ale z częstotliwościami ultradźwiękowymi, które są niesłyszalne dla ludzi”. - Eweek , Slashdot .

David Cary
źródło