God bless the Ruffle project, but it's so frustrating that they've covered almost everything in AS3 except the NetConnection class (and the .connect() call).
Lots of wonderful single player games were made in Flash, and it's awesome that there's a way to play them again. But almost all of my work was multiplayer or relied on amfphp or other Flash versions of XHR to draw in data for levels, multiplayer, music or graphics after my engine loads. I still have all the server code... but all we can resurrect still are games that are entirely self-contained. That's still alright but it relegates Flash to a museum.
Hi, one of Ruffle maintainers here. AFAIK, we do have most of NetConnection API implemented; but direct socket connections are just impossible in browsers. The games should (hopefully) work and connect when run via the desktop player. We also implemented socket emulation in the browser via WebSockets, so they should also start working there if you put a WebSockify proxy on your server (no need to touch the game server code).
Hi! You have done amazing work, and I'm ever grateful to your team for keeping AS3 alive!
I used sockets in some of my multiplayer games, but that's not where I ran into problems with Ruffle. Since those games only upgraded to sockets after an initial HTTPS connection, I haven't even gotten to the point of trying sockets yet. I mainly just used NetConnection.connect() for routine API calls, not to open a socket. AFAIK .connect() didn't open a socket, although I guess it had some two-way capabilities with Flash Media Server, but that's not how I used it. I just used it to initialize the NetConnection instance with the URI of a server endpoint that could receive AMF messages (usually translated on the backend with AMFPHP). I don't think it really left any sort of connection open. After that, you'd just make RESTful calls over that connection using netconnection.call(...args), and could send complex objects - even SQL result sets - back and forth without going through JSON or XML. But it was just a bunch of HTTP calls sending that data in Flash's own serialized format. You'd listen for NetStatusEvent or SecurityEvent to handle the results or errors. No sockets were involved. In conjunction with AMFPHP it was basically like a URLRequest without any structuring or destructuring needed to parse the results into AS3-friendly data types.
It would be amazing if only the RESTful kinds of NC connections and calls could work again through Ruffle, I think it might be all that's stopping my old games from running!
As a Ruffle developer who in my day job maintains some Flash-based websites, I'll note from experience that AMF serialization/deserialization in Ruffle has some definite issues, so that may be the issue for your games (the websites I maintain use https://metacpan.org/pod/AMF::Perl). See https://github.com/ruffle-rs/ruffle/issues?q=is:issue+state:....
I am jolted, nearly shocked, that in 2026 you have to maintain some Flash-based websites. Can you share?
As far as I've seen, Ruffle never even makes the call out to the server... so at this point I don't think it's a serialization issue although some of what's in that list could potentially cause problems. The Ruffle compatability docs still say that NetConnection has 90% coverage... except for the .connect() call itself, which kinda makes me wonder why bother covering it at all?
That documentation, for stubs, can be somewhat misleading. It just looks for the presence of an avm2_stub_method function call anywhere in the method, which may mean a method that's entirely a stub, or as is the case for NetConnection.connect, a method that is stubbed under specific conditions. NetConnection.connect is stubbed for specifically non-null, non-http commands (generally this is RMTP/RTMFP). See https://github.com/ruffle-rs/ruffle/blob/df11c2206bc6be0a329...
Also a Ruffle developer here, though less involved with the actual emulation and more with the JS for browser integration. I'll add to Adrian's response that instructions for setting up the websockify proxy (by the webmaster of the site) can be found here: https://github.com/ruffle-rs/ruffle/wiki/Frequently-Asked-Qu....
I suspect this is why one of my most favourite games of that era, Attak by JohnnyTwoShoes[0], does not make it past the loading screen
0: https://flashpointproject.github.io/flashpoint-database/sear...
I assume this is because web API's don't allow such connections.
However with the source code and server code it seems like a perfect task to set an AI agent (IE. Please patch out these API's and replace them with websockets on both client and server, then recompile)
I haven't gone through the games they have, but it makes sense to preserve ALL games for future generations. I'd even go so far as to offer games in an original variant; but also in modified variants, aka one being mostly focused on fixing bugs and doing modest upgrades (simplifying playability and SLIGHT improvements to the user interface), as well as slightly more aggressive upgrades, including UI, making them visually beautiful but retaining the spirit of the game. For instance, of all the simcities, the first one was IMO the best. The graphics lateron were much better of course, but playability wise I found the first one the most addictive; similar with colonization, first one was quite good. The last 3 releases had better graphics, but playability wise it felt like 100 steps back.
What I would love to see is that we retain old flash games too. HTML5 was promoted as "making flash obsolete", but they never fulfilled that promise. Many flash-games simply died and there was no replacement in HTML; similar with some java applet games. Or at the least I could not find a replacement (that's also a problem - with google search having become nearly useless, finding things is super-hard; and of course old websites tend to die, that is also a problem).
Just an aside, but I've recently taken up Age of Empires 2: Definitive Edition. To a large extent it's the same game I played as a kid. But with lots of quality-of-life improvements. Like better queuing of actions. But also modernized with better graphics, animations, matchmaking where the original servers of course are gone etc. But under the hood, it's the same engine and game, not just a reimplementation that's similar.
Great way of reviving a game. Because it's those small things that make it hard to go back to older games. Old graphics I can live with, but it often looks weird if made for crt. And the interface breaking on bigger screens etc is hard. But mainly it's often the nicer mechanics and QoL things one miss.
I think the interface breaking on newer screens is a key point - AOE2 definite edition looks great on a 4k screen now, but when I tried one of the other variants beforehand the UI didn't scale properly and so all the elements were tiny to the point of being unplayable without adjusting the resolution
I play lots of old games, but the thing I have the hardest time with is playing in 4:3 on a 16:9 monitor. I didn't6 know why... Maybe I need to try an actual 4:3 monitor and see how I feel.
Have you tried 0ad by any chance?
Open source flash player emulator: https://ruffle.rs/
Interesting, they have one of my games[0], but somehow managed to misspell my username. There must have been a manual process, or even OCR somewhere?
0: https://flashpointproject.github.io/flashpoint-database/sear...
Probably just scraped -- you are listed as "Mollerjoi" on https://flashgames.cx/game/supermax and on http://play.ee1234.com/en/all/9a9ead34-cfd7-43a2-b0be-0c2b75... -- interestingly on the "Source" you're not even credited (https://www.y8.com/games/supermax)
Yes, it's all user-curated:
I never liked the idea of running Flash inside the web browser, but a single file .swf game format is almost as good as any ROM game dump.
Some games didn't mind running locally from an .swf file, but some others had a "URL protection", presumably to prevent people from embedding their flash games at other websites, and they didn't make an exception for localhost.
Long time ago I've fixed hundreds of such flash games using RABCDAsm and made them work in standalone Flash Player.
Took a brief look at Flashpoint Archive, it seems their way to fix URL check is to spin up a web server to present an address the game expects.
As a bit of background, flash games were often sponsored. The bigger websites would pay hundreds to thousands of dollars to put their (clickable) logo in the beginning of a game, and sometimes would also have either timed or permanent exclusivity to their website.
when archiving, it's preferable to leave the files in the state you originally found them
Is there a standard patch format for this use case, where you could keep the original files and have a second file that patches them at load time to make them runnable?
As Flash files are often compressed, a patch wouldn't be any smaller than having an original and a fixed copy. You'd have to invent a new patch format that operates on an uncompressed SWF.
What an amazing feeling to see my flash animations I made when I was 13 on this site. Great project! What a unique era that time on the internet was. Can hardly imagine what my life would be today had it not been for Flash.
Greatest flash game of all time (if you hate yourself)
https://flashpointproject.github.io/flashpoint-database/sear...
Or you can play it here too https://archive.org/details/homerunderby_en
Contributed to this project many moons ago, it's a truly awesome community effort. Highly recommend joining the discord to see what they've been up to.
I remember that years ago when the android phones started there was a app for flash games....I don't remember the name the app (and maybe this app does not run in current android phones)
Now thanks to https://f-droid.org/es/packages/rs.ruffle/ (it has high % compatibility but it is ok) another we have again a handful flash games in the phone.
There was a browser-streaming app that would play them remotely, can't remember what it was called.
There was an official plugin by Adobe on Android but it was awful, I remember watching them showcase it at a conference it was tragic even with their handpicked and simple example.
Then there was a transpiler that produced native apps from Flash, this was actually pretty good but Apple then banned transpiling which killed its viability entirely, six months later they un-banned transpiling but the damage was done.
But on the plus side, Apple got to monopolize transaction fees in Flash games like Farmville for nearly two decades!
I sometimes watch (in horror) as my nephew uses his Dad's phone to play whatever shallow, glossy muck he finds in the play store. He spends as much time swatting ads, refusing to upgrade to the pro version and hitting 'back' to get out of the play store than playing the games. It's amazing to watch a 6 year old develop muscle memory on these things. I see him swat away an ad almost before I've even noticed that it wasn't part of the game. He has effectively learned to be an ad / upgrade swatting machine. That is the game. Because he has absolutely no "sticking power" with any game. It's the play store / game / ad version of doomscrolling.
I've realised that giving him a reduced hand-picked library of games, with no ads, no automatic prompts to try another game, might be a good idea. These flash games are easily as good as most of the junk I see him play anyway.
I don't mean to sound like the old fart that I am, but you keep describing games in terms of "junk" and "as good as [junk]": maybe instead of giving a bundle of ad-free junk, none of which actually captures his attention and all of which amounts to "doomscrolling," you might consider finding something that does get his attention and occupies it more usefully.
Swift Playgrounds was (is?) ad-free and teaches programming. There are music studio apps that let him compose his own music. Plenty of apps let kids create things actively instead of just playing games. There are also all sorts of non-electronic activities that could occupy his time more fruitfully, but I'll skip over that.
> Swift Playgrounds was (is?) ad-free and teaches programming.
But, the kid wants to play games, not build something.
You can get entertained by both, but doing only one of those things is boring.
> Swift Playgrounds was (is?) ad-free and teaches programming. There are music studio apps that let ...
And that works until they have 1 conversation with other kids, in school or whatever.
Until they find that one other kid in school with the same interests. Then they find a lifelong friend, and they create things together.
I really like flashpoint but I wish there was a plugin for curation / recommendation. I have an index of games in my head from my childhood and so does my SO. Together we can play the games we know, but have little ability to discriminate between trash and gem. There are simply too many to reasonably pick at random. The old flash sites offered some curation.
I'm feel old.. My library of childhood games in my head are from the 80s, for the Spectrum. Dizzy, Jet Set Willy, Operation Wolf, R-Type, and original movie/game conversations for Robocop, Batman etc.
What's odd is the apparent chasm between those games and the earliest flash games, but really it's just a few years. That's just a trick of the mind. When you're a kid, turning into a young adult, a few short years feel like a lifetime. Man, it speeds up after that...
But there are curated lists.
A shame that they require a special software download. Do we not have any web-based Flash renderers yet? Seems like WASM should be able to do anything.
I thought the same. But it is necessary for the vast majority of games. It is not just an emulator for the .swf (and other formats) content you need, you often need bespoke proxy servers and server emulators to bypass some of the old DRM.
There's ruffle: https://ruffle.rs/
iirc support is generally good, but some versions of flash/actionscript have issues (at least last time I checked).
A bit sad not to find the whole collection of Larry Carlson's animations in there (only a few games.) Also, need full archive of Joe Cartoon!
I had the same thought, and similar disappointment when I couldn't find anything referencing Trogdor and his burninating ways.
Previous discussion https://news.ycombinator.com/item?id=38850697
I periodically check if Top Dog II (from teagames, now nonexistent) has been added as it was one of my favorite flash games, but it still isn't there. I admire the work and I really support preservation projects. Hope Top Dog II can be rescued one day, along with other teagames titles.
Can't tell if they have the entirety of Homestar Runner preserved, but I'm very glad to see they have some of it.
Homestar Runner isn't dead, and all the files are still around, so it should be back sometime within the next few years. https://homestarrunner.com/post-flash-update
Was pleasantly surprised to find two of my games preserved here. Was over twenty years ago that I submitted them!
I believe that the art of the past, created by humans before the advent of AI, deserves a reevaluation. It seems increasingly rare these days to find works that reflect pure human effort. In that sense, I believe the effort to preserve these games from the past is well worthwhile.
Kind of crazy that most of the huge mobile games draw roots to flash games from the decades prior.
Very disappointed that they don't have _Bembo's Zoo_
https://www.devicq.com/bembo-zoo/
https://soundeffects.fandom.com/wiki/Bembo%27s_Zoo_(Websites...
https://web.archive.org/web/20000816172409/http://www.bembos...
If there's a way to get it added, I'd be very glad of that (or if someone could figure out how to re-create it for the modern web)
If you like RPGs, you gotta play Nekogame's "Parameters"! It's in there.
If you’re interested in legal torrenting but GNU/Linux images are too small for you, this is for you.
Wouldn’t this still be technically a copyright violation? It seems unlikely this is all public domain stuff.
Yes, but you'd have trouble finding someone who has standing and desire to sue.
Can anyone recommend sone Flash games to try out?
Attak by JohnnyTwoShoes[0,1], is one of the standout games from that era: super-saiyan type battles using an underlying physics/ragdoll engine with fully destructible buildings and terrain.
Half the strategy was digging out an underground bunker to shield yourself from your enemy's 500m vertical drop attacks. It was an incredible feat of programming for the time.
The game unfortunately is in that final tiny percentage of AS3 games with missing features and thus does not work with ruffle yet, I suspect because the game was so cutting edge.
0: https://flashpointproject.github.io/flashpoint-database/sear...
Some of the recommendations here are good classics, but if you're looking for some REALLY good ones:
* Sonny 2 (really in-depth turn based RPG)
* Fancy Pants Adventures 1-3 (2D platformer)
* Larry and the Gnomes (Beat 'em up)
* Interactive Buddy 2 (Fun simulator toy)
* Final Ninja Zero (2D platformer)
* Bubble Tanks 2 (Twinstick shooter)
These really take me back...
Somebody already mentioned the Winnie's Homerun Derby. I also have fond memories of playing:
* N - https://archive.org/details/nv-12
* Ball Revamped - https://archive.org/details/1100_ballrevampedv2
* Mind Fcuk - https://archive.org/details/tf_20210127
* World's hardest game - https://archive.org/details/the-worlds-hardest-game_202310
* Canabalt - https://archive.org/details/canabalt_202012
* (If you're from one of the commonwealth countries) Stick Cricket - https://archive.org/details/stickcricket_flash
There's honestly a ton more, you can download the archive and go through the various community lists in there. I've spent a few evenings just having a few drinks and playing some old games! :D
It’s amazing how one tech, as imperfect as it may have been allowed so many types of creators to simply create.
It’s staggering to imagine that beginners, novices and experts all built these things in the same interface. No stack, build processes, or more.
no native linux support
Does this contain MOTAS (mystery of time and space) point and click game?
That game was fun and had some really nice music
it's legit if has this https://ooooooooo.ooo/?id=7de223e4-745d-6f7e-a209-3219931b4f...
That site (9o3o) is actually a web frontend for Flashpoint, so totally legit!
Thanks for the archive, but the site needs to be mobile-friendly.
Hi, website dev here. I admit the current website sucks in terms of usability (I designed it many years ago when I had no concept of responsive design). At the moment I'm working on a complete overhaul of the site that will look much nicer on mobile devices, among other things.
Most of the good flash games later turned into something you could buy on steam. Great example of this was mud and blood, which has a proper steam based continuation.
I wouldn't say most, but a good chunk yes.
You now hear Age of War soundtrack.
Nice. Glad to see someone is doing this. Everyone on HN hates on things like Flash, but they were genuinely innovative technologies that showed the world what was possible online. And the content was unmatched. The Internet today can’t compare.
I hate html, wasm, css, javascript as much as flash when they're used to waste my battery, cpu and ram with pointless effects when I'm browsing.
Love them when they're either getting out of the way of my content or used to make a great game.
I think people hate(d) working with it and the security flaws it had.
I don't think I've seen people hating the content created with it.
> Everyone on HN hates on things like Flash
That's clearly not true. Is that a rhetoric expression? Because I just wrote about Flash games being great - and I wasn't the only one doing so either.