El lunes 7 de mayo, Google Chrome sacó un update que deshabilita la reproducción automática de audio en ciertos sitios que utilizan HTML5. Por culpa de ese update, el audio de muchísimos videojuegos independientes dejó de funcionar. Entre las cosas maravillosas que se rompieron se encuentran todos los juegos en HTML5 de Increpare (conocido por ser el autor de Stephen’s Sausage Roll), los de Terry Cavanagh (en Matajuegos lo apreciamos por ser el autor de Don’t look back) y las cosas hermosas de cabbibo (quien ya avisó que va a dar de baja su página con varias piezas de web art interactivo si no encuentra una solución).
En medio de esta crisis, los juegos en Flash todavía funcionan bien, a pesar de que Adobe va a dejar de brindar soporte para Flash en el 2020. Cuando eso suceda vamos a perder todos los juegos que forman parte de Orisinal, gran parte de la obra de Molleindustria, casi todo el contenido de Newgrounds y Kongregate.

Esta no es la primera vez que les desarrolladores de navegadores de internet y otras plataformas para consumir contenido toman una decisión poco amigable con el desarrollo de videojuegos independiente en la web. Por ejemplo, en 2010 Apple decidió que Flash no iba a correr en iOS, lo que dio inicio a la lenta y dolorosa muerte de Flash como plataforma de desarrollo independiente. Después en 2015 Unity Web Player dejó de funcionar, primero en Google Chrome, después en otros navegadores, y así murieron todos los juegos que necesitaban del plugin para correr en la web.
¿Por qué les desarrolladores de navegadores y celulares toman estas decisiones? Cuando se empezó a dejar de soportar Flash y otros plugins de navegador similares como Unity Web Player, los argumentos tenían que ver con la seguridad informática. Ambos plugins están construidos sobre tecnologías viejas, lo que los hacía vulnerables. El otro argumento que se utilizó es que se quería construir una web con tecnologías de código abierto y que siguieran un mismo estándar.
Todo esto suena bien, en teoría. Si todos los navegadores aplican un mismo estándar y lo respetan, cualquier usuarie debería poder navegar por internet con el navegador que se le cante y no tener ningún problema. Es decir, si yo abro este cuadro hecho con CSS o cualquier otro sitio de mi elección en Chrome, Firefox, Safari o Edge, debería verse igual en los cuatro navegadores porque, en teoría, los cuatro se apegan a los mismos estándares web.

En la práctica, Google y Apple, les desarrolladores de Safari y Chrome respectivamente, meten muchas funcionalidades propias que se contradicen con los estándares abiertos de la web y además lo hacen de forma poco transparente. Por ejemplo, el cambio de reproducción automática de audio en Chrome está anunciado desde septiembre de 2017, pero los detalles de implementación no fueron documentados hasta el día del lanzamiento. Ese día, Google los agregó a la documentación de la funcionalidad y cambió la fecha para que pareciera que los cambios estaban implementados desde septiembre.
Google nos comenta que cambió la forma en que se reproduce el audio en Chrome porque espiando a sus usuaries se dio cuenta de que la mayoría de las veces que visitaban un sitio, pausaban las reproducciones de audio. También nos dice que nos va a seguir espiando para decidir correctamente en qué sitios tiene que reproducir audio automáticamente y en cuáles no. Para terminar de tranquilizarnos, nos avisa que el audio se va a reproducir correctamente en 1000 sitios con mucho tráfico en los que les usuaries no pausan el audio, como YouTube, que también es de Google.

Les desarrolladores de los navegadores de internet no se encargan de desarrollar ni de mantener los contenidos que vemos en esos navegadores. Si queremos que el contenido de la web siga funcionando y lo haga de forma consistente, es importante que se respeten los estándares web y que haya un diálogo entre les desarrolladores de la plataforma y quienes crean contenido para esa plataforma. En este momento, eso no está sucediendo.
Lo que sí está sucediendo es que varies creadores de contenido tienen que elegir la opción menos peor de un abanico de malas opciones si quieren preservar la integridad de sus creaciones web. Por ejemplo, pueden convertir sus archivos web en ejecutables para escritorio, lo que implica que sus creaciones pasen a pesar el doble o el triple, probarlas en varias plataformas y generarle una molestia adicional a sus usuaries porque ahora tienen que descargar cosas. También pueden agarrar cada una de sus creaciones y actualizarlas para que sean compatibles con los cambios de Chrome. Si quien crea el contenido produjo demasiadas cosas, se trata de una tarea titánica.
La buena noticia es que si hacen videojuegos y suben su trabajo a itch.io, el botón de Run game estaría evitando que se rompa el audio de tu juego. Las mala noticia es que si hicieron muchos juegos van a tener que tocar muchas páginas de settings para habilitar la opción. Por ejemplo, yo voy a tener que editar más de 15 páginas de juegos en itch.io. Otra mala noticia es que si suben sus juegos a un sitio personal el audio va a seguir sin funcionar o lo va a hacer de forma inconsistente.

Si hay algo que podemos sacar en limpio de esta clase de situaciones es que dejar nuestro patrimonio cultural en manos de megacorporaciones no es lo ideal, ni lo más seguro. También que cuando se habla de la libertad de una plataforma les desarrolladores de la plataforma piensan en la libertad de la licencia y del código. Es decir: si es gratis o pago, de código abierto o cerrado, si hay estándares claros o no. Mientras que les creadores de contenidos ven a una plataforma como libre si es fácil de usar para crear cosas y compartirlas con el mundo. Si tenemos eso en claro, va a ser más difícil que nos quiten formas de expresarnos apelando a la libertad.
Algunes desarrolladores ven estas libertades como cosas opuestas entre sí. Usar Flash, Unity, Construct o GameMaker es práctico, pero si Adobe, Unity Technologies, Scirra o YoYo Games deciden cambiar las licencias o abandonar el soporte de sus productos, les creadores que usen estas tecnologías van a tener que adaptarse a las imposiciones de las empresas o cambiar de tecnología. En teoría, si tus herramientas de desarrollo son Phaser, Love2D o Godot, desarrollar tu juego va a ser más engorroso, pero nunca vas a tener un problema de soporte o de licencias y, si todo falla y tenés el conocimiento suficiente, podés programar tus propias soluciones dentro de la herramienta.

Por suerte, la sociedad vive desarrollando opciones superadoras como Twine, que es libre en todos los sentidos, u OpenFL, que te deja crear juegos usando todas las herramientas que usabas en Flash, pero como un lenguaje de programación más nuevito y flexible. También se están desarrollando emuladores de Flash y con algo de suerte andarán re bien para el 2020. Si todo falla y no te importa ver el mundo arder, podés seguir usando tu software viejo de la forma que prefieras. No son soluciones perfectas, pero son menos desalentadoras que perder años de patrimonio cultural y formas prácticas de hacer las cosas.
En un universo ideal, las corporaciones liberan el código de cualquier aplicación que dejen de soportar y les creadores de contenido y les usuaries con pasión, buena voluntad y conocimientos técnicos no cargan con toda la responsabilidad de preservar los videojuegos para las generaciones futuras. Todavía no vivimos en un universo ideal y aún no hay soluciones claras al problema de audio en Google Chrome, pero tengo más buenas noticias y son que ese problema no existe en Firefox =)