Bueno, puedo responder la pregunta de Unity.
Solía haber un ecosistema próspero para los juegos de Unity en el navegador, especialmente en Facebook. El reproductor web de Unity fue lo suficientemente decente como para que obtuvieras buenos gráficos y una velocidad de fotogramas fluida (siempre que horneaste y optimizaste mucho). Una vez trabajé en un juego / simulación serio que se implementó en el reproductor web, y empujé sus límites, así que supe de lo que era capaz.
Todo eso cambió cuando Chrome decidió eliminar el soporte NPAPI, en el que se basa el reproductor web. ¿Qué es NPAPI? Los detalles completos están aquí – NPAPI – Wikipedia – sin embargo, para abreviar, es un método de desarrollo de complementos para los distintos navegadores principales. Sin embargo, NPAPI era antiguo, propenso a problemas de seguridad, y hubo una llamada para usar HTML5 / WebGL, etc., por lo que Chrome decidió eliminarlo.
- ¿Por qué los sitios web siguen agregando www?
- ¿Deberíamos tener una zona horaria mundial?
- ¿Cuáles son los pros y los contras de WebStorm, el IDE de JetBrains para JavaScript?
- ¿Cuáles son algunas conferencias que se centran en la accesibilidad web?
- ¿Debería una persona de 16 años navegar en la web profunda?
La mayor diferencia entre NPAPI y el uso de WebGL es que el primero daba acceso casi ilimitado a los recursos de la máquina local (consulte los complementos de NPAPI – Google Chrome para más detalles). Para Unity3D WebGL, hay dos grandes problemas:
La primera es que no existe una compilación de código de forma nativa para HTML5 / WebGL. Unity resolvió esto compilando un proyecto en una forma de JavaScript optimizado. Eso es grande , en términos de tamaño de archivo, ya que la mayoría del código del motor de Unity tiene que estar allí para que se ejecute el proyecto, y Unity no es de ninguna manera ligero. En el caso de un reproductor web, la mayor parte del código del motor ya está en la DLL o en el complemento, por lo que puede cargar los datos de la escena y ejecutarlos. Sin embargo, para el jugador web WebGL, el código del motor debe volver a descargarse constantemente, y no estoy seguro de si todavía ha habido una solución para eso.
Para reducir el tamaño, el código WebGL tiene que estar comprimido. Sin embargo, esto significa que el código debe descomprimirse en la computadora del cliente, después de descargarlo , lo que hace que la experiencia sea lenta y torpe.
El problema asesino es el de la memoria. A diferencia de NPAPI, cuando ejecuta el reproductor web WebGL, solo puede usar la memoria que tiene el navegador, y eso está francamente fuera de su control. El jugador puede tener más de 100 pestañas abiertas, dejando poca memoria para que su juego se ejecute. O su juego puede ser demasiado grande para los límites de memoria del navegador, lo que hace que se bloquee sin gracia, mientras se carga, sin un mensaje de error (ese fue el caso hace 2 años cuando lo intenté).
Esencialmente, debe conformarse con modelos menos detallados, activos de juego de menor calidad (sonido, texturas, etc.) para poner algo en uso de WebGL / HTML5. Franky, dudo que WebGL / HTML5 alguna vez proporcione el nivel de calidad y velocidad de fotogramas que los antiguos complementos de NPAPI, por lo que creo que todo el ecosistema de los juegos Unity basados en la web se ha eliminado.
Tenga en cuenta que esto es principalmente para los jugadores de Unity3D WebGL: hay otros motores de juegos capaces de ejecutar juegos en WebGL, aunque estos tienden a estar basados en JavaScript y optimizados para la web. Unity3D es un gran motor, y la web ya no es un ciudadano de primera clase como plataforma de implementación.
De todos modos, no he estado en la escena de la Unidad en los últimos dos años, así que espero que alguien me contradiga.