Usar WebWorkers para mejorar la experiencia del jugador

JavaScript en el navegador se ejecuta en un sólo hilo. Esto implica que las operaciones que relicemos se ejecutan de una en una siguiendo un orden secuencial.

En ocasiones cuando hemos desarrollado algún juego que tenía una carga intensiva de objetos a la hora de inicializar un nivel esto suponía un bloqueo del loop del juego, impidiendo que las animaciones prosiguiesen hasta que todo el contenido se hubiese creado.

Esto supone una merma en la experiencia del jugador que percibe una congelación de la pantalla que puede durar varios segundos.

Para solucionarlo, dividimos el proceso de carga en varios bloques, de forma que no todos se lancen consecutivamente, sino que permitimos al loop del juego ejecutarse entre carga y carga.

Sin embargo una opción más potente que nos permite usar varios threads para ejecutar simultáneamente distintas operaciones son los WebWorkers.

Algunos enlaces de interés:

https://www.w3schools.com/html/html5_webworkers.asp
https://developer.mozilla.org/es/docs/Web/Guide/Performance/Usando_web_workers
https://www.pluralsight.com/courses/javascript-web-workers-shifting-into-high-gear

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s