1 puntos por GN⁺ 2023-10-23 | 1 comentarios | Compartir por WhatsApp
  • Ruffle es un emulador de Flash Player de código abierto escrito en Rust, que permite volver a ejecutar contenido Flash que ya no tiene soporte por defecto en sistemas operativos y navegadores modernos
  • Es compatible tanto con escritorio como con la web, y en entornos web utiliza WebAssembly
  • Su objetivo es evitar los riesgos de seguridad conocidos de Flash aprovechando las garantías de Rust y WASM
  • Está diseñado para que tanto usuarios comunes como propietarios de sitios web puedan instalarlo y ejecutarlo rápidamente
  • Es un proyecto gratuito y de código abierto disponible bajo licencia MIT/Apache 2.0

Ejecutar contenido Flash en entornos modernos

  • Ruffle es un emulador de Flash Player para ejecutar contenido Flash en entornos modernos
  • Fue creado para funcionar de forma nativa en sistemas operativos y navegadores actuales, con un enfoque en revivir contenido Flash sin complicaciones adicionales
  • El lenguaje de implementación es Rust y está dirigido tanto a escritorio como a la web
  • Para la ejecución en la web se utiliza WebAssembly

Enfoque de seguridad y condiciones de distribución

  • Busca evitar las trampas de seguridad que tenía Flash aprovechando las garantías de Rust y WASM
  • Está diseñado para que tanto usuarios como propietarios de sitios web puedan instalarlo y ejecutarlo rápidamente
  • Es un proyecto gratuito y de código abierto distribuido bajo licencia MIT/Apache 2.0

