Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    114

    Giochi Applet: quale protocollo?

    Ciao a tutti
    devo realizzare dei giochi online (tipo scacchi) con Java Applet
    Sapete che tipo di protocollo di comunicazione bisogna utilizzare per questo tipo di applicazioni. Non ho mai fatto nulla del genere e non ho idea di come lato server venga gestita la comunicazione immediata con più client..

    Requisito è chiaramente la velocità delle comunicazioni client-server-client
    oltre che la sicurezza

    Qualcuno sa consigliarmi siti, link, libri, .. ??
    Quale/i protocollo si utilizza in genere per questi scopi? http con Socket, Soap,..???
    Grazie per l'aiuto

  2. #2

    Re: Giochi Applet: quale protocollo?

    Originariamente inviato da 6sic6
    Ciao a tutti
    devo realizzare dei giochi online (tipo scacchi) con Java Applet
    Sapete che tipo di protocollo di comunicazione bisogna utilizzare per questo tipo di applicazioni. Non ho mai fatto nulla del genere e non ho idea di come lato server venga gestita la comunicazione immediata con più client..

    Requisito è chiaramente la velocità delle comunicazioni client-server-client
    oltre che la sicurezza

    Qualcuno sa consigliarmi siti, link, libri, .. ??
    Quale/i protocollo si utilizza in genere per questi scopi? http con Socket, Soap,..???
    Grazie per l'aiuto
    Il protocollo da usare è il TCP/IP che in java viene implementato mediante Socket.
    http://webandother.forumfree.net

    Il forum della programmazione in java e non solo...

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    114
    grazie per la risposta
    speravo in qualcosa di più completo
    ipotizzo che forse sia meglio udp.. devo gestire messaggi in broadcast per tutti i client
    in termini di velocità è meglio del tcp anche se nn sicuro della avvenuta ricezione a quanto mi ricordo..

    Mi servirebbe un consiglio più dettagliato per i vantaggi/svantaggi sulla tecnologia da implementare..

    se esiste qualche libreria ad hoc qs tipo di cose con le Applet
    anche se esiste una qualche libreria grafica..

    grazie a chi mi saprà aiutare


  4. #4
    Originariamente inviato da 6sic6
    grazie per la risposta
    speravo in qualcosa di più completo
    ipotizzo che forse sia meglio udp.. devo gestire messaggi in broadcast per tutti i client
    in termini di velocità è meglio del tcp anche se nn sicuro della avvenuta ricezione a quanto mi ricordo..

    Mi servirebbe un consiglio più dettagliato per i vantaggi/svantaggi sulla tecnologia da implementare..

    se esiste qualche libreria ad hoc qs tipo di cose con le Applet
    anche se esiste una qualche libreria grafica..

    grazie a chi mi saprà aiutare

    Per la parte grafica puoi usare i componenti swing, che a mio parere sono i migliori.
    Comunque, per la parte del networking ti consiglio sempre tcp perchè è più sicuro. E' vero, l'udp è più veloce, ma se perdi un pacchetto che fai? Termini il gioco?
    Poi se devi scrivere piccoli oggetti su dei socket, il tcp va veloce
    Ciao
    http://webandother.forumfree.net

    Il forum della programmazione in java e non solo...

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    114
    ancora grazie per la risposta
    quindi tu dici applet fatte con componenti Swing (..l'ho usati anni fa per un applicazione client java..nn sapevo si integrassero bene con le applet)
    come protocollo tcp con socket.

    le servlet possono servire? non ho mai fatto 1 applet in vita mia, ho fatto solo WebApplication, non ho proprio idea di come si possa realizzare un server per la gestione di giochi multiplayer ecc.

    hai mica qualche riferimento per vedere un po come utilizzare le applet in qs contesto..tipo per mandare messaggi in broadcast ecc..

    grazie ciao

  6. #6
    Originariamente inviato da 6sic6
    ancora grazie per la risposta
    quindi tu dici applet fatte con componenti Swing (..l'ho usati anni fa per un applicazione client java..nn sapevo si integrassero bene con le applet)
    come protocollo tcp con socket.

    le servlet possono servire? non ho mai fatto 1 applet in vita mia, ho fatto solo WebApplication, non ho proprio idea di come si possa realizzare un server per la gestione di giochi multiplayer ecc.

    hai mica qualche riferimento per vedere un po come utilizzare le applet in qs contesto..tipo per mandare messaggi in broadcast ecc..

    grazie ciao
    Allora nel tuo caso ti devi costruire sia i client(che poi saranno n giocatori) che il server. Il server deve essere gestito mediante Thread separati, visto che ognuno gestirà un client. Pertanto, io ti consiglierei di implementare una soluzione del tipo:

    Server:

    Una classe per la grafica(puoi anche non impelementare la grafica nel server, ma se tu vuoi consocere tutti i movimenti è meglio farlo).
    Una classe che rimane in attesa di client
    Una classe che gestisce ogni singolo client


    Client
    Una classe per la grafica
    Una classe per la connessione al server e la comunicazione

    Allora la classe per la grafica è importante perchè ora devi fare una decisione, ossia il componente su cui costruire la tua parte grafica. Mettiamo il caso, che tu voglia fare tutto su un JPanel...benissimo, allora dovrai passare questo JPanel come parametro al costruttore della classe che rimane in attesa di client. Questo perchè la classe che rimane in attesa è l'unica che conversa veramente con tutti i client, quindi conviene apportare le modifiche grafiche direttamente al suo interno.
    Il meccanismo funziona così: viene creata la grafica del server e si passa come argomento alla seconda classe, il pannello(ad esempio) su cui apportare le modifiche. Questa classe rimane in attesa di client e quando raggiunge il numero massimo di giocatori(per esempio due nel tris) rifiuta eventuali altre connessioni e il gioco parte. Il client effettua una richiesta al server(ad esempio muovere una pedina). Sul lato server viene verificato che tale mossa sia consentita. Se non è valida, viene inviato un messaggio solamente al client che ha fatto la richiesta, altrimenti viene mandato un messaggio a tutti i client in modo che la GUI dei client venga aggiornata.
    Questa è un'idea, le implementazioni possono essere tante e variegate, dipende dallo stile e dalle conoscenze e competenze.
    Ciao

    Marco
    http://webandother.forumfree.net

    Il forum della programmazione in java e non solo...

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    114
    conoscenze e competenze .. eheheh .. un po ne ho, lavoro da 1 anno in java in ambito J2EE. Il java xo è infinito..
    Dal punto di vista del linguaggio e webapp dovrei saperne abbastanza jsp,struts,spring,hibernate,.. quindi dal punto di vista del portale non ci sono problemi.

    Immagino che ci siano diverse vie per arrivare a fare questi giochi, pensavo ci fossero delle linee guida, protocolli ormai standard e/o librerie ad hoc per i giochi online su applet.
    Sapete dirmi se c'è qualche buon libro a riguardo
    oltre che vedere le applet, socket ecc.. magari qualche buon consiglio riguardo gli errori più comuni o come detto linee guida sarebbero di grande aiuto per un grosso risparmio di tempo
    Grazie 1000 ancora Marco

  8. #8
    Originariamente inviato da 6sic6
    conoscenze e competenze .. eheheh .. un po ne ho, lavoro da 1 anno in java in ambito J2EE. Il java xo è infinito..
    Dal punto di vista del linguaggio e webapp dovrei saperne abbastanza jsp,struts,spring,hibernate,.. quindi dal punto di vista del portale non ci sono problemi.

    Immagino che ci siano diverse vie per arrivare a fare questi giochi, pensavo ci fossero delle linee guida, protocolli ormai standard e/o librerie ad hoc per i giochi online su applet.
    Sapete dirmi se c'è qualche buon libro a riguardo
    oltre che vedere le applet, socket ecc.. magari qualche buon consiglio riguardo gli errori più comuni o come detto linee guida sarebbero di grande aiuto per un grosso risparmio di tempo
    Grazie 1000 ancora Marco
    di niente figurati, è un piacere
    http://webandother.forumfree.net

    Il forum della programmazione in java e non solo...

  9. #9
    Comunque, per la parte del networking ti consiglio sempre tcp perchè è più sicuro. E' vero, l'udp è più veloce, ma se perdi un pacchetto che fai? Termini il gioco?
    One moment. Se desideri velocità col cavolo che opti per TCP, tanto è vero che UDP è uno standard pressochè assoluto per quanto riguarda il gioco online. E' usato praticamente sempre.
    In giochi come picchiaduro o sparatutto non puoi permetterti un ritardo troppo elevato altrimenti il tutto diventa ingiocabile. Non hai la sicurezza sul recapito e l'integrità dei dati, ok, ma se un pacchetto va perso o arriva corrotto, banalmente, il personaggio "non spara" o "non tira un pugno". Fine della storia.
    Forse per un gioco di scacchi potrebbe anche andar bene TCP ma bisogna anche tenere in considerazione che lo stesso implica un overhead maggiore. Inoltre, giusto per la cronoca, a livello di codice è sicuramente più semplice lavorare con socket UDP anzichè TCP.

    Poi se devi scrivere piccoli oggetti su dei socket, il tcp va veloce
    Si ma rimane sempre più lento di UDP dato che per ogni segmento ('pacchetto') mandato ce ne sarà sempre uno di acknowledgement di ritorno che garantirà integrità e recapito, senza contare quelli che vengono rimandati se uno dei due controlli sopra citati fallisce. Si può dire, quindi, che UDP è almeno il doppio più veloce di TCP dato che indietro non ritorna nulla.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  10. #10
    Originariamente inviato da billiejoex
    One moment. Se desideri velocità col cavolo che opti per TCP, tanto è vero che UDP è uno standard pressochè assoluto per quanto riguarda il gioco online. E' usato praticamente sempre.
    In giochi come picchiaduro o sparatutto non puoi permetterti un ritardo troppo elevato altrimenti il tutto diventa ingiocabile. Non hai la sicurezza sul recapito e l'integrità dei dati, ok, ma se un pacchetto va perso o arriva corrotto, banalmente, il personaggio "non spara" o "non tira un pugno". Fine della storia.
    Forse per un gioco di scacchi potrebbe anche andar bene TCP ma bisogna anche tenere in considerazione che lo stesso implica un overhead maggiore. Inoltre, giusto per la cronoca, a livello di codice è sicuramente più semplice lavorare con socket UDP anzichè TCP.


    Si ma rimane sempre più lento di UDP dato che per ogni segmento ('pacchetto') mandato ce ne sarà sempre uno di acknowledgement di ritorno che garantirà integrità e recapito. Si può dire, quindi, che UDP è esattamente il doppio più veloce di TCP dato che indietro non ritorna nulla.
    Essendo il suo primo gioco online, non credo che sarà un gioco che richiede alte prestazioni di rete. Se deve fare un gioco tipo dama, scacchi o tris è inutile usare UDP. Per quanto riguarda il ritardo bisogna fare una distinsione:

    Se devi fare ad esempio un gioco di guerra, è meglio usare l'udp perchè almeno così va molto più veloce e anche se vengono persi dei pacchetti, non è che il gioco finisce

    se devi fare un gioco come la dama, perdere un pacchetto significa che ognuno rimane in attesa dell'avversario e quindi il programma rimane in una situazione stallo.

    In questi semplici giochi non credo che ci siano problemi di ping...il gioco può girare bene anche su una 56k.
    Ciao ciao
    http://webandother.forumfree.net

    Il forum della programmazione in java e non solo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.