← Back to context

Comment by noduerme

2 years ago

Adobe put a silent kill switch into Flash player, rendering 10 years worth of casual games I'd written immediately unplayable. As a result of Adobe's actions, a whole sector of lone devs and small teams turned to Unity to build games that would've otherwise been built in AS3. I'm glad I didn't end up going that route, but I really feel for the folks who are now getting screwed again.

I just got started learning about Flash so I could mod Starfield’s UI. The kill switch thing actually disgusted me, like I had to re-read the article explaining it because I couldn’t believe it was possible, let alone thinkable. All that history, just gone. I spent so many hours in the computer lab at school playing Flash games, man. Glad Ruffle exists.

What was the silent kill switch?

Was it a time based thing that applies to everyone or something?

Asking because a friend is playing a lot of ancient flash games recently using Ruffle (OSS flash player written in Rust), and doesn't seem to be having problems like that.

  • The last few major versions of Flash Player had a time-based kill switch that made them stop functioning after a certain date. Adobe didn't announce this until well over 90% of people with Flash installed had been auto-updated to one of those death versions. When they announced it, the date was less than a year away, and plenty of people were in the middle of building large projects that would need to be totally rewritten.

    To be clear, Ruffle only [fully] emulates Actionscript 1/2, which was the Flash language prior to 2006. The games you see resurrected in Ruffle are mostly what people associate with the casual single-player Flash games and funky art projects from the early 2000s. Most of my work was in the Actionscript 3 language, which came out in 2006 and featured GPU support, networking via sockets, peer to peer RTMP messaging, and lots of other modern features to make fast 2D/3D gaming and multiplayer possible. With AS3 you could deploy a game with the browser plugin and compile the same code to iOS and Android "native" apps with Adobe Air, which basically shoehorned the plugin into the binaries. Air is still around, but the whole ecosystem is dead.

    When Adobe pulled the plug, I'd just spent almost two years building the second entire game engine I wrote in AS3, this one for open/endless isometric worlds with terrain generation, character spawning, physics, particle systems, 3D embeds, networking, chat, lobbies... and our 3-person team had only deployed our first game with it. The idea of rewriting half a million lines of code in Unity or TS+Pixijs or something else... I just gave up on making games after that.

    Ruffle is a great project for the older Flash stuff, and they've made some progress with coverage of AS3 now, but they don't support a lot of the critical things needed to run these games (particularly with networking APIs and Stage3D), and they probably never will. None of my advanced work runs under Ruffle, not even my old AS3 website from 2009. In theory I could rewrite that code to work around Ruffle's limitations, but I can't even run the Adobe tools anymore to recompile or modify assets unless I go back to an ancient laptop that never got the death-update.

    • Thanks, that's useful info.

      Hopefully Ruffle keeps gaining traction and eventually is able to run all AS3 stuff.

      There were some really interesting things that worked well in Flash, that HTML5 has never really seemed to equal.