Come progetto personale, sto configurando un MMO e scrivendo il server in C # /. NET Core.
A partire da ora la mia architettura è la seguente: il mondo esiste di diverse aree (puoi andare da un'area all'altra attraverso i portali). Un'area è chiamata "room" sul mio server. Ogni stanza ha la sua lista di clienti (giocatori, ognuno con il loro flusso TCP).
Ora mi stavo chiedendo se fosse ok che eseguissi ogni stanza con il suo thread. Ogni stanza gestirà il proprio ciclo di aggiornamento (loop di gioco / stanza), in quanto è indipendente dalle altre stanze.
La mia preoccupazione è che man mano che il gioco cresce, avrò molte aree e che un thread per area non è un'idea grandiosa.
Quindi la mia domanda è: sto facendo qualcosa di sbagliato o non-benefico in futuro? È meglio avere 1 thread per la logica di gioco per tutte le stanze? O è ok avere un thread per stanza?