Introducción al Desarrollo con WebXR
La tecnología de AR y VR en la web es increíble. Permite construir y publicar tus ideas sin la molestia de pasar por tiendas seleccionadas, pero con la capacidad de compartir fácilmente como compartes una página web.
La VR en la web ha existido desde el primer lanzamiento de WebVR 1.0 en Chrome y Firefox en 2016. Este experimento ha sido reemplazado por la WebXR Device API, que eventualmente también soportará Realidad Aumentada (y está disponible en Chrome para Android desde noviembre de 2020), no solo Realidad Virtual. Ahora que esta nueva tecnología ha llegado a un punto suficientemente estable para que los desarrolladores realmente puedan comenzar a confiar en ella, ¿cómo empezar?
Marcos de trabajo
Lee nuestro último artículo del blog para obtener orientación sobre cómo elegir un marco de trabajo.
3 Desafíos Específicos de la Web
El desarrollo de XR para la web y el nativo se diferencian en tres aspectos principales:
Tiempo de Carga
Esperar a que un juego cargue no es aceptable en la web. Cada segundo que el usuario debe esperar aumenta la tasa de abandono.
Mantener tus recursos del juego pequeños, utilizar compresión y, en general, asegurar tiempos de carga rápidos es clave para mantener contentos a tus usuarios.
Rendimiento
La web funciona en una caja de arena del navegador. Esto significa que está aislada del dispositivo en ejecución de una manera que no puede dañar el dispositivo.
La Caja de Arena conlleva una sobrecarga de rendimiento, ya que lo que el sitio web quiere hacer necesita ser comprobado dos veces. Eso, junto con la sobrecarga que JavaScript aporta sobre una aplicación nativa hacen que la VR y AR sean aún más un desafío de rendimiento.
Calidad Escalable
Si lanzas una aplicación nativa en VR, generalmente apuntas a algunos dispositivos muy específicos. Ya que conoces sus métricas de rendimiento, puedes adaptar cada construcción por plataforma.
La belleza de la web es que eres radicalmente multiplataforma de tal manera que cualquier dispositivo podría estar ejecutando tu aplicación WebXR. Eso significa que necesitas considerar desde una tostadora hasta una PC de escritorio y trazar una línea en algún lugar.
En VR, la variedad de dispositivos también viene con una variedad de métodos de entrada: desde controles de mirada simples (Google Cardboard), hasta controladores de 3-dof, 6-dof, seguimiento de manos (Quest 2) y seguimiento ocular (Quest Pro, Apple Vision Pro).
Deberás decidir el denominador común más bajo que debería poder ejecutar tu aplicación.
Soluciones
Es importante enfrentar estos desafíos específicos de la web desde el diseño: influyen en tu elección de estilo artístico, elección de experiencia de interacción y pueden hacer o romper tu aplicación.
Cargar más rápido
En general, cuanto más pequeños sean tus archivos, más rápido se descargará el juego. En la web es mejor práctica cargar solo los recursos inicialmente requeridos y cargarlos de manera perezosa durante el tiempo de ejecución.
Los formatos basados en texto generalmente requieren tiempos de análisis más largos, por lo que considera usar formatos binarios de recursos en su lugar. Los formatos de imagen como WebP y Basis Universal pueden mejorar el tamaño de los archivos en la CPU y GPU sobre las imágenes tradicionales PNG y JPEG.
Rendimiento
Asegúrate de observar el rendimiento y optimizar según tu alcance. Mantén los recursos pequeños y “gasta” resolución en recursos importantes y según la distancia del usuario.
Extensiones especiales del navegador como OCULUS_multiview2 pueden ayudar con el rendimiento de renderizado de la GPU. Otras, como el próximo WEBGL_multi_draw ayudarán con el rendimiento de la CPU.
La mayoría de los marcos de trabajo tendrán una guía de rendimiento o documentación de consejos. Consulta eso para ver qué puedes hacer desde el principio en caso de que estés abordando un proyecto más grande.
Escalado
Para una mejor escalabilidad, puedes cargar recursos dependientes del tipo de entrada del casco o cadena de agente de usuario. Los sistemas basados en la mirada generalmente son de gama baja en comparación con los dispositivos de 6-dof o aquellos que admiten seguimiento de manos.
Wonderland Engine
Wonderland Engine tiene como objetivo ocuparse de estas tareas de optimización por ti. Nuestro objetivo es permitirte centrarte en las características de tu aplicación sin tener que preocuparte por los desafíos técnicos de conseguir que funcione sin problemas.
Wonderland Engine ha llegado recientemente a la versión 1.0. ¡Nos encantaría darte la bienvenida a nuestra Comunidad de Discord!