Codice Java per gioco client-server su Android


8

Ho sviluppato un gioco su Android. Ora voglio giocare su wifi o 3G. Ho pacchetti di giochi che desidero inviare dal client (mobile) dal server al server e poi a un altro client (mobile).

Non so come scrivere codice in Java per inviare i playPacket continuamente al server e ricevere il playPacket continuamente dal server ai client.

Immagino di dover usare due thread uno per l'invio e uno per la ricezione.

Qualcuno può aiutarmi con il codice o la procedura per scrivere il codice per esso?

Risposte:


2

Ok partiamo dall'inizio. Non so cosa stai facendo e come, ma quando fai con la rete devi provare il modello REACTOR .

Fondamentalmente il reattore è un modo per evitare l'uso di thread o per difenderlo laddove un'attività core è più disaccoppiata dal core.

Il centro del reattore è la funzione di selezione : registri le tue fonti di eventi e chiedi alla selezione di tornare quando qualcosa accade a una di quelle fonti .

Quando qualcosa si aggiunge, il ciclo principale del reattore trova semplicemente ciò che è appreso a quale sorgente reagisce creando un evento e invia questo evento a oggetti interessati a quel tipo di eventi.

Non sono un guru Java ma so che è possibile impostare socket (anche quelli UDP) e puoi impostarli come non bloccanti. Insieme a questo, so che esiste una classe chiamata Selector in un pacchetto chiamato NIO. Tali elementi concorrono a definire una struttura I / O multiplata e non bloccante

Tutto ciò di cui hai bisogno è semplicemente configurare due canali UDP: uno per l'ascolto del server e l'altro per la conversazione del server; registra l'ascoltatore nel reattore e integra la fase di reazione del reattore nel circuito principale.

Tieni presente che questo tipo di approccio ti consente di connetterti simultaneamente con canali diversi in modo da poter considerare di sviluppare un gioco peer-to-peer (nessun collo di bottiglia del server e design distribuito ... suona bene!)

PS

Si noti che se si utilizza una sorta di interfaccia / struttura della GUI, probabilmente si sta già utilizzando un reattore ...


1

Un buon inizio per la programmazione client-server sarebbe kryo net poiché è facile da imparare e spesso usato / riferito nello sviluppo di giochi java. È basato sugli eventi, quindi non avrai bisogno di thread qui.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.