11/12/21 23:11
Thejuster
Salve ragazzi, più che aiuto chiedo un consiglio.
Sto sviluppando un server mmo, Ma mentre sono quasi arrivato alla gestione di tutti i client connessi per una determinata
area mi è sorto questo dubbio.
Siccome è un progetto di test, se funziona come spero, magari lo rilascio per un uso diverso.
In pratica funziona così.
[Luogo 1]
Giocatore-A,Giocatore-B,Giocatore-C,Giocatore-D
[Luogo 2]
Giocatore-E,Giocatore-F,Giocatore-H
[Luogo 3]
Giocatore-I,Giocatore-L
E pensavo al modo migliore per gestire questo enorme flusso di dati.
Il server oltre a stabilire l'essata posizione di ogni utente, deve anche tenere in memoria le relative coordinate ed eventuali azioni in corso.
Penso che inviare una sola e grande lista sia eccessiva come soluzione.
Ma nemmeno o (forse) un loop di richiesta ed aggiornamento di posizoini.
Ma ho pura di mandare sotto stress il server.
Quello che avevo pensato è:
Giocatore-A Invia richiesta al server di ottenere (solo) le informazioni relative a tutti i giocatori presenti in quel livello
così per gli altri.
pensavo se ci sono 5 giocatori in livello A
5 (Giocatori) * 5 (Richieste) = 25 query al db + Invio e Ricezione di 120bytes ogni 50 o 100 ms.
Finché sono pochi, credo potrebbe pure andar bene.
Ma pensavo di usare questo server su larga scala, magari parlando di un qualcosa come 1000 / 2000 utenti connessi
Certo, potrei evitare di eseguire le query, tenendo invece tutto in memoria sul server in liste e strutture.
Ma... Nel caso il server crasha per qualche errore.
Tutte le posizioni ed eventuali stati andrebbero persi.
Chiedo magari se qualcuno ha già provato a fare qualcosa di simile, puoi dirmi se sto proseguendo in modo corretto
o ci sono soluzioni migliori.
Sto sviluppando un server mmo, Ma mentre sono quasi arrivato alla gestione di tutti i client connessi per una determinata
area mi è sorto questo dubbio.
Siccome è un progetto di test, se funziona come spero, magari lo rilascio per un uso diverso.
In pratica funziona così.
[Luogo 1]
Giocatore-A,Giocatore-B,Giocatore-C,Giocatore-D
[Luogo 2]
Giocatore-E,Giocatore-F,Giocatore-H
[Luogo 3]
Giocatore-I,Giocatore-L
E pensavo al modo migliore per gestire questo enorme flusso di dati.
Il server oltre a stabilire l'essata posizione di ogni utente, deve anche tenere in memoria le relative coordinate ed eventuali azioni in corso.
Penso che inviare una sola e grande lista sia eccessiva come soluzione.
Ma nemmeno o (forse) un loop di richiesta ed aggiornamento di posizoini.
Ma ho pura di mandare sotto stress il server.
Quello che avevo pensato è:
Giocatore-A Invia richiesta al server di ottenere (solo) le informazioni relative a tutti i giocatori presenti in quel livello
così per gli altri.
pensavo se ci sono 5 giocatori in livello A
5 (Giocatori) * 5 (Richieste) = 25 query al db + Invio e Ricezione di 120bytes ogni 50 o 100 ms.
Finché sono pochi, credo potrebbe pure andar bene.
Ma pensavo di usare questo server su larga scala, magari parlando di un qualcosa come 1000 / 2000 utenti connessi
Certo, potrei evitare di eseguire le query, tenendo invece tutto in memoria sul server in liste e strutture.
Ma... Nel caso il server crasha per qualche errore.
Tutte le posizioni ed eventuali stati andrebbero persi.
Chiedo magari se qualcuno ha già provato a fare qualcosa di simile, puoi dirmi se sto proseguendo in modo corretto
o ci sono soluzioni migliori.
Ultima modifica effettuata da Thejuster 11/12/21 23:17
mire.forumfree.it/ - Mire Engine
C# UI Designer
C# UI Designer