2011-10-04 9 views
7

Devo implementare un semplice gioco client-server di tour in Java. Sfortunatamente, sto solo iniziando con la programmazione di rete e ho qualche problema con la scelta di una soluzione appropriata.Gioco client-server in Java con applet

Supponiamo che sto creando un gioco di scacchi in cui due client possono connettersi al server, autenticarsi con il loro nome utente e password e giocare. I client devono essere programmati come applet (thin client), ma non so cosa dovrei usare come server.

Voglio dire, ho letto su diverse possibilità come RMI, socket, servlet, ma ancora non so quale si adatta alle mie esigenze. Sono un po 'confuso perché non capisco appieno come si realizzerebbe la comunicazione.

Devo creare un server eseguibile che possa essere eseguito tutto il tempo sul server e attendere i giocatori? Questo mi sembra un modo strano. O c'è un modo più semplice per farlo, ad es. posso creare un servlet e metterlo sul server Tomcat in modo che il server venga eseguito solo se ci sono giocatori? Potrebbe la servlet comunicare con applet (client) e viceversa? *

Sarei davvero grato per alcuni suggerimenti.

risposta

3

posso fare una servlet e metterlo su server Tomcat in modo che il server potrebbe essere eseguito solo se ci sono giocatori

esempio

Il Tomcat sarebbe correre in ogni modo, altrimenti i giocatori non potevano connettersi al esso.

Quello che potresti fare è fornire un server che avvia una nuova istanza di gioco quando i giocatori si connettono. Il server stesso dovrebbe sempre funzionare.

In termini di tecnologia, suggerirei di utilizzare qualsiasi cosa con cui ti senti a tuo agio. Non preoccuparti delle prestazioni, ma prova e inizia.

Quindi, se hai già qualche conoscenza con una tecnologia di comunicazione, prova a usarla. Basta essere consapevoli dei limiti e tenerne conto (ad esempio formati dei messaggi, comunicazione push/pull, ecc.).

0

Se si sta cercando un framework di applicazione netwrok in Java, è possibile prendere in considerazione la lettura di Apache MINA. La documentazione afferma che "aiuta gli utenti a sviluppare facilmente applicazioni di rete ad alte prestazioni e ad alta scalabilità". e ha supporto per vari trasporti come TCP/IP e UDP/IP tramite Java NIO. Riepilogo delle funzionalità può essere visto here.

La mia esperienza personale con MINA è così buona e utilizzata in vari progetti. Un'implementazione somiglia al tuo caso, non è un gioco multigiocatore ma coinvolge più applet che connettono un server. Ho trovato MINA molto bravo nel gestire più sessioni. Lo fa molto bene. Inoltre è molto facile scalare e mantenere il codice. Facile aggiungere filtri e definire protocolli.

Non ci sono. di buono tutorial available to jump start e l'installazione iniziale è molto facile da fare.

Tuttavia, come ogni progetto opensource emergente, ha anche i suoi problemi. Cioè: la comunità online è piccola e la documentazione, sebbene in rapido miglioramento, è molto limitata.

user guide ufficiale copre la maggior parte delle nozioni di base ed è un buon punto di partenza se vuoi saperne di più.

0

Dipende dal tipo di gioco che si sta cercando.Le applet sono di solito una buona scelta per presentare animazioni (completamente in Java) e accessibili da un browser. Gli esempi del mondo reale si dirottano su Flash per la presentazione dei clienti.

Se il gioco è un tipo di gioco a turno (scacchi, carte ecc.), È possibile implementare la logica in forma di servlet o servizi Web o ajax, con l'uso appropriato di hashtables o database per archiviare sessioni live sul lato server . Se il tuo gioco è più coinvolto in termini di esperienza utente (ad esempio, prendi un esempio di tipo Need For Speed), allora creare un server personalizzato ha più senso.