¿Cómo funcionan las redes de juego multijugador? Por ejemplo, para PS4, ¿cuál es la relación entre el ISP, PSN y el servidor al que se conecta el reproductor?

Bueno, no soy un experto, pero tengo suficiente conocimiento para repasar lo básico.

En primer lugar, el ISP no tiene una relación con nadie más que usted (el cliente). Usted les paga por el acceso a las líneas de cable / DSL / fibra que poseen y utilizan para transportar datos a / desde su ubicación desde / a su sede local. A partir de ahí, envían esos datos a través de más líneas, a veces propiedad de ellos, y otras propiedad de otra importante empresa de enrutamiento como Level3. Sus datos pasan por varios enrutadores y muchas líneas a lo largo de una ruta aparentemente arbitraria y enrevesada hasta que alcanza su dirección IP de destino, que fue especificada por el software que utilizó para enviarla. En este caso, la dirección del servidor. Primero, pasa por el ISP que está usando el servidor, de manera similar a como pasó por su ISP, justo al revés. También necesita un puerto además de la IP, que le permite a la máquina del servidor darse cuenta de que está tratando de llegar al servidor del juego, y no algún otro software que la máquina del servidor está ejecutando. Lo mismo es cierto para cualquier dato que envíe a su dirección IP, de modo que su enrutador y PC puedan dirigir sus datos a su juego.

Los datos en sí dependen completamente del juego. Algunos juegos no envían nada más que comandos de entrada de usted al servidor, luego el servidor decide qué sucede en función de esa entrada y luego le devuelve el estado actualizado del juego. Por ejemplo, presiona W, esa pulsación de tecla se envía al servidor, el servidor decide que avanza y luego le envía su nueva posición a medida que avanza hasta recibir la noticia de que ha liberado W. No necesariamente en ese orden, ya que el servidor probablemente envía el estado del juego varias veces por segundo a cada jugador conectado a él. Los resultados de su entrada volverán en la próxima de esas actualizaciones de estado del juego, no necesariamente de inmediato. Cuando su computadora recibe el estado actualizado del juego cada fracción de segundo, lo descifra y luego actualiza todo lo que ve en su pantalla para que coincida. Además, es posible que no obtenga el estado completo del juego cada fracción de segundo, sino solo partes de él, dependiendo de cuánto ancho de banda esté configurado para usar el juego. Por lo tanto, el resultado correcto podría tardar un poco en llegar desde el servidor, especialmente cuando se tiene en cuenta el retraso (literalmente, el tiempo que tardan los datos en pasar del servidor al servidor o viceversa).

En la gran mayoría de los juegos, su juego no solo responde a las actualizaciones enviadas por el servidor. Es posible que el servidor solo le envíe su posición un par de veces por segundo, pero en su pantalla, no se ve a sí mismo saltar hacia adelante cada vez. Ves un movimiento suave hacia adelante. Ese es el resultado de un proceso llamado interpolación. Su juego ve cada actualización que envía el servidor e intenta descubrir qué está sucediendo entre cada una, para que pueda mostrarle un juego fluido en lugar de un juego nervioso.

También en la mayoría de los juegos, el juego en su computadora va un paso más allá de la interpolación y también intentará predecir lo que el servidor enviará de regreso, para que no tenga que esperar la respuesta antes de ver el resultados. Por ejemplo, cuando presiona W, su juego muestra instantáneamente que avanza sin esperar la confirmación del servidor, porque supone que el servidor lo confirmará de todos modos. Si la predicción es incorrecta, lo que sucede a menudo cuando observas el movimiento de otros jugadores, lo ves como lo que la mayoría de la gente llama “desincronizar”. Le dispararás a alguien en la cabeza, solo para que no pase nada, porque tu juego asumió que el otro chico estaría en algún lugar cuando en realidad no estaba exactamente allí según el servidor. O bien, correrás detrás de la tapa, solo para morir después, porque tu juego asumió que ibas a llegar allí, pero en realidad (el servidor), no lo hiciste porque el tipo ya te había matado. Tu juego tardó un momento en recibir el mensaje de que te mató.

Pero como dije antes, los detalles de qué datos se envían y cómo responden tu juego y el servidor dependen completamente del juego. En Arma 2, tu juego en realidad envía el estado del juego al servidor, y el servidor solo toma la palabra de tu juego. Esto permitió que ocurrieran algunos trucos bastante locos en ese juego, porque el tramposo podía decirle al servidor que hiciera literalmente cualquier cosa a cualquiera, y lo haría. Pero ese grado de mal código de red es raro … creo.

Así que, por lo que sé, esos son los principios básicos del código de red para juegos. PSN No creo que realmente lo tenga en cuenta, excepto para identificarlo y verificar que se le permite conectarse a los servidores de ese juego (o jugarlo en absoluto). Pero no estoy seguro de eso, así que lo dejaré allí.