Around the latter half of the 00s, I had a Windows XP machine with 256MB of RAM and a Pentium 4 processor, with a matching spinning metal-disk hard drive. I could make decent Flash animations and games with it. I could view entire websites in Flash with Internet Explorer 8.
Today, my personal machine is a laptop I bought from 2016. Core i7 (4 cores), AMD graphics card, 16GB of RAM. It's not top-of-the-line even when I bought it but I put in ~200 hours of The Witcher 3 in it, finishing the main quest and the two paid DLCs. That said, modern web dev is a PITA in this mostly because I'm too cheap to upgrade to an SSD. Oh, also, the GitHub homepage that showed live commits on the globe makes the fans scream with Chrome unless I enable hardware acceleration. (In fairness that's enabled by default, but it so happened I had to turn it off and forgot to turn it back on.)
I still can't figure out why my personal machine can't provide a decent feedback loop on a React/Angular+Typescript stack (that's not even doing animations!) just because I don't have an SSD. In my very opinionated opinion, only a database server needs an SSD.
A Phaser+Typescript project (my preferred modern web gaming stack) is just a slightly better experience than React. But, again, I wonder why it needs hardware acceleration at all to function well and I've only implemented very "static" boardgames so far. Maybe I'm just a sloppy programmer but I'm definitely better than when I was making stuff in Flash. This shouldn't be eating that much resources, right?
In practice, I think the authoring experience has been lost. There is still Adobe Animate (which is the renamed Flash application), but I think you can not export to a fully interactive HTML application - only to static videos or simple HTML (like interactive ads). Maybe it is now possible, but I haven't seen much use of it.
The magic of Flash started with a very nice vector editor - it even allowed you to "paint" Vectors with a brush. Then you had very intuitive tools for animations (tweening, onion shells). You could add simple interaction from the GUI. But it was easy to run custom ActionScript (basically JS) code on events, and move objects around on the screen. When you needed more control, you could also completely go to the ActionScript level and create your objects from code.
Nowadays, what do you use to create animations? After Effects seems what a lot of people use but it is overkill. Animate seems to be barely maintained. And if you want to do a game? I think Unity & co. have taken over, but they lack a bit the low barrier to entry that Flash had.
I'm old enough that HSR is still part of my lexicon. Kids just think I'm weird, which is fine.
Allow artists to create simple animation quickly.
run fast.
The key selling point of flash was that it was an author once, run anywhere tool. I could use keyframe animation along with a simple scripting language to make almost anything. Not only that it was fast to build and deploy.
Nothing I've seen recently allows an artist to do the same. I've tried a couple of times over the years to make an animated SVG on the web, and all of them required me to program keyframes using code, which sucked. Not only that its dogshit slow. animating <5 low complexity shapes would eat 50% of CPU, (think squares and circles).
Worse still all of those libraries are deprecated now, so if I want to do it again, I'll need to start again from scratch and select a new animation library.
Every game using Unity/Unreal + WASM needs to download 10-20 MB of JavaScript before it even starts loading the actual assets. With Flash, that could have been a 10 KB SWF instead.
Similarly, Flash had really fluid animations that were drawn purely on the CPU. Why my 266 MHz P2 could have better vector animations than people nowadays can squeeze out of a 3070 with WebGL is beyond me.
In my opinion, we still DO NOT have any worthwhile replacement for the ease of cross-platform development combined with excellent performance that Flash had.
I mean I guess you could do something awful with base64 encoding assets into a giant HTML file, but that sounds horrible.
Flash was also a platform for hosting bandwidth-efficient animation and people have just gone to using video now. That sacrifices incidental, easter egg-type interactivity and drives people to centralised services like YouTube.
It might have been more "creative" but that was also due to the fact that it was around at the beginning of the web, when everything was more creative. People had not figured out UI or UX patterns yet at that point, and there was massive wheel reinvention taking place all the time.
Flash was an absolute catastrophe for accessibility at well. A screen reader would just say "Flash movie" as that's all that was actually in the page.
We've had to reinvent a lot of that stuff, true, but we've also gained interoperability, security, and accessibility. I think those are all worthy trade-offs.
Later flash versions regressed in performance and can't run this game without stutter in my experience. A way to play the original game today is to get an old version of "Adobe flash player projector". If you are paranoid, use some OS level sandbox around it.
I did not see an in-browser game since the original N game that matches its low system requirements and smooth gameplay.
[1] https://www.thewayoftheninja.org/n_history.html
BTW, the successor N v2 is also pretty good, and it's not flash-based, AFAIK.
While it is possible in modern browsers to make a) cross-platform, front-end web applications with b) smooth vector and c) bitmap animation incorporating d) multimedia sound and e) video driven by f) a backend API (called dynamic data back then), it is not nearly as prevalent as it was. Animations and multi-media objects were first-class citizens in Flash in a way they are not in browsers.
I do think that's not entirely the browser makers fault. Web aesthetics have changed. Users liked swooping and diving logos with dramatic drop-shadows then, and not so much now.
Playing smooth vector animations on a single-core Pentium III computer with 64MB RAM.
If adobe would have not been the way they were, they would now dominate the animation scene too.
Instead, inadvertetly because of patents, we dont have anything cool to show for.
All this minimalism everywhere is disgusting. And they never get it right anyway because you have to put hightower ads everywhere you can.
While it still was macromedia calling the shots, people had trust in flash
Even if web standards have caught up with what Adobe Flash used to do a full decade ago, writing games for the browser became a lot more difficult to do.
Barring Adobe killing Flash by disappearing it from the internet, I can run anything I wrote in 2004 on Flash Player in 2022. This level of compatibility is only surpassed by Windows programs. In today's web, I not only need to be careful of supporting 3 major browser vendors, but also support any breaking changes that any of these make, which means I might need to recompile my project long after I have archived it.
The closest thing that has allowed me to make stuff easily for a web browser is PICO-8. A fantasy console, with very limited resolution and capabilities, but all its dev tools integrated, that allows you to quickly export to HTML5 and optionally upload it to its BBS (the website). PICO-8 has made amateur gamedev fun for me again.
I have no idea how to go about recreating my projects today in JS at all...
As others have said, it’s mostly tooling and workflow. As much as I’d like to sneer at Flash in general, my experience with it on projects was positive. The IDEs and tools were good, you could approach everything code first with unit tests. The process of cutting up PhotoShop PSDs from a designer and building UIs in FlashBuilder, while orchestrating everything in code in an MVC style was very pleasant.
I know that they can be remade with other technologies, but except for some clones remade to be a pay-to-win mobile apps, a lot of those games are just gone now.
The closest I’ve seen (and actually use) is Hype (https://tumult.com/hype/), but it is Mac only.
I still have one customer with a Flash-based web site, even though it doesn't work on any modern browser. They actually have some old version of IE and the Flash plugin available for download just to use their site.
The loop just worked and flash trimmed out silence automatically when playing the music. Very useful for games.
But not a single one has the same 'all in one' nature that Flash did. Back in the day, people who'd never even think of making a game could be exposed to it and eventually make one, now everything is more specialized and compartmentalized. The smallest webgame engines I see still have 5 MB of bloat, too, whereas a decently big flash game could be 500~ish KB.
That's not possible with Web APIs. Web APIs are more high-level (complex, purpose-oriented), e.g. WebSockets, WebRTC, WebTransport. The low-level stuff is not exposed to user code and probably never will. One of the reasons is security.
Html does most of the stuff now in theory, but its so much more difficult to access that it's not fun
Probably…
This year the situation is a little better. There's gdevelop, Rive, ct.js, Godot, Construct 3, and Wick Editor. None of them feel as friendly as Flash (except maybe Wick), or as efficient (I just played a small Rive game that made 500+ network requests to load assets). But they come with their upsides, like better game frameworks, better addons, better 3D support, etc.
So I wonder why we're still not seeing small free games. Are the tools not good enough? Packaging is too hard? Lack of good portals, à la Miniclip/Newgrounds/Kongregate? Or has internet culture simply moved away from interactivity to catchy videos?
Show me a tool where a 10 years old can draw and animate stick figure cartoons and publish is in a lightweight vector format (not video)!
Generalizing, tech progress swings repeatedly and unpredictably between three optimands or poles: Developer-first, User-first, and Machine-first.
Developer-first tech is like Flash -- it's powerful because the developer experience is powerful. The quality and profusion of great products drives the adoption and other network effects. Yet these programs tend to be heavier (non-optimal for machines) and, for lack of a better term, frou-frou-ier; the ease of applying themes and styles promotes 'mystery UI', where the dev reinvents (or more commonly, balderizes) the visual language of the user interface. Flash apps always had ornate, ridiculous scroll bars and buttons and so forth, mostly because the DX made customization so easy, and this imposed a sort of psychological tax on the users, often to the point of compromising the user experience.
By contrast, user-first tech emphasizes the experience of the end user or consumer. For example, HTML5/CSS3 is harder to author than Flash, but, as an open standard, offered the end-user choice of platform and graceful degradation on mobile.
That said, user-first tech can often have terrible developer experience (DX), and that is very true of HTML5/CSS3. It's basically coders-only, for certain lightweight values of the word 'code'.
Finally, there is machine-first tech -- apps that prioritize the machine's experience. This family of tools generally pursues performance at the expense of both the developer and the user. Generally one can think of Moore's Law as describing an asymptotic decline in the importance of what I'll haltingly call 'MX', because as machines get more powerful, it's less important to cater to them.
So you can think of the birth of the web as a move away from optimizing for MX towards optimizing some balance of DX or UX, but which of those two other poles picks up the bounty of Moore's Law is up to fashion, social trends, etc.
Finally, it's common for premature market anticipation of MX-shedding to drive clumsy, non-performant solutions that privileged DX or UX (or both) to such a degree that the machines simply don't like to run it much anymore. In other words, people overshoot in their attempts to optimize DX, UX, or both, and in doing so compromise the machine's experience of that code. When this happens, the market tends to lurch back towards MX. I perceive the move to (say) Rust from higher-level languages (Python, etc) as an example of trading off DX and even UX for MX. Arguably, Wayland does this as well, shedding both UX and DX considerations to improve machine-oriented properties such as security.
Going deeper, one could think of MX as being 'hardware-owner-first', as machines are not the sort of things that can have genuine experiences of their own -- however, animism is a useful form of lossy compression here.
I used to work with a group that created training materials using Flash. We had a bunch of animators that knew nothing about coding, but they could produce all of these amazing animated videos using Flash.
They could also produce interactive animations. One job we did was creating 3d renderings of printers. The printers could be torn down in the flash app to the smallest screw. A technician could choose what they wanted to do to the printer, and the flash movie would show them step by step in full animation what to do. At any time they could rotate the printer in all an axes to view different angles. It was amazing. And it was animators who knew nothing about code that built it all. The things they could do you just don’t see anymore.
I remember another project we worked on that had these mini games you could play in place of being multiple choice quizzes.
All of that is just gone. There was so much animation and interaction and fun that has been replaced with boring, text, images, and videos.
The best part was, it was all vectors, so the file sizes for even long animated movies was incredibly small. Back in those days we had very low bandwidth, but flash worked great. We had retailers in Asia that consumed our content no problem. Now our content is mostly text, images and videos. Those same retailers have higher bandwidth, but really struggle because the files sizes are enormous compared to flash.