Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-09-2006, 10:30   #1
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
[winsock] Test multiplayer ECCELLENTE!

Ho finito di testare il multiplayer con winsock per me winsock batte Directplay.

Download per il test:
http://www.twork.it/work/Oki_Winsock_Multiplayer.zip
sono solo 72kb

Funzionamento:
- Lanciare il server che rimane in ascolto
- Lanciare tanti client quanti si vogliono (io ne ho testati 8 con fluidità di send e recv pazzesca!!)
- Per ogni client immettere il nome del player, per migliore lettura/visualizzazione dei dati di ricezione nella console server o client è meglio digitare il nome con uguali caratteri su tutti i client tipo:
okay
ciao
pixe
ecc ecc.

Se uscite con un client esso rientrearà nel giusto id.

Vorrei sapere le vostre impressioni

grazie amici
okay è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 10:35   #2
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Ciao ho provato, dopo che inserisco i nomi mi viene fuori una sfilza di ricevuto:0
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 10:39   #3
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da MEMon
Ciao ho provato, dopo che inserisco i nomi mi viene fuori una sfilza di ricevuto:0
Ho provato anche io per vedere se avevo sbagliato a zippare.

devi lanciare il server e non digitare nulla su di esso.
Poi lanci 2 client in uno scrivi okay e premi return, i dati con un solo cient non arrivano, perchè chi invia i dati non li riceve dal server. Poi lanci l'altro client e scrivi memo e premi return.

dovresti vedere i dati in arrivo sul server e il client
okay è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 10:50   #4
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Ok, credevo fosse una chat
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 10:53   #5
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Ma poi che metodo userai per spedire i dati dei vari cliants? Cioè pensi di spedire ad ogni cilco di gioco?

io ci sto pensando proprio in questi giorni per il mio giochino, e in effetti è un bel problema, se spedissi ad ogni ciclo occuperei gran parte della banda, ma se spedissi meno volte potrei vedere un giocatore dove effettivamente non sta!
E' un bel casino...

I tuoi dati da spedire quanto sono grandi grosso modo?
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 10:55   #6
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da MEMon
Ok, credevo fosse una chat
Hai visto gli ms... e pazzesco!!!

con Directplay (in Game) con solo 3 clients loggati gli ms oscillano in un range tra 0.50/140 ms
con questo netcode fatto con winsock (il mio test con 10 client) gli ms oscillano tra: 0.000 (ho dovuto aggingere %3f forse serve anche %4f) e 0.003f ms... ma non è incredibile?

Ma poi la fluidità dello scorrimento dei dati e secondo me imbarazzante
okay è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 11:07   #7
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da MEMon
Ma poi che metodo userai per spedire i dati dei vari cliants? Cioè pensi di spedire ad ogni cilco di gioco?

io ci sto pensando proprio in questi giorni per il mio giochino, e in effetti è un bel problema, se spedissi ad ogni ciclo occuperei gran parte della banda, ma se spedissi meno volte potrei vedere un giocatore dove effettivamente non sta!
E' un bel casino...

I tuoi dati da spedire quanto sono grandi grosso modo?
Il test che stai facendo già invia i dati del multi essi sono di 172 bytes ogni invio i 172 bytes inviato sono così composti:

int id // id del giocatore
char nome // nome del player
tBikeData Data //dati della posizione del giocatore
char mess //messaggio che può essere inviato a tutti o al gruppo di gioco
//tipo blu contro bianchi solo i blu si inviano i messaggi per le proprie strategie nel game

Prova a lanciare 10 client e poi scollegane qualcuno e poi riconnettili come vuoi. I dati , che puoi monitorare, sono di una fluidità pazzesca. Ogni client non perde un colpo.

Non capisco il tuo modo di sincronizzare i client.
Io non sincronizzo nessun client.

Pensa che non uso thread. Hai notato che sincronia idati ricevuti sul server? e che velocità?

Mentre sul client i dati cmq arrivano sempre molto velocemente. Alle volte tutti in fila sono mostrati i client alle volte no. Ma la posizione del giocatore è sempre aggiornata perfettamente.


Io uso TCP, come ti dissi molto + affidabile del' UDP dove devi fare troppi controlli a mano e i dati di UDP sono inviati in sequenza non ordinata insomma è di difficile gestione.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 11:10   #8
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
scusa mi sono dimenticato...

si invio i dati per frame/rate
okay è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 11:22   #9
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Ma hai provato a usare questo codice realmente in rete? Provarlo in locale è estramente diverso che provarlo in rete.
Ma come lo conti il tempo? perchè mi sembra un po' improbabile che hai un ritardo di 0 ms tondi tondi.
Comunque nel server noto che a volte non riceve in ordine(sto provando con 4 clients) ma ad esempio 0110 0122 0123 0233 è normale o ti aspetti che riceva sempre con ordine 0123?

Ultima modifica di MEMon : 06-09-2006 alle 11:26.
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 11:29   #10
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Io non sincronizzo i client mi limito solo a spedire la posizione del giocatore, comunque i miei dati sono all'incirca un centinaio di bytes(per ora ma penso di calare) e la banda occupata è davvero tanta se spedissi per ogni ciclo.
Suppongo che te non hai ancora fatto prove relai in rete...altrimenti te ne saresti accorto!
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 11:33   #11
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Comunque a vederlo così sembra molto buono! complimenti!
Sopratutto per il fatto che non hai usato i thread, suppongo che non hai nessun metodo bloccante.
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 11:55   #12
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da MEMon
Comunque a vederlo così sembra molto buono! complimenti!
Sopratutto per il fatto che non hai usato i thread, suppongo che non hai nessun metodo bloccante.
esatto nessun thread.
il metodo è il non-block.

cmq Directplay in locale 25/50 ms in rete 90/150 ms
winsock asincrono in locale 25/50 ms in rete 90/150 ms
winsock non-block in locale 0.000/0.003 (come hai visto) in rete lo devo provare prossimamente ti faccio sapere... ma se tanto mi dà tanto!!

sul server:
0123 sempre
sul client
0123 0123 poi può accadere sul client
0111 0011 2222 2222 2222 1111 1233 1233 poi di nuovo in sequenza 0123

ma questo è normale le posizioni e qualsiasi altro dato sul client sono mantenute, c'è lo eravamo detto.

Una cosa interessante è il server che mantiene sempre la sequenza ciò vuol dire che i dati arrivano ok.

Verso i client il server smista con if for per tutti penso che il recv sul cient sia normale che faccia così l'importante è che le posizioni siano rispettate sul client e questo è dovuto sempre ad un netcode veloce di ms come il non-block.

Ti faccio sapere in rete per il non-block ma sono fiducioso anche con pareccho client. vediamo
okay è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
SpaceX ha confermato che Flight 14 sar&a...
Googlebook pronto al debutto: Google apr...
Guida all'acquisto: quale lavapavimenti ...
Google Maps su Android Auto introduce fi...
AMD Ryzen 5 5500F: fino al 16% di presta...
L'ecosistema partner di Microsoft cresce...
Oracle registra un boom nella divisione ...
Amazon Prime Video sfida TikTok con le n...
L'uscita di Rayman Legends Retold &egrav...
Dazio UE sui pacchi extra UE, in Italia ...
La nuova lavatrice smart di Xiaomi ha tr...
Hai una PSP nel cassetto? Questo nuovo p...
Oracle presenta Java 27 con diverse novi...
Il microscopio dell'EPFL vede più...
Volvo avvia la produzione dei nuovi cami...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:20.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v