Thoughts on Flash

 from Red Blob Games’s Blog
Blog post: 2 Feb 2025

I know a lot of people hated the Flash Player web plugin, but I found it to be quite useful for my experiments. It gave me vector graphics in the browser so that I could share demos without asking people to download an executable from me. And it ran long before SVG / HTML5 was widely available in browsers. I had been porting some of my old Flash code to Javascript[1], but that takes time that I could be instead spending on new projects. So I’m glad to see that the Ruffle Flash emulator[2] has made so much progress on ActionScript 3[3]:

Ruffle support for ActionScript 3 from their site[4]

Some of the things I resurrected:

Back when I initially got interested in making interactive tutorials[16] (2007), HTML5 wasn’t around. Java applets and Flash applets were the best choices to run in a web browser, and I found Java was the respectable but slow/clunky choice, whereas Flash was the fast/lightweight choice, but didn’t get any respect. ActionScript 3 was a decent programming language. Think of it like TypeScript + JSX but ten years ahead of its time, and based on the ECMAscript standard[17]. It had type checking, classes, modules, etc. The Flash graphics system offered 2D vector graphics, 2D bitmap graphics, and 3D graphics, and ways to combine all three in a fine-grained way. That’s something I can’t easily do in HTML5.

Many of the interactive parts of my pages, including the ones about pathfinding, hexagons, and procedural map generation, have their origins in experiments I did in Flash. I was quite glad that Ruffle made some of these work again.

But while looking at the Polygon Map Generator article[18], I realized I haven’t updated it since 2010. It has lots of references to the ActionScript 3 source code. I think ActionScript was nice — But Flash is dead, so nobody’s using ActionScript anymore. I decided to remove specific references to ActionScript code, and instead point to either descriptions of the algorithms or JavaScript/TypeScript code.

I also took the opportunity to update some of the text based on what I’ve learned since then. A big one is that the article was meant to describe what I did and not what you should do, but I didn’t convey that well. I made specific decisions based on the game design, and those decisions may not be right for another project. In each section where I made such a decision, I added alternative decisions that I’ve used or seen in other projects.

I used to think of my pages as something I wrote once and then published. I’m trying instead to of think of them as living documents that I update as I find better ways of explaining things. Updating the Flash parts of my site led me to revisit and update some of my older pages.

Email me , or tweet @redblobgames, or comment: