¿Por qué una partida online ocupa menos ancho de banda que una página web?
¿Cómo es posible que un videojuego online sea tan rápido y una página web convencional sea tan lenta?
22 septiembre, 2016 21:30Noticias relacionadas
- El nuevo doodle de Google celebra el aniversario del Apolo 11 y la llegada a la Luna
- Cámaras y accesorios de 13.000 dólares por 100 dólares, el costoso error de Amazon en el Prime Day
- La muerte de los "likes": Instagram empieza a ocultarlos
- DAZN, el Netflix de los deportes, emitirá los Juegos Olímpicos, Roland Garros, la Fórmula E y más, pero sube el precio
Mientras que una página web puede tardar varios segundos en cargar por completo, videojuegos como Battlefield o League of Legends son capaces de hacernos jugar con muchísimos jugadores de todo el mundo en tiempo real. ¿Cómo es posible que un videojuego online sea tan rápido, y una página web convencional sea tan lenta?
Los videojuegos con multijugador en línea están a la orden del día, y entender el por qué no es complicado: es muy atractiva la idea de jugar con (o contra) otros jugadores de todo el mundo. Desde batallar en una guerra con un soldado hasta echar un partido de fútbol, pasando por la estrategia o las carreras, es difícil encontrar un juego donde no se explote ese factor multijugador.
La cuestión es que estos videojuegos son capaces de gestionar una cantidad de datos brutal en milésimas de segundo. Pongamos un Call of Duty como ejemplo: el resto de jugadores tienen que recibir nuestra posición, dirección y altura en el mapa, el arma que estamos usando, el momento exacto en el que disparamos, la trayectoria de la bala… así con todos. Y en un mundo en el que tenemos que esperar varios segundos para cargar una página web como esta, ¿cómo es posible que los videojuegos sean tan rápidos?
Cargar un videojuego online contra cargar una página web
El secreto de esta velocidad está en el método que utiliza cada uno para enviar los datos. Mientras que una página web suele utilizar TCP, un protocolo estable que garantiza que la información llega a su destino, los servidores de videojuegos suelen usar UDP, un protocolo similar que no garantiza la llegada de los datos a su destino pero a cambio nos da mucha más rapidez.
Sabiendo esto, podemos dibujar el camino que seguimos en ambas situaciones, y nos queda algo tal que así, como explica Cekuro en Reddit.
Página web:
- Yo: ¿Cuál es la IP de esta página web?
- DNS: Aquí tienes la IP
- Yo: Quiero hablar contigo, página web, ¿estás aquí?
- Página web: Estoy aquí, he recibido tu solicitud
- Yo: De acuerdo, estás aquí
- Yo: Quiero esta página, sitio web
- Página web: De acuerdo, aquí tienes una lista de otros sitios que necesitas para entender mi página web
- (Repite este proceso x veces hasta conseguir toda la información)
Videojuego online:
- Yo: Servidor, quiero participar en esta partida
- Servidor: Vale, te veo participando
- Yo y Servidor al mismo tiempo: aquí está lo que tengo, no me importa si lo has recibido o no
- Yo y Servidor al mismo tiempo: aquí está lo que tengo, no me importa si lo has recibido o no
- Yo y Servidor al mismo tiempo: aquí está lo que tengo, no me importa si lo has recibido o no
Es un análisis muy resumido de lo que ocurre, pero ahí es donde radica la diferencia entre la carga de una página web y una partida online, y explica por qué se puede enviar tan rápido la información en una partida multijugador en línea. También explica esa sensación que a veces tienes de haber disparado a alguien, pero no haberle alcanzado en el juego: la información puede no haber llegado a tiempo por la latencia, o directamente no haber llegado.
Pero no es el único motivo, porque además de utilizar protocolos más rápidos, en una partida online los jugadores tienen que enviar y recibir muy poca información del servidor.
¿Qué otros trucos usan los videojuegos?
Piensa que el resto de jugadores y tu tenéis el mismo juego, una copia exacta e idéntica, así que no tienes que estar enviando datos de más, ni el servidor tiene que realizar cálculos que aumenten la latencia. Recibes los datos en tu consola u ordenador, y el videojuego se encarga de realizar todos los cálculos necesarios en local. Y, para que una página web fuese igual de rápido, tendrías que tener descargado todo Internet.
Además, los desarrolladores se esfuerzan al máximo para reducir los datos que tienes que enviar. De esta forma, acciones como correr y disparar sólo suponen un envío de unos pocos bytes, y el resto de jugadores las pueden recibir en cuestión de milisegundos. También existen trucos para reducir aún más la información que se envía: por ejemplo, Left 4 Dead siempre envía al servidor las coordenadas X e Y de los zombies, pero sólo envía la coordenada Z (altitud) si esta varía.