Show HN: Thoughts on Flash in 2023, in Flash, in 2023
newgrounds.com
newgrounds.com
Something was lost in the internet culture. Flash was the language of web art. I don't know what is the new language for that anymore.
If anyone knows, please do tell me. WebGL? Any WebGL-powered framework? What is it?
OK, now that we've all calmed back down, VB6 has been unmatched in the way that it allowed someone with zero experience to drag-and-drop and write in what looks like pseudocode to get some little business widget built. Yes, you can engineer something with better architecture that's less likely to paint you into a `DoEvents()` corner. Yes, the mere existence of settings like `On Error Resume Next`, `Option Strict Off`, and `Option Explicit Off` are anathema to correctness, security (lol), and robustness. No, if you expect support for Unicode or 64-bit operations, it wasn't built for that.
Many people loathe Flash for its security vulnerabilities, or VB6 because of experiences with poorly-written code at businesses that should have had a 'real programmer.' And today, a tool that made the same design decisions that Flash and VB6 did - pandering to novices who weren't willing to go to the effort to do things right - would be derided as a toy, as unusable for real work outside of sandboxed demos. But both were instrumental as stepping stones in the early 2000s to transform non-computer-literate individuals and businesses into creators and users.
With Flash, you could just follow some tutorials and make something nice in no time, fully understanding what you're doing.
Flash didn't "lean into" Flex. Flex was an Eclipse-based IDE and a set of libraries that some people used for some projects. It was specifically aimed at building apps. There were layouts, controls and all that. There was a list view with cell reuse, in 2008! It was much more like Android layout system then what the web had and still has. Flex was a tool that's very good for some jobs and completely unfit for others — like any other tool, really.
P5, which while excellent and better than flash for many reasons it’s not the same thing.
The true beauty of flash was seeing the cool games and animations online a kid could pirate a copy of flash and then the way the tech worked it lulled you in with simple animation tools but you were forced to interact with code to control the play state.
This meant a percentage dug deeper and could eventually make games and more advanced things.
>function draw() {
> stroke(50);
> fill(100);
> ellipse(x, y, 24, 24); }
In Flash you would just click the Oval icon and draw one.
Both have their benefits, P5 is far superior for creating interactive digital art or creative tooling. Flash is far better at creating intricate animations.
Wick editor is nice, but developement is on hold. It is open source, so maybe something will still come out if it.
Flash was the most attention grabbing medium at the time (because of bandwidth constraints), and making money was not the expectation, so the two groups flocked together and created all those wonderful animations and games for free. I don't see Flash, or anything like it, winning against TikTok and app store cash grabs anytime soon.
[1] Exhibit A: https://www.youtube.com/watch?v=iN92RC0Lmd4 . Distinct visual style? Check. Absurdist? Check. High effort? Check. Niche? Currently 3k views, check. Available for free? Check. 15 years ago this would be on Newgrounds.
[2] Exhibit B: https://play.google.com/store/games . Hundreds of thousands of simple games. 15 years ago, the less greedy version of this would be on Kongregate.
The difference with Flash was that it was usually the work of a solo developer of a very small team, so they could be unique in what they made (not dismissing that Flash game had clones too). The mobile app landscape is different in that conformity = $$$. These apps are soulless, they have no incentive to build something that's not a Clash of Clans / Temple Run / Candy Crush type game that's inundated with microtransactions.
Nothing. Flash left a gaping void in Internet creativity that has gone unfilled. We don't call it 'art' anymore, we call it 'content', aka grist for walled-garden mills of Youtube and Instagram and Tiktok.
Without Flash, I wouldn't have most of my friends who I met via the VKontakte app developer community. My career would have been vastly different because I was later hired to that same VKontakte thanks to my previous participation in Flash app developer contests. I got quite a bit of my programming skills from ActionScript as well. Flash decompilers taught me reverse engineering.
I sincerely hope that at some point in the future Flash will see a resurgence. Ruffle in particular brings that moment closer. There is still no good open-source Flash authoring software though. I may try to fix that myself when I'm done with the rest of my project ideas.
- A "durak" card game. Was real-time with the server in Java. Also full of bugs because I had no clue what I was doing wrt multi-threading and I also didn't know what defensive programming even is.
- A demotivator-style meme generator.
- A gambling thing that resembled those once-popular "pillar" machines found in grocery stores and malls around Russia. IRL ones took 5-rouble coins, mine took VK votes. VK killed it by deprecating the API for apps to give votes to users.
- A music player with playback speed control. Mostly for shits and giggles :D
There were more smaller ones, all kinds of experiments, but they didn't catch on.
> Unknown runtime
I like to know whether I’m going to have time to view all of something or not. I might want to set aside some time to watch something if it’s too long for the break I’m taking right now.
> No rewinding, no skipping ahead
Ugh. Just … no. If I saw something cool or missed something, I want to see it again without having to watch the preceding 20 minutes again. Also seems like the kind of thing that would eventually be used to try and force you to watch ads, which I don’t need in my life.
> Extremely dense patterns that would get destroyed by video compression
This I can understand! See also SVG.
> Moiré effects that change if you mess with the zoom setting on your browser
OK, if that’s your thing, go with it.
> Effects that change depending on if you're using flash player or Ruffle
So a friend might suggest I watch something, but then when I watch it, I might see something different if I just use a different player? That seems less than ideal.
Anyway, love the visuals, and we could use more stuff like that, but really dislike the above points.
> So a friend might suggest I watch something, but then when I watch it, I might see something different if I just use a different player? That seems less than ideal.
Sounds like a bug/limitation of Ruffle that might or might not be addressed by future versions, not an inherent thing with Flash
Example - mystery runtime, while inconvenient to someone in a hurry, is useful in keeping suspense or surprise. It's kind of hard to convince a reader that the hero is at risk of dying when there's obviously 2/3rds of a book left.
Do the pros outweigh the cons? Probably not. Should it at least be an option on modern video platforms? Maybe. But the important thing to me, is that we remember how such a thing changes the viewing experience before every film for the rest of time comes with a progress meter attached.
This is what George R. R. Martin wanted to do. He will kill the fake-out protagonist at any time.
This is supposed to mean that he is a great writer. But really it just means he's bad at storytelling - you'd tell a better story by just focusing on the actual protagonists instead of random redshirts. Focusing the correct characters has no effect on the plot.
A Song of Ice and Fire is about the illegitimacy of the Lannisters' reign, the choice to execute Ned Stark for discovering it, and the ensuing civil wars. Ned Stark isn't a "fake protagonist" because he dies. He's a protagonist and he dies, and then the story continues. Not every story needs to be a Save The Cat Hollywood screenplay to be "correct," and not every character arc needs to be satisfyingly resolved.
You not getting Boss Baby vibes from Martin's writing doesn't mean he's done anything wrong.
I got to the point where you are talking with the older guy but wanted to get back to work and reference something. I noticed whenever I tabbed to something else the video/audio would stop, so I dragged the tab out of firefox create its own window and it continued playing for about 30 seconds then for some reason it stopped and when I looked it was back at the prompt from the start
> No rewinding, no skipping ahead
Could this be manually inserted by a specific flash applet? Just like, you know, Youtube started as a flash applet and it had a (custom made) seekable progress bar
This should make animation only slightly harder (it would receive a parameter t instead of mutating things as the time goes forward, but that's best practice for animations anyway I think, at least in gamedev it is)
I was happy enough to go with it, even though the flashing at first made me feel a bit uneasy. I'm glad people still find joy in this stuff - I remember building Flash animations in the early 2000s and quite enjoying learning about all this cool animation stuff and laying background music I'd ripped off a disc.
But...
The Flash editor/IDE was brilliant, and that's something that the web sorely needs. There's a few libraries that can do similar things (eg theatre.js) but they don't do enough. Flash's editor was genuinely easy to use once you'd mastered a few things, and if you remembered to save regularly, and it enabled people to make fantastic games, sites, experiences, etc.
I suspect the lack of a really good animation and interaction design tool is one thing that's lead to the homogenization of the internet.
Things like theatre.js look great, but very quickly their documentation make it clear that you are expected to use javascript.
Flash expected you to just draw stuff, animate stuff, and if you like there is an optional scripting environment. The first few iterations of flash didn't really even have much of a scripting environment at all (AS1 was incredibly limited!).
I think that is part of the nostalgia of that period - things were so easy to make that you got some really creative and crazy stuff.
Everything on the 'different' list is unambiguously bad to me except maybe the compression thing. I don't want effects that change with zoom settings - that just excludes people who need to be zoomed in to see stuff.
I'm not happy that Flash died. I spent a lot of time playing really fun games in Flash. I'm happy this can exist, but please let's keep doing video essays in videos. That said, now I know Newgrounds still exists I wonder if I can find the impossible quiz...
It makes me wonder what a resurgence of flash via Ruffle.rs could mean for the web today. That being said, there are also a lot of exciting ways to make this kind of content today now too.
Essentially yes, you can jump from completely different experiences in seconds. Main difference is it’s multiplayer by default.
It's the reason I got into scripting/programming, and I'm now a web developer.
So I ended up using my PC every day of course. But I did spend a lot of time making games!
ActionScript 1 -> I am making silly games!
ActionScript 2 -> I am making cool games!
ActionScript 3 -> OO, classes, IDEs, SDKs, oh my got, I think I can write code now!
JS -> What is this crap??
TypeScript -> Thanks Flash, I am a software developer thanks to AS3.
And my old workflow with Flash, Flash Builder, Flex builder I am still missing.
Flash was such a huge part of why the internet was awesome for me growing up. My favorite part of the internet is still people making and sharing things - like this.
Now, the narrative has evolved to appreciate the unique creative value Flash provided and the distinct niche it occupied at the intersection of art and code. Maybe it took us some time to recognize this, or maybe it's possible for both sentiments to hold true simultaneously.
Some will remember Flash-based banner ads and video sites, that often had malware; that's black-hat Flash.
Many others will remember Flash for the games, cartoons and experiences that were non-commercial in nature and thus were malware-free.
Many are glad the performance and security nightmare of a runtime is gone, and we have modern replacements for most of what it did. They're not all superior, but I think it's fair to say we're roughly equivalent now, and possibly better, in aggregate.
Most are sad that the excellent, ubiquitous, amateur-friendly authoring environment is gone, and no replacement currently exists. There are many more-specialized ones, but few general ones (and they're far less widely used, though that could change eventually).
I don't think Flash is shit canned if it wasn't acquired by Adobe. While it was Macromedia it was no threat to established players, neutral ground if you will. Adobe was much more relevant during that era and as such the acquisition painted a target on it's back.
There exists an alternate universe where Macromedia stayed independent or was acquired by a party like Mozilla interested in openning up the Flash standard. We would be writing frontend "web" code in AS4 or AS5 by now in a fully tricked out IDE that would support code, design and animations in a single interface.
Instead we have the steaming pile of garbage that is Javascript, the one surviving attempt to make that better (Typescript), CSS that is now tortured beyond recognition, no good tooling for building animations or highly interactive interfaces etc.
Flash was a scapegoat to kill the old web but also to ensure that the burgeoning App Store/Play Store would rule mobile instead of something more accessible and cross platform.
That said, Ruffle ( https://ruffle.rs/ ) is keeping flash alive on the web, preserving the legacy of flash and enabling people to make new things like this! Newgrounds hosts a contest every year since the "death of flash" to see who can make the best new thing, (that's what this was made for, actually): https://www.newgrounds.com/bbs/topic/1523958
I think the last I heard from him was like a decade ago, so who knows, maybe he and his crew finally moved on to some other tool. But it definitely persisted in the animation industry long after the browser plugin got killed off. Adobe's still cranking out new versions every year, too, so it's not like you're stuck using ancient operating systems to run it.
While Adobe is still making animate Teen Titans Go! (a Spongebob-esque spinoff of the original show), as well as many other US animated shows past 2012, moved on to Toon Boom.
The WPH crew was pushing really hard on what could be done in the medium of a Flash cartoon delivered via a dialup modem, but it sure is hard to look at most of that animation now.
The analogy I go to is that of a living versus a dead language, which I got from my dad. He was a professional cellist for years before he said screw it, got an MBA, and went into finance, and I always thought this was some tragic compromise on his part—but when I finally asked him about it (well into my twenties and figuring out my own career) he said it was nothing of the sort: finance back then (~late eighties, trading latin american sovereign debt) had much more innovation, competition, and energy around it then classical music had (or will ever have again: it was dead). We should treasure the art movements we have while we have them.
(proceeds to rewatch several Xiao Xiaos)
(proceeds to generate dog photos with Stable Diffusion)
(proceeds to futz with midis, slouching towards counterpoint)
Of course, it also helps to listen to a shit-ton of counterpoint (the right suggestion here is "Bach", but personally it was Brad Mehldau's music that got me interested in this).
Piston has this book that's more approachable: https://www.goodreads.com/book/show/445366.Counterpoint
But ultimately, learning counterpoint is 10% reading and 90% writing.
(It’s not that easy in theory but that is the gist of it.)
The bit at the end about "the old ways" still being needed sometimes... it reminds me of a story I saw recently about how we're still researching ancient Roman concrete and finding secrets about why it's so durable (https://news.mit.edu/2023/roman-concrete-durability-lime-cas...) Makes you wonder how many artistries have been lost over the years, and what kind of stuff we work on today that will be lost in the future. I spend a good 50 hours a week toiling over code, and already I see that changing a lot over the next 10 years. I can't imagine what it will be like in 50.
"It's not the east or the west side - no it's not, it's not the north or the south side - no its not, it's the dark side - you are correct. So for all you Vader haters we'll blow your planet up. What is thy bidding my master, it's a disaster, Skywalker we're after, but if he could be turned to the dark side, yes, we'd have a powerful ally..."
That was the internet I loved, pre Facebook, pre cookie banners, pre everything bad nowadays. Better times too, everyone knew the Dubyas were full of shit and most people didn't go haywire yet with the gender crap and the 15 years of Islam hate terrorism brainwashing etc. Work was fun because "SOLID" and OO fetish wasn't there yet, no k8s, no cloud, no microservices. Living was less difficult. And you could actually find things to buy in local stores vs Amazon swallowing everything. You could also say anything without bullshit censorship. Steam was new and didn't have much power. MMORPGs were big and the social networks of that time, besides ICQ which was a falling star but the main platform to send messages, also MSN messenger. I don't want to know the amount of spying that was going on there. Summers were warm but not the burning hell of today. See you in 20 years and 45-50°C in Northern Europe. There were forums everywhere, not just that abomination reddit. Google still had the don't be evil slogan and getting into adsense wasn't impossible like it's nowadays. Layers ads were a thing. No bootstrap meant colorful and diverse websites. And then came Facebook and turned everything into shit.
Then there was vector keyframe animation, which was very clunky in HTML5.
https://createjs.com/docs/easeljs/modules/EaselJS.html
Very cool to see new content being made as in the OP's demo. I would say they're creating for Ruffle now, as Flash is old and deprecated.
Ultimately, someone needs to make a Ruffle editor. Adobe Flash succeeded because the authoring tool was great. Something like Synfig exporting to Ruffle:
https://uploads.ungrounded.net/881000/881533_bc81682038934.s...
It opened my eyes to using Flash for procedural graphics and simulations, instead of just using timelines like a glorified graphical player piano, or like a BASIC program full of GOTO spaghetti rotated 90 degrees counter clockwise (which is how Macromedia founder Marc Canter described Director's Lingo, which also used frame numbers like BASIC line numbers).
Jared went on to do a lot more amazing stuff in Processing, co-founded Etsy, and built a toy factory!
https://www.artnome.com/news/2020/8/24/interview-with-genera...
https://www.artnome.com/news/2018/8/8/why-love-generative-ar...
https://beyondtellerrand.com/events/dusseldorf-2018/speakers...
Apparently I am not the only one who misses it: https://graphicdesign.stackexchange.com/questions/1769/is-th...
You are right about it being incompressible, among other things. I am going to restart it and see how much NVENC butchers it.
EDIT: Usual CQP settings are going absolutely bonkers.
EDIT2: https://youtu.be/6x3WUw12kKE
Yeah, catastrophic is a good descriptor.
I think the applicability of techniques go both ways. Similar to what Sarah's dad said, I see research in ML now which rehashes expertise from many decades ago. Conversely, I see the demoscene implementing ideas on old hardware that, as you said, it would have been amazing if the technique was known at the time, but it simply wasn't conceivable then. It's only with advances in tech and lowering of technical barriers that new ideas are explored.
In any case, it's compelling to see people's expertise applied wherever.
It still doesn't work on mobile. That's my only thought. My phone is more powerful than my computer was when Flash died. Makes no sense.
Flash ran on Android natively; even ran on Windows Mobile 6.5, for those who remember it. It was Adobe that ended support for it, as Google also didn't want them competing against the Play Store.
While you can't install a plugin any more, you can still install a standalone Flash player. I even have it on my M1 Mac. Works surprisingly well.
https://abcnews.go.com/amp/Technology/apples-steve-jobs-post...
I usually don't take messages about mobile performance seriously, but this does bring even A15 Bionic devices to their knees. I wonder whether it's a RAM or GPU issue, it plays nicely for a few seconds and then dies.
All in all this was confusing thing to try to suffer through since I couldn't decide if this was suppose to be just a podcast where I dont look at the visuals or if there was going to be something actually worth looking at. So I just kept looking away and back at the flashing lights while retaining absolutely nothing from the audio portion.
> "flashing hyper stuff"
You're getting it! That kind of vector animation isn't easy in HTML5.
Flash did have big arcs flying around the screen, at least in subtler background style. Even today there's not much "TV broadcast graphics" around on web, maybe for good reason, or because poor little mobile screens would choke, and need simple elements. Big screens can't have nice things.
1/10 animation based on DOM is bad. wont watch again.
I really like .swf in the past, but I have to say that it feels really weird that I can't fast-forward. Am I been trained to be too impatient in this video-everywhere age?
Without downloading Macromedia Flash MX in highschool I would never have built Psychopath, Obechi, Boomshine... flash games that changed my life and made me want to be a game developer & programmer.
The creativityand ability to built a Flash game or animation in many different ways was why it was so great.
Many people do not realize that Flash used to be MORE ubiquitous than almost ANY softwar in the world (If I recall Macromedia released some stat around 96% of computers had Flash installed). Meaning you could depend on flash being installed on a device more than Javascript, Java, or any particular browser or operating system.
Miss those days dearly
Until Flash got really big, 2D vector art styles in games were really pretty underexplored. Not totally - there were games like Out of This World, say - but in general 2D games historically leaned very heavily on bitmapped art work. And that made sense, given the nature of the sprite hardware of arcades, home consoles, and some 8 and 16 bit home pcs (like the C64) in the 1980s and early 90s.
But that meant at the time that there never really developed a culture of 2D vector game art that was a magnet for super talented, competitive artists who really tried to push the space to its limits, see what was possible, drive a tool ecosystem, share techniques, etc. And of course you _did_ see all of those things happen around bitmaps and pixel art - the very best of 16 bit pixel art still does look really impressive.
Instead, most of the effort that went into 2d vector art at the time (at least this is my understanding) was more over in the land of business, where real time frame rates on cheap consumer hardware weren't a concern, and having crisp and clean graphic design and fonts that could scale up (especially when printed) were much more important.
And then GLQuake and 3dFX Tomb Raider and the Playstation 1 hit, and and something like vector art (in the form of polygon meshes) suddenly became ubiquitous in games - but all in the context of 3D rendering, 3D cameras, 3D worlds, and so on. And that did indeed become (and remains) a magnet for super talented artists to try to drive the state of the art forward, shared techniques, build tools, etc.
Along the way, the rise in graphics capabilities became more than enough to enable really interesting real time 2d vector art work in games, but there just wasn't a critical mass of interest in it (probably because the massive leaps in 3D rendering in the late 90s through the 2000s were sucking up all the attention, and 2D gameplay was at the time viewed as the past).
And all that remained true until the circumstances where Flash rose, which 1) ran on reasonably powerful PCs but 2) largely didn't use 3D hardware, and all this in 3) highly file size constrained environments (because of internet deployment), while 4) shipping a small runtime plug-in that evolved into a pretty good stripped down real-time combination of Illustrator and Photoshop, along with 5) an integrated authoring tool that was good for making 2d vector art - and all of this in the context of 6) really massive potential audience size because of web browser deployment.
All of those constraints and capabilities together were a really fertile space for 2d vector art in games to become a magnet for attention and talent and evolution, making it one of the major art styles in games today. Maybe that would have happened anyway, but Flash certainly played a major role in the world we actually live in.
**
Flash really left its mark as a stripped down, real time Adobe Illustrator, but its runtime (less so its authoring tools) was actually equally powerful as a stripped down real time Photoshop - something like what the Super Nintendo or Amiga could have conceivably evolved into had 3D acceleration never shown up, and if massive amounts of RAM and level-loading-time rendering and caching became a central rendering paradigm.
I was doing, I think, pretty striking indie work from that angle between 2010 and 2013, but I never quite found a way to turn it into anything and wasn't as good at shipping and networking as I needed to be (be honest with yourself when you need a business person or a producer, folks) ... so I'll dump some videos here instead, because why not.
So, the first approach I did was something like a Flash evolution of the parallax techniques used in Shadow of the Beast (and other 16 bit games):
Sideview Rendering Demo: https://www.youtube.com/watch?v=ybHJx-S3LWk
Incomplete Platformer: https://www.youtube.com/watch?v=MRUDYdfwvCI
And second approach was something like a Flash evolution of the techniques used in Sega's After Burner 2, Sega's arcade Rail Chase, Sega's Power Drift, or Sega's Galaxy Force 2:
Incomplete Racing Game: https://www.youtube.com/watch?v=mrL33EF-v0I
Cartoony Minecraft Demo: https://www.youtube.com/watch?v=5h1zzLOCAaQ
Unfinished FPS Wolf Horror Game: https://www.youtube.com/watch?v=k2WgC7OL8Aw
81k First Person Grass Demo: https://www.youtube.com/watch?v=rRsc0salnEs
All in file sizes < 2 Megs. All were using, essentially, lots of clever caching and image-based rendering techniques.
I've updated some of these techniques to work with Canvas more recently. The parallax scrolling techniques in particular work quite well on phones and tablets with javascript and Canvas.