惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
WordPress大学
WordPress大学
B
Blog RSS Feed
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
aimingoo的专栏
aimingoo的专栏
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
C
Check Point Blog
P
Proofpoint News Feed
H
Help Net Security
月光博客
月光博客
博客园_首页
Stack Overflow Blog
Stack Overflow Blog
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
U
Unit 42
美团技术团队
I
InfoQ
A
About on SuperTechFans

Red Blob Games: latest blog posts

Red Blob Games: Differential heuristics Red Blob Games: Responsive design calculator Red Blob Games: Academic citations Red Blob Games: Highlighting interactive code blocks Red Blob Games: Optimizing page size Red Blob Games: Writing a guide to SDF fonts Red Blob Games: URLs with trailing punctuation Red Blob Games: What I did in 2025 Red Blob Games: Goodbye Sass Goodbye Sass Red Blob Games: RotMG map seeds Red Blob Games: Mapgen4 Mapgen4's use of WebGL2 Red Blob Games: Mapgen4 river shader Red Blob Games: Mapgen4 renderer Red Blob Games: Harnessing ChatGPT hallucinations Red Blob Games: Let Let's write a search engine, part 2 of 2 Red Blob Games: Let Let's write a search engine, part 1 of 2 Red Blob Games: Hexagon conversions Red Blob Games: Mapgen4 trade routes Red Blob Games: De-optimizing mapgen4 Red Blob Games: Hexagon spiral coordinates Red Blob Games: What I did in 2024 Red Blob Games: Hexagon page animations Red Blob Games: SDF Halos SDF Halos Red Blob Games: SDF headless tests, part 2 Red Blob Games: SDF headless tests, part 1
Red Blob Games: Thoughts on Flash
2025-02-03 · via Red Blob Games: latest blog posts
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.