Flash and Shockwave Games

Coming back in FULL FORCE

by 3V1L5H0073R

on 01/11/2022 - 00:11


WARNING: this article consists of a ridiculously long ramble.

leave now, before you get bored.

starting 3 days ago now, I've decided to FINALLY update my old AYAS Games page with new stuff. it's about time I did. there was a table in that page that had been there since the very beginning of this neocities site back in 2018, back when I was still trying to learn how to write CSS and HTML from those (amazing) Jake Wright videos.

The previous approach I took was to make a new page for each game, embedding the shockwave player and a link to a shockwave game, which was actually saved on my Google Drive and linked with a direct link! this approach actually FULLY worked but I knew all too well that this method was ugly, and I wanted a more clean, single page approach that I could use for all of my games. I just didn't at the time because I knew that I knew little af. Hell, the code for the pages were direct, really blindly done, copy-and-pastes of code I had found on other sites that still hosted shockwave games. This was at a time when Adobe had yet to kill the platform off, so these sites still didn't wall their games off with warnings of the end-of-life yet.

I also attempted to load flash games, but unfortunately the Google Drive's direct links did NOT actually point directly to the file. Instead, they contain an ID which points to your hosted file, which is fine, except Flash likes to know that it is directly reaching a Flash file, rather than being pointed to some next URL, so I straight-up could not get it to work (hence why there is only one flash game on that old table, and it does not even have a page). I just thought that I'm wasn't knowledgeable enough to fix this yet, but I hoped to be in the future. Like a student succumbing to being worse than the master.

And here in the future we are: cut to me today, 4 years later (which is a pretty damn long time), I'm adding all dem sexy Flash games and lemme tell ya, I've been having a total blast. Added 33 games just now, the vast majority being beautiful pieces of history in my head. However, this is an interested and unexpected future. Instead of embedding a Flash player, the games straight up work thanks to a pretty damn amazing plugin called Ruffle, an open-source Flash emulator (written in Rust, compiled to WASM).

That's right. Instead of needing to change browsers and install this old, deprecated plugin, we have gotten to the point where the games are now playable once again, as if Flash never died at all. Of course, as of rn, the support for most games is still kinda jank but for a lotta OLD stuff, it's BANG-ON, and it's only gonna improve until it's PERFECTION. This is pretty much the reason as to why I've been kinda addicted to adding all these games into the site. The second reason however, is one personal reason of my own: a challenge

The challenge for me is this: how much functionality can I squeeze out of a website service like Neocities.org, for free? The answer? An incredible amount. In this case, all of the games are not actually hosted on Neocities at all, but literally anywhere else like other Flash game sites and Archive.org (the best website on the internet, hands down, never leave us, please). This means that I can make a pretty dense site without ever actually having to save anything on it, further opening up space on my beautiful 1GB storage (of which I've only used 358.18kb so far).

Okay I'm going off-topic but the point is, Flash is now becoming pretty easily accessible again and I'd say in 2 years time, it'll be like it had never died at all, thanks to HTML5 plugins like Ruffle. There are other attempts at HTML5 Flash btw, like AwayFL, Lightspark and WAFlash (all of which you can see on this lovely article by ex-Flashpoint admin (NOOO), nosamu). that last one in particular is interesting af as that has, more or less, re-compiled Flash Player into a WASM?? or put Flash into a container before compiling it through Emscripten?? idek how tf that works, but the compatibility for that player is damn high. Like, I was able to play Commando 2 on it perfectly, whereas on Ruffle I'd just fall right through the floor. The ballache part of that though is the fact that the author of that one has no intentions of releasing it to anyone. Infact, he wants it to be proprietary and sold to others. Disgusting. I'm on Team Ruffle here... I still want access to that plugin though.

So that's lovely. The fact that Flash is getting this insane support from the community and one day, it'll be fully supported like nothing happened. That being said, Adobe could literally solve this issue by FOSS-ing Flash player or just RELEASING A HTML5 FLASH PLAYER?? ADOBE, TF U DOIN?? This also applies to Flash's older brother, Shockwave. That thing, has absolutely no emulation support for it whatsoever at this very moment. I did think "what if someone made an emulator for Shockwave, like Ruffle? Call it... shockWAve (get it? cuz WebAssembly?... sorry)... or Rush (like Rust + Shockwave)... or Shuffle (get it? cuz Ruffle but Shockwave so Shuff-- ok I'll stop)." That thought was immediately shot down when I saw TOMYSSHADOW (the knowledgeable legend of all things Shockwave and 3D Groove - I like to call him Dr Groove) make a comment on GitHub asking for this. The same can be said of other plugins too, like 3D Groove GX which I just mentioned.

That being said, a part of me still wonders "what if there's an alternate way, SOME WAY, we can get these programs to work on a browser with extra installation REGARDLESS." And for that answer, I still await to see what happens next. But with something like Ruffle existing, that future remains bright af. Like, what if someone gives the WAFlash treatment to Shockwave player? now, I don't know if I sounded like the stupidest guy in the world for saying that, but I mean come on! Is there ANY way?!

Like okay, what if we got a Windows emulator, like v86, and run Shockwave projector on that? Okay, that's a lotta overhead. It's definitely one way of going about things, but that is ugly. To reduce this down, how about a Wine fork compiled in WASM and run on a browser? That exists, right? Like Boxedwine or something? I know that is a bit slow too, but WHAT IF?! Ima keep thinkin bout this til kingdom come but yeah, that's where this thought train departs.

Here are some cool WebAssembly-based projects revolving around Windows apps. Little to no fakery here, you're seeing actual apps run on your browser, not always remakes.

some useful articles to note, regarding Shockwave.