Los juegos multijugador permiten compartir la experiencia de juego con varios participantes. Los juegos en red, además, permiten participar a personas que estén incluso físicamente en ubicaciones distantes. Algunos de estos juegos tienen decenas de millones de usuarios, que pueden jugar simultáneamente en distintas partidas. El interés por este tipo de videojuegos se ve fácilmente reflejado en el éxito de juegos como Fortnite (ver figura 1) o Counter Strike (ver figura 2), que pueden jugarse por Internet.


Sin embargo, Internet no fue diseñado para satisfacer los requisitos de aplicaciones que necesiten transmitir información en tiempo real, como por ejemplo los juegos de acción. Tampoco consideraba su diseño el envío de mensajes de forma fiable, es decir, sin que se perdieran. Su objetivo inicial era conseguir entregar mensajes entre cualquier dispositivo conectado a la red, usando una estrategia de “mejor esfuerzo”. A los mensajes enviados por Internet los llamaremos “paquetes” de forma genérica.
Como si de una carretera se tratase, la red está compuesta de sistemas finales (el ordenador, el móvil, la consola, etc) que se conectan a la red a través de enlaces (wifi, cable de par trenzado, fibra óptica, etc.), y que interconectan distintos encaminadores o “routers” (lo que equivaldría a los cruces en una carretera). En los encaminadores se encolan los paquetes que van a salir por alguno de los enlaces. A veces tienen que esperar a que salgan los paquetes que llegaron antes. Esto implica que paquetes que van desde un mismo origen a un mismo destino puedan seguir caminos diferentes, tardar tiempos diferentes e incluso perderse porque los encaminadores por los que pasen estén saturados.
El reto de un juego multijugador en red es tratar de replicar la información que define el estado de la partida, es decir, qué vida tiene cada personaje, qué puntuación, o qué coordenadas y velocidad tienen los participantes de la partida. Esto se resume en que la información importante para el juego sea prácticamente la misma en cada participante. De esa forma se consigue la sensación de estar jugando en el mismo entorno, a pesar de que cada participante pueda tener un dispositivo con distintas capacidades gráficas o de cómputo, y encontrarse en distintas partes del mundo.
En un juego en red, la información importante que haya que compartir con el resto de jugadores se introduce en paquetes. Normalmente, los motores de videojuegos que tengan soporte de red ofrecerán distintas formas de entregar ese paquete. Es parte del diseño decidir qué información compartir, cuándo enviarla, cómo representarla en el paquete, etc. Es importante tener en cuenta este diseño desde el inicio, porque la implementación dependerá de estas decisiones.
En las siguientes secciones se describen algunos aspectos de diseño a tener en cuenta, y los problemas principales a los que debe enfrentarse el desarrollo de un juego en red, junto con las técnicas que se suelen utilizar para mitigarlos. Los motores de videojuegos más avanzados suelen tener algunas de estas técnicas implementadas, pero es necesario conocerlas para configurarlas correctamente o implementarlas en caso de que no estén disponibles.
.jpg)