1 comentarios

 
GN⁺ 2023-10-23
Comentarios en Hacker News
  • Reviso este proyecto más o menos una vez al año, y me alegra ver que el soporte de AS3 se está acercando a estar completo
    Como mucha gente en la escuela, pasé demasiado tiempo jugando juegos en Flash, y me daba pena que se perdiera una parte de la historia de los videojuegos
    Aun así, Ruffle puede revivir al menos una parte. Aunque también me hace pensar que todavía no hay manera de jugar Wolfenstein RPG en iOS. Tengo un iPod que compré en 2010 casi solo para jugar eso, pero la batería no va a durar para siempre. Por ahora tendré que ir a jugar Adrenaline Challenge
    • Hace como 18 meses, Ruffle prácticamente no tenía soporte de AS3, así que para mí era un obstáculo decisivo
      Pensé que faltaban varios años más, y mientras tanto usé la última versión de Flash sin bomba de tiempo instalada, así que me alegra haber estado equivocado :)
    • La última vez que lo vi, AS3 apenas estaba empezando, así que sorprende que haya avanzado tanto tan rápido
    • Que no se pueda jugar Wolfenstein RPG en iOS podría cambiar pronto :)
      https://github.com/hikari-no-yume/touchHLE/pull/139
    • Yo también sigo buscando una forma de volver a jugar Inishie Dungeon
    • Ojalá que los PR viejos de Ruffle realmente se fusionen
  • Cuando se habla de emulación de Flash, la conversación siempre termina yéndose hacia los juegos de Flash, pero además de eso hay una gran ventaja: todavía se pueden preservar sitios web informativos que siguen dependiendo de Flash
    La página The Merchant's House de la exposición Slavery in New York de la New York Historical Society muestra los objetos uno por uno y explica que “todo estaba conectado con la esclavitud”
    Gracias a proyectos como Ruffle, este tipo de trabajo puede mantenerse. Ahora que la exposición ya desapareció, esta es la única manera de ver este material y de seguir aprovechando el resultado de una enorme investigación histórica
    Sin embargo, las video galleries del mismo sitio de la exposición fallan. Se supone que son clips de video que dejaron quienes visitaron la muestra en una cabina dedicada, y por lo que leí en muchos textos relacionados, parecían ser un muy buen material para ver cómo la gente de Nueva York de esa época veía la esclavitud. Incluso había una frase del New York Times: “Tiene la incomodidad del video casero amateur. Ruido de fondo, silencios largos, miradas que evitan la cámara.”
    Debe de ser solo una parte de unos 400 videos, pero en esta página Ruffle no funciona bien. Cuando he intentado verlos, alguna vez salió audio por un momento desde la pestaña, así que parece que algo sí está pasando, pero nunca he logrado ver el video. Ojalá alguien que sepa más de esto entienda qué está ocurriendo, porque sería una pena que este material se perdiera
    • Los archivos de video todavía siguen ahí. Por ejemplo, https://www.slaveryinnewyork.org/flash/Gallery7Responses2.fl..., y también se puede ver la URL solicitada en el inspector de red del navegador
      Se pueden reproducir sin conexión con herramientas como VLC o ffplay, y también convertirlos a un formato de reproducción más moderno
    • Ya le pasé esto al equipo de Ruffle. Están trabajando en mejorar el soporte para videos externos que se agregó hace unos meses
  • Escribí AS3 y mxml para Adobe Flex durante varios años
    AS3 era ECMAScript 4 en muchos sentidos, y creo que iba bastante adelantado a su época. Muchas de las cosas que hoy esperamos ya se sentían como funciones normales dentro del ecosistema de Flash Player
    Claro que hubo momentos de pesadilla, pero en una época en la que hasta hacer JavaScript por navegador ya era complicado, nosotros sí podíamos desplegar cosas bastante buenas
    • Yo también hice ese trabajo durante varios años
      Más que AS3 adelantado a su tiempo, se siente que retrocedimos al pasado cuando se abandonó Flash por culpa de Steve Jobs y del CEO de Adobe de ese entonces
      AS3 era realmente bueno, fácil de aprender y seguro para que varios desarrolladores lo extendieran juntos. Flash también se volvió bastante rápido al final de su vida, pero al final todo se fue por el desagüe
    • Totalmente de acuerdo. Hice un motor de renderizado 3D con Flash y AS3, y sigue siendo una de mis plataformas de desarrollo favoritas de todas las que he usado
      AS3 era un lenguaje excelente. Brendan Eich lo mencionó brevemente en una entrevista con Lex Fridman, y me pareció interesante que se acercara a ser el posible sucesor de JavaScript que nunca llegó al navegador. Da pena que no se haya convertido en el nuevo estándar
  • ¿Adobe Flash está muerto? Si Adobe ya no lo vende como producto, me pregunto por qué no liberaron como código abierto la parte de Flash Player
    Ojalá hubiera una ley que obligara a dejarlo en dominio público cuando ya no se venda el software
    • Hice la misma pregunta en un hilo anterior, y me respondieron que seguramente hay demasiado código de terceros con licencia dentro de Flash Player, así que quitarlo o relicenciarlo para abrir el código sería demasiado difícil o directamente imposible
      Aun así, Adobe sí publica gratis las especificaciones relacionadas
      También estaría bien reducir la duración del copyright a algo razonable, como 5 años. O incluso mejor, para mantener el copyright podrían obligarte a pagar un impuesto que aumente de forma exponencial cada año
    • La razón por la que las empresas normalmente no hacen eso es el riesgo legal. Puede que algunas de las bibliotecas que usaron tengan licencias que no permiten abrir el código
      Eso podría resolverse cambiando la ley. Por ejemplo, creando una ley de preservación de software antiguo que permita liberar cualquier software como código abierto y bloquee demandas relacionadas con medidas tomadas bajo esa ley
      También podrían dar incentivos adicionales. Por ejemplo, exigir que todo software vendido comercialmente se conserve de forma permanente o se publique como código abierto. Como conservarlo legalmente para siempre es caro, probablemente muchos terminarían optando por abrir el código
    • Puede que no hayan publicado Flash Player como código abierto porque la calidad del código era tan vergonzosa que les daría pena. También seguro debe haber muchas vulnerabilidades que todavía no se descubren
    • Gran parte ya la publicaron[1]. Claro, se puede argumentar que no es suficiente
  1. https://github.com/adobe/avmplus
  • El problema es que este tipo de productos por lo general usaban componentes privativos de terceros.
    Por eso, muchas veces es imposible volverlos open source sin recortar grandes partes del código base, y ese trabajo es costoso además de que reduce mucho la utilidad del código publicado.
  • Me pregunto si todavía sería posible crear obras nuevas incluso después de que esto salió.
    ¿O las herramientas ya están en un estado tan difícil de revivir que, en la práctica, solo sirven para rescatar el catálogo del pasado?
    Claro, el catálogo antiguo es inmensamente grande, pero he oído que a muchos desarrolladores les encantaba hacer juegos en Flash, así que sería interesante si alguien suficientemente terco intentara revivir la escena de juegos Flash.
    Ahora no es algo estrictamente necesario y existen estándares web prometedores que mejoran cada día, pero eso nunca ha detenido a la gente persistente. Todavía hay personas buscando cómo hacer juegos nuevos para hardware viejo de Nintendo.
    • Adobe todavía ofrece Animate como parte de Creative Cloud, y con eso se pueden hacer películas en AS3.
      Si quieres AS2, tienes que retroceder al menos hasta CS6, y como el soporte para FLA es mucho más amplio, creo que CS5.5 es mejor. No preguntes por qué quitaron eso en CS6.
      Si no quieres pagarle a Adobe, puedes usar Apache Flex, que es la versión libre y de código abierto del toolchain de Adobe. Claro, es una herramienta de compilación por línea de comandos y solo compila archivos AS3, así que los gráficos hay que hacerlos y enlazarlos por separado.
      Si trabajas con arte vectorial, probablemente tendrás que encontrar una forma de convertir SVG a SWF, incluirlo en el SWF principal desde Flex con alguna magia rara de declaración de clases y, además, lidiar con los sutiles problemas de enmascarado que eso provoca.
    • Flash no debió morir.
      Era una herramienta de creación accesible para producir animaciones en un solo archivo, multiplataforma, escalables y que funcionaban incluso con poco ancho de banda.
      Aún no hemos compensado esa pérdida. JavaScript + canvas + el stack web es un desastre. Si el runtime de Ruffle pudiera arrancar rápido, creo que empezaría a hacer Flash nuevo.
    • En Windows todavía se pueden ejecutar sin problema versiones antiguas de Flash.
      En macOS es más complicado porque todas esas versiones son de 32 bits. En una Mac M1, conviene más configurar una VM de Windows y correr Flash ahí; en una Mac Intel, se puede instalar macOS Mojave en una partición aparte, ya que fue la última versión con soporte de 32 bits.
    • En nuestra empresa todavía escribimos código AS3 nuevo. Todos los IDE y herramientas funcionan bien en W10/W11.
    • En Newgrounds hay un evento flashforward más o menos una vez al año.
  • También hay una herramienta comercial para convertir Flash a WebAssembly.
    En realidad, ejecuta un Linux completo dentro de una VM en WebAssembly, y ahí corre Adobe Flash Player con licencia oficial. Y parece que la licencia de Flash hay que obtenerla por separado con Harman. Da la impresión de que ahora ellos tienen esa propiedad intelectual de Flash.
    https://labs.leaningtech.com/cheerpx/for-flash
    No tengo ninguna relación con ellos; solo lo investigué alguna vez porque me pareció interesante.
    • Soy desarrollador. CheerpX for Flash ejecuta la versión de Flash basada en Pepper API, y lo de la licencia es correcto.
      Pero no emula un Linux completo solo para correr Flash. Emula PPAPI y ejecuta Flash Player sobre CheerpX, que es un JIT x86.
      Yuri explica aquí la arquitectura de CXFF:
      https://youtu.be/7JUs4c99-mo?t=1045
      Si necesitas emulación completa de un sistema Linux, también existe esto: https://webvm.io
  • Qué genial. Nunca lo había visto antes.
    Sigo pensando que internet y los programadores principiantes jóvenes perdieron una herramienta realmente valiosa junto con Flash. Es una pena que no hayan logrado hacer funcionar bien el modelo de seguridad. Los applets de Flash tenían muchísimas funciones y una barrera de entrada inusualmente baja.
  • Odio mucho la forma en que Adobe mató Flash.
    Sí, tenía problemas, pero eso pasa con la mayoría del software, y Flash de verdad estaba como 20 años adelantado a su tiempo. Después de la muerte de Flash, la web se volvió ridículamente insípida.
    Mi teoría conspirativa es que Apple y Google le pagaron a Adobe para matar Flash y así forzar el soporte móvil.
    • No hace falta ninguna conspiración. Si un producto genera una experiencia de usuario horrible, con eso basta.
      Nunca escribí una sola línea de Flash ni quise hacerlo, pero todavía tengo malos recuerdos de lo rotos que estaban los sitios hechos en Flash.
      Los widgets se notaban porque no se comportaban como nativos, en Firefox los problemas de foco del teclado eran constantes, y la aceleración de video nunca parecía funcionar bien, así que devoraba la batería. También estaba la pesadilla de privacidad de las cookies persistentes, que había que borrar abriendo la app de Flash de Adobe, y el manejo de permisos ignoraba tanto al sistema anfitrión como al navegador.
      Tampoco es fácil olvidar los problemas casi permanentes de seguridad y estabilidad. Personalmente, me alegra que Flash haya muerto.
      Flash ya era malo en escritorio, pero murió porque era muchísimo peor en móvil justo cuando lo móvil se estaba volviendo importante.
    • Flash era malo. Era malo para la accesibilidad, era cerrado, era lento y era un medio para forzar publicidad.
      Sí, se podían hacer animaciones, pero eso no era lo que la mayoría de nosotros necesitábamos o queríamos en esa época.
      A Flash lo querían solo los departamentos de marketing, y la gente que quería convertirse en desarrolladora de juegos, junto con los adolescentes que jugaban esos juegos.
    • Si Flash no hubiera llegado a su fin de soporte, proyectos como Ruffle habrían tenido la difícil tarea de seguirle el ritmo a un runtime privativo todavía ampliamente usado.
    • Adobe se rindió, pero quien realmente lo mató fue Apple, al no darle soporte en iOS.
    • Recuerdo haberlo celebrado cuando murió, pero viéndolo en retrospectiva, tampoco era tan malo.
      Al menos desde la perspectiva del desarrollador, trabajar con un SDK de un solo proveedor y con todo incluido es mucho mejor que este tumor de node_modules.
  • Saliéndome del tema, si aquí hay algún empleado de Adobe con acceso a la cuenta de Fastly de Adobe, creo que deberían revisar la configuración de Fastly.

Si vas a una publicación vieja de blogs.adobe.com, actualmente aparece este error en vivo:
Fastly error: unknown domain: blogs.adobe.com. Please check that this domain has
been added to a service.
El error de arriba salió de esta URL: https://blogs.adobe.com/asset/2012/06/inside-flash-player-pr...

  • Recuerdo haber seguido cuando GNU Gnash intentaba dar soporte a AS2 y AS3
    Tomó años, pero al final solo funcionó parcialmente. En ese tiempo, Flash todavía dominaba el navegador, pero nadie logró portarlo bien antes de que Gnash muriera
    Me pregunto cómo Ruffle logró hacer que funcionara tan rápido
    • Probablemente no fueron tan estrictos con la licencia como GNU