In tutti i giochi CLIENT -> SERVER tutto deve essere deciso dal server altrimenti si apre la possibilità che un utente possa riprogrammare il client per alterare i risultati delle proprie azioni ed inviare al server direttamente i risultati positivi.Una cosa che ho dimenticato di dirti però è che questo gioco durerà giorni, non è "una partita e fine". Uno entra, si registra, crea il suo personaggio e ogni volta che accederà al gioco si ritroverà il suo personaggio con le caratteristiche salvate. Quindi queste info saranno salvate in un DB no? (ecco perchè insistevo sul DB) Altrimenti come si potrebbe fare?
La parte di programmazione (Java, C++ o altro) in questo tipo di struttura a che serve?![]()
Giuro che una volta capito in che direzione muovermi non ti disturbo più!
Grazie ancora.
Quindi il client altro non deve essere che:
- un visualizzatore dell'output
- un interfaccia di decisionale di input
Il server invece deve:
- processare gli input inviati e decidere che effetto avranno le azioni (sull'utente e sugli altri utenti)
- inviare lo stato attuale del gioco a tutti i client.
Pensa al BROWSER che utilizzi per visualizzare internet... se potessi modificare il risultato delle tue azioni dal CLIENT saresti in grado di modificare e distruggere i sitiWEB... invece il processo forzato di passare per il server ti blocca. Su un browser puoi pasticciare le pagine salvate... ma non puoi alterare le variaibli in remoto.
BROWSER -> RICHIESTA HTTP -> SERVER -> PROCESSO SERVER (decisioni) -> RISPOSTA AL CLIENT
Decisioni solo lato CLIENT sono fattibili anche per un sitoweb, basta che il programmatore inserisca SOLO protezioni Javascript (script lato client) dentro al suo sitoweb.... però chiunque potrebbe disabilitarle e inviare le variabili che desidera al SERVER, che le riceverà senza alcuna protezione!!! Per questo motivo tutte le decisioni e tutti i processi devono stare lato server.
Sempre lato server c'è bisogno di un database che salvi lo stato attuale delle cose, cosicchè alla riconessione di un utente tu possa rinviargli i dati per aggiornarlo sui cambiamenti intercorsi.
Spero di esserti stato di aiuto.
![]()

Rispondi quotando