Recientemente mencioné que la versión 15 de Firefox ya estaba lista para su descarga, y entre sus mejoras aparecían optimizaciones para WebGL. Bien, al parecer en la red de desarrolladores de Mozilla no tuvieron mejor idea para poner a WebGL a prueba que trasladar a todo un motor gráfico basado en C++ y crear un shooter en primera persona llamado BananaBread. Su demo no necesita de ningún plugin adicional, y claramente deja en evidencia que con la optimización suficiente, tanto WebGL como JavaScript pueden lidiar con juegos de esta clase.
Hemos visto una importante cantidad de proyectos basados en WebGL. Incluso algunos desarrolladores crearon títulos muy interesantes, sin embargo, la misma sensación permanece en el aire. Las aplicaciones WebGL aún no han abandonado ese perfil de “demo técnica”, lo que nos hace pensar que todavía no está del todo listo. Por supuesto, no todo recae sobre WebGL: La mayoría de los usuarios suele tomarse un buen tiempo antes de actualizar los controladores de vídeo en su ordenador (sin mencionar la posibilidad de que probablemente no sepan hacerlo), y la implementación de WebGL sobre los navegadores no está unificada. Cada desarrollador tiene su forma de hacer las cosas, por lo que puede haber importantes diferencias de rendimiento. Aún así, el potencial de WebGL es enorme, y para tener una mejor idea de ello, ¿qué ejemplo más elaborado que un juego FPS?
Los desarrolladores de Mozilla han publicado en su blog información sobre BananaBread, un juego que hace uso de todas las mejoras sobre WebGL y JavaScript presentes en Firefox 15. Con el objetivo de exhibir el progreso que han hecho hasta aquí, los desarrolladores tomaron al motor abierto utilizando en el juego “Cube 2: Sauerbraten”, y lo llevaron de C++ a JavaScript a través de Emscripten. Aunque había dudas de que la conversión fuera viable en un juego que demanda tanta velocidad de respuesta (si has estado en un deathmatch en cualquier FPS, sabes de lo que hablo), el resultado que se puede visualizar en la demo es realmente impresionante. Al mismo tiempo, BananaBread es un excelente elemento que representa al concepto de juego HTML5, por lo que cualquier navegador que tenga las funciones requeridas puede ejecutarlo (Chrome es el único navegador confirmado aparte de Firefox), y esto no se limitaría a plataformas de escritorio.
He dedicado algunos minutos a BananaBread, y más allá de que el bot juega pésimo (gané yo, eso lo dice todo) o de que hay algunos detalles de superficies para ajustar (como saltar sobre el agua), definitivamente me gustaría ver a BananaBread convertido en todo un FPS disponible en nuestros navegadores. Como no podía ser de otra manera, ya hay usuarios solicitando el soporte multijugador, y aunque no existe un compromiso oficial para ello, están esperando a que el API WebRTC madure un poco más. Para obtener el mejor rendimiento en BananaBread, recomendamos utilizar la última versión de Firefox junto al último controlador para tu solución de vídeo. Una alternativa sería forzar la aceleración de vídeo (visita “about:config”, y cambia los comandos “webgl.force-enabled”, “layers.acceleration.force-enabled” y “gfx.direct2d.force-enabled” a “true”), y si el navegador presenta problemas, sólo bastará con deshacer esos cambios.