¿Como seria la estructura de un servidor de un juego multijugador?

Iniciado por xaps, 7 Marzo 2014, 19:27 PM

0 Miembros y 1 Visitante están viendo este tema.

xaps

Estoy desarrollando un juego y estoy pensando en cómo estructurar el servidor para implementar el multijugador. El juego es un estilo arcade de partidas cortas, donde un jugador puede crear una partida (alojada en el servidor de momento) y el resto de jugadores unirse a ella.
Tengo pensado crear una clase Servidor, desde la que se gestionarán las partidas mediante multithreading. Es decir, existirá una clase Partida que se ejecutará en un nuevo thread, y desde la cual se gestionarán también las conexiones de sus distintos jugadores mediante nuevos threads (un thread por jugador, que contendrá un socket a su vez).
Podríamos decir entonces, que la estructura del servidor que estoy describiendo sería algo como:


                      -> Jugador > Socket
         -> Partida  -> Jugador > Socket
                     -> Jugador > Socket

                     -> Jugador > Socket
Servidor  -> Partida  -> Jugador > Socket
                     -> Jugador > Socket

                     -> Jugador > Socket
         -> Partida  -> Jugador > Socket
                     -> Jugador > Socket

Donde cada objeto perteneciente al esquema sería un nuevo thread (excepto los sockets, que pertenecen al objeto Jugador).

La verdad, no creo que esta sea la mejor forma ya que en caso de que haya varias partidas llenas la cantidad de threads sería altisima, por eso me gustaría que me dierais opinión y consejo sobre esto.

Gracias.
"The programmers of tomorrow are the wizards of the future" - Gave Newel