Sto progettando un gioco multiplayer usando Node.js e la libreria socket.io per comunicare con i miei clienti.
In pratica, tutti i client si connettono a una stessa lobby (specifico spazio dei nomi socket.io) dove possono trovare la battaglia 1 contro 1 usando un sistema di matchmaking.
Per gestire i diversi giochi allo stesso tempo, ho pensato di utilizzare socket.io rooms (1 room = 1 battle) e gestirli tutti allo stesso tempo, usando un elenco di giochi recuperati con il loro ID .
Ciò significa che quando 2 giocatori si trovano nella stessa partita / battaglia / stanza, ogni volta che un socket viene ricevuto dal server da uno dei 2 giocatori, il server dovrà:
- Recupera l'ID della room del player (usando socket.io).
- Recupera l'oggetto del gioco grazie a questo ID.
- Modifica lo stato dell'oggetto del gioco in base alla richiesta.
- Invia a tutti i giocatori nella stanza il nuovo stato del gioco.
Il gioco è un gioco tattico a turni, il che significa che non ci saranno calcoli pesanti.
Quanti giocatori / giochi posso aspettarmi di gestire con questo tipo di implementazione? È strano tenere tutti i miei giochi in una lista di giochi?