Richiesta esempio: Networking server-client

Tutorial, videotutorials ed esempi creati da noi
Rispondi
Barnack
Membro attivo
Messaggi: 341
Iscritto il: 03/09/2013, 13:26
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Contatta:

Richiesta esempio: Networking server-client

Messaggio da Barnack »

Ciao a tutti. Dopo due mesi di gmapi-gui ho deciso di "riposare" un attimo il cervello :sisisi: (comunque tranquilli non è assolutamente un lavoro che intendo abbandonare, semplicemente dopo aver fallito i dropdown al quinto tentativo che li riscrivevo da zero forse è il caso di cambiare target per qualche giorno :fapensare: )
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 :asd: )

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)
Non so se chiedo poco o tanto... Né so se sto prendendo la cosa nell'ottica giusta. Fatto sta che mi serve un esempio con interazione server client più ottimizzata del "invio tutto e ricevo tutto" :sisisi:
Però davvero quando mi trovo in un ambito nuovo senza esempi sono KO

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif

Spoiler
C++ WinApi / DirectX
C#



Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Richiesta esempio: Networking server-client

Messaggio da doom13 »

Dai un'occhiata a questa http://help.yoyogames.com/hc/en-us/arti ... g-Overview
Se capisci come inviare un qualsiasi dato hai risolto, tutto il resto vien da sè.
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Barnack
Membro attivo
Messaggi: 341
Iscritto il: 03/09/2013, 13:26
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Richiesta esempio: Networking server-client

Messaggio da Barnack »

il punto è che quei tutorial sono tutti client to client, non ne trovo nessuno con un funzionamento client to server :\

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif

Spoiler
C++ WinApi / DirectX
C#



Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Richiesta esempio: Networking server-client

Messaggio da doom13 »

Non cambia molto, leggi "Server Types" in quell'articolo.
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Barnack
Membro attivo
Messaggi: 341
Iscritto il: 03/09/2013, 13:26
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Richiesta esempio: Networking server-client

Messaggio da Barnack »

Si ci ho preso un po' mano ed in pratica dipende tutto dall'implementazione... Cosa che mi spaventa. Comunque grazie

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif

Spoiler
C++ WinApi / DirectX
C#



Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti