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-actionscript-3-compatibility.jpg?2025-02-02-14-55-38)
Some of the things I resurrected:
- My map “polygon map generator” demo[5] that accompanied the article of the same name[6]
- Realm of the Mad God experiments[7] - mapgen1, mapgen2, dungeons
- Blinking faces using the Oryx tileset[8]
- An old level editor for Realm of the Mad God[9], which I later used in a reddit AMA[10] five years later
- “There is no secret sheep level”[11], an experiment with isometric graphics and field of view, which led me to this experiment seven years later
- Two road drawing experiments[12], one for intersections and one for bezier vs circular curves, which led me to write this article nine years later
- Corridor map generation[13] for when you’re inside the belly of a giant beast
- Radial space station map generation[14]
- Spaceship editor[15] that figures out how to fly from your spaceship designs
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.