Btw, vorrei chiedere se qualcuno ha (tempo) il buon Quore di farmi un enorme favore. Su internet ho trovato esempi di networking solo tra multiple istanze di gioco.
Vorrei chiedere se qualcuno potrebbe fare due .gmz che implementino le seguenti cose:
base: gioco con n giocatori che si muovono e sparano.
Necessari: hp per giocatore, attacco per giocatore, velocità proiettile per giocatore, imprecisione proiettile per giocatore. Non serve altro (poi capirete perché anche le cose in più come la imprecisione)
(al diavolo muri e spostamenti complessi, mi basta un WASD con x+-qualcosa e y+-qualcosa, non è questo il punto della richiesta, anche se ci sono bugs chissene )
Un server (anche online, non solo in rete locale)
Un client.
Il sistema che vorrei vedere non so quanto sia semplice sinceramente. Mi rifaccio al funzionamento di War Thunder. (premesso un "suppongo che")
0) Imput dell'utente inviato al server
1) Il server riceve gli imput degli utenti.
2) Client e Server calcolano entrambi le conseguenze dell'imput senza interagire tra loro
3) Eventuali random (tipo -2+random(4) sulla direzione del proiettile alla creazione) sono calcolati dal server e poi inviati ai clients
4) Ogni tot steps il server invia ai singoli clients coordinate, hp etcc dei vari elementi di gioco. Per evitare appesantimenti sarebbe opportuno che ci siano "steps" dedicati a singoli clients, da alternare uno dopo l'altro, così da non dover mandare tutto a tutti nello stesso step.
Esempio:
- tasto sx mouse: spara nella direzione personaggio->mouse
Client legge il click > invia il click del giocatore x al server
Server genera proiettile con velocità ed attacco uguali a velocitàproiettile e attaccoproiettile del personaggio.
Server invia a tutti i clients informazione "giocatore x preme tasto y"
Tutti i clients generano proiettile con velocità ed attacco uguali a velocitàproiettile e attaccoproiettile del personaggio senza bisogno di leggerli dal server. (ovviamente a inizio partita vengono scambiati i le statistiche dei pg tra tutti i clients, ma accade solo una volta all'inizio)
Server assegna al proiettile direzione giocatore-mouse - (imprecisione/2)+random(imprecisione)
Server invia direzione proiettile x del giocatore y a tutti i clients
Tutti i clients applicano la direzione ricevuta al proiettile x (possono essere creati più proiettili nello stesso step of course)
Però davvero quando mi trovo in un ambito nuovo senza esempi sono KO