Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Perhaps worse than the death of Flash was the death of Shockwave. I feel like so many Shockwave games I played back in the day are completely gone with no reference to them on the modern internet. Today, you can install some version of Flash on most operating systems, but I don't think there's any modern standalone Shockwave player and I could only get the plugin to work in Safari on macOS. Chrome and Firefox don't even run those types of plugins anymore.

There's one particular Shockwave game that I was recently able to recover from the depths of the Wayback Machine, which was a game from Disney for the Inspector Gadget movie; terrible film, but their website had this nifty little game that wasn't necessarily difficult but was addicting in that I wanted to see just how far I could go with it. For years I thought it was gone for good, and was glad to finally see it again after I lost it 15+ years ago.

Here it is in all its 1999 glory: https://web.archive.org/web/20031017000018/http://www.disney...

I always liked it in part because I don't think I've seen a similar game. It's kind of like if you took the random shapes part of Tetris and added a "jigsaw puzzle" element.



What was the difference between Flash, Shockwave, and Shockwave Flash (I think the last one was a thing!)?


When asking the difference between Shockwave and Flash, you'll often get the answer that they're two products that have nothing to do with each other. That is almost true, but not entirely true.

Director was originally meant for creating CD-ROM games. However, in the early 90's, it began finding a new home on the web. "Shockwave" was Macromedia's term which meant "compressed for the web." The first entry in the Shockwave line of products was Shockwave Director Player - so called because it could play Director Movies which had been compressed for the web. Because it was, at the time, the first and only product in the Shockwave line of products, Shockwave Director Player was often shortened to just "Shockwave."

Enter Flash. Again, Macromedia wanted Flash Movies to be able to be compressed so they could be downloaded quickly over the web - so they made the Shockwave Flash Player plugin, so called because it could play Flash Movies which had been compressed for the web. So there was Shockwave Director Player, to play compressed Director Movies, and Shockwave Flash Player, to play compressed Flash Movies.

The problem is, by this point, everyone already knew Shockwave Director Player as just "Shockwave." To those uninformed, it seemed that there was now both a Shockwave AND a Shockwave Flash. Shockwave Flash Player was more often referred to as just Flash, to avoid confusion with what was already being referred to as Shockwave.

So when we say Shockwave, we're referring to the first word in Shockwave Director Player, but when we say Flash, we're referring to the second word in Shockwave Flash Player...

Or at least, this was the case until Adobe acquired these names from Macromedia, at which point they just decided to rename the plugins to what they were being popularly referred to as. Now what was Shockwave Director Player is officially just called Shockwave, and what was Shockwave Flash Player is officially just called Flash. In order to further undo the confusion, SWF was changed to stand for Small Web Files instead of ShockWave Flash.


Great summary!

As for useless trivia, Director actually even predates it's main use of producing multimedia CD-ROMs. When it was still a MacroMind product, it was used for stuff like the "getting started" floppy disk for early Macs (the tutorial where you learned how to use a mouse by feeding fish and stuff)

http://www.action-packed.net/q-design/examples/Instructional...


Right, I suppose it's not fair to say it was originally meant for "creating CD-ROM games," that's an oversimplification. It's more like it was meant as a way to make applications without needing to learn a more advanced language like C++.


Wow, I think I was just over 13 years old when I got my hands on Macromedia Studio MX. I knew the difference between Shockwave and Flash, but I never knew why the authoring program for Flash was called Flash, and the one for "Shockwave" was called Director.

Thank you.


As was I: gotoAndPlay is still my favourite function :)


Thank you for an extremely detailed answer to a question that I only just realized I’ve been curious about for two decades!


Nostalgia overload, thanks for sharing!


Shockwave and Flash are two distinct technologies to achieve essentially the same thing. At one point either Macromedia or Adobe conflated them by referring to Flash as "Shockwave Flash", but Shockwave was its own thing. Flash's scripting language was ActionScript and Shockwave had a language called Lingo.

In fact, I totally forgot about Lingo until just now. But it actually looks pretty cool:

https://en.wikipedia.org/wiki/Lingo_(programming_language)

I̶f̶ ̶m̶e̶m̶o̶r̶y̶ ̶s̶e̶r̶v̶e̶s̶ ̶m̶e̶ ̶r̶i̶g̶h̶t̶,̶ ̶I̶ ̶t̶h̶i̶n̶k̶ ̶t̶h̶a̶t̶ ̶L̶i̶n̶g̶o̶ ̶a̶c̶t̶u̶a̶l̶l̶y̶ ̶c̶o̶m̶p̶i̶l̶e̶d̶ ̶d̶o̶w̶n̶ ̶t̶o̶ ̶a̶ ̶b̶y̶t̶e̶c̶o̶d̶e̶,̶ ̶w̶h̶e̶r̶e̶a̶s̶ ̶I̶ ̶t̶h̶i̶n̶k̶ ̶t̶h̶a̶t̶ ̶A̶c̶t̶i̶o̶n̶S̶c̶r̶i̶p̶t̶ ̶w̶a̶s̶ ̶a̶l̶w̶a̶y̶s̶ ̶i̶n̶t̶e̶r̶p̶r̶e̶t̶e̶d̶.̶ ̶ ̶I̶ ̶m̶i̶g̶h̶t̶ ̶b̶e̶ ̶w̶r̶o̶n̶g̶ ̶o̶n̶ ̶t̶h̶a̶t̶,̶ ̶t̶h̶o̶u̶g̶h̶.̶

Flash won over Shockwave because Flash Studio was more popular with animators and game creators than Macromedia Director.


Actionscript was compiled to bytecode since version 1.


Whoa how do you do strikeout?


https://en.m.wikipedia.org/wiki/Strikethrough#Unicode

There's some online tools that will do it for you, e.g.:

https://yaytext.com/strike/


I learned to code between lingo and the director ide. it was great fun, though being able to change your inheritance tree on the fly is... interesting


Both Lingo and ActionScript compile to bytecode.


https://get.adobe.com/shockwave/ is allegedly still a thing that exists and that you can install if you have Windows. It says it works on Windows 7 and 8, IE, and Firefox. My guess is that they haven't updated that, and it'll no longer work on Firefox since Quantum, but it's likely some flavor of IE will work with you there. And my guess is it'll work on Windows 10 with IE, since most things that work on 8 work fine on 10.


Actually, it's still being updated, but only on Windows. Director (the authoring tool used to create Shockwave Movies) was discontinued, but Shockwave was not.


I wonder how it feels to work updates for software that nobody is using and has no future. That's got to suck.


Come and join the multitudes working in big corporate legacy application support, where the applications all have <100 users and are scheduled to be replaced imminently (and have been for the last 10 years).


Interesting, I don't play games, but I'm all for preserving stuff.

It seems that if you change your user agent you can get the links.

--------------------------------------

Shockwave 12.3.4.204 Windows Full Other Browsers

https://get.adobe.com/shockwave/download/?installer=Shockwav...

Shockwave 12.2.5.195 Full (OS X 10.6 and above)

https://get.adobe.com/shockwave/download/?installer=Shockwav...

Shockwave Player 10 for Mac PPC

https://get.adobe.com/shockwave/download/?installer=Shockwav...


You don't need to change your user agent. Just click the "Need Shockwave for a different computer?" button on that page.

You definitely want the Full version not Slim. The Slim version throws out some backwards compatibility stuff to decrease the filesize.


It probably still works with the Firefox fork Pale Moon.


Can confirm it does!


Safari will stop loading NPAPI plugins in macOS Mojave.


Latest standalone player: https://fpdownload.macromedia.com/pub/labs/flashruntimes/fla...

No clue how to find that link on official adobe.com website :/ I had to googlefu it just so my Mum can play some old majong games.



Internet Explorer still runs Shockwave. It's what I always used for Shockwave, so that hasn't changed.


Yes. Alternatively, you can use Pale Moon which is an actively maintained fork of Firefox that never got rid of NPAPI. Or, if you don't want to leave the comfort of your preferred browser, you can use the IETab extension.

Note that plugins do not work in Microsoft Edge. It has to be Internet Explorer. Edge didn't replace IE, you can still find IE by searching for Internet Explorer in the Windows 10 start menu.


It would be cool for someone to archive some of the early Java Applets, they are even more endangered.


Unfortunately, Java is a bit of an archival nightmare. Java Applets can do pretty much anything they want, they aren't consistent in that sense. Unlike Flash you can't just run them offline in a Projector, and the code structure of an applet is different from that of a normal Java app. This is on top of being unable to play Java games without getting a tonne of (well deserved) security warnings (unless you want to pay Oracle $100 per month for a signature.) Java in the browser was just a bad idea all around.


I understand that the implementation of Java in the browser was bad, but why do you think the idea of Java in the browser was bad?


Because it gives the Java programmer too much power in an environment that should be safe. For example there are applets like AppEmbed that can run an EXE in the browser. That's just insane. Flash and Shockwave in contrast are limited in that sense, you are constrained to doing what you are able to accomplish with ActionScript or Lingo (or at least, that is intended to be the case.) Flash is insecure because it's buggy, Java is insecure because it's buggy AND because it's intended to work in ways you'd think are obviously insecure!


Applets, unless especially privileged by the user, run in a sandbox that prevent them from interacting with the local OS [1]. They certainly cannot run EXEs, again, unless the user consents.

In theory the Applet sandbox works really well. It's an extremely secure environment that's been deployed widely in the most demanding conditions -- think banks and governments. In practice the Applet security model encountered the following problems:

(1) Users are really, really dumb. They are happy to grant escalated privileges to the some 3D farming game they stumbled upon on the internet. Users will literally click on anything you tell them to. [2]

(2) Getting users to upgrade Java was terribly difficult. This meant when a real security flaw was discovered it might hang around for years and years and years. There was no mechanism to force users to upgrade Java or to actively disable Java installations proven insecure.

[1] https://docs.oracle.com/javase/tutorial/deployment/applet/se...

[2] https://www.trustedsec.com/2013/04/java-7-update-21-applet-s...


Maybe I'm confused because it's only relatively recently that I started again to take Java seriously, but isn't that precisely an example of a domain the Java security manager addresses? Again, I am well aware of the implementation bugs that have existed, and I don't know offhand if the security manager was part of Java's initial design or was added later, but I'm still confused as to why your ire's directed at the general concept of Java in the browser, rather than the specifically flawed implementations.


There's just no safe way to do what Java applets enabled (arbitrary code execution), because of the massive attack surface. It's one reason why NPAPI is dead.


Java applets never enabled arbitrary code execution. (Where do people even come up with this stuff?) Spend five minutes on Google and you can learn about the Applet sandbox which prevented Applets from doing most anything but draw to a section of the browser window and connect back to their origin server (not unlike Javascript).


Yeah, what do you think the applet is run on? The JVM. That's the attack surface. And securing that went so well that everybody uses Java applets everywhere and applets are allowed by default (hint: securing it is impossible and they're disabled by default because of it).


Unfortunately Javascript-infested websites are a bit of an archival nightmare. Javascript can do pretty much anything it wants, it isn't consistent in that sense. You can't run them offline. Javascript in the browser is just a bad idea all around.


You can generally "Save As..." and they tend to work just fine. Like any code which has network access, they can be dependent on various resources. I sometimes run a downloaded file through an insecure chrome instance (--disable-web-security and a unique --user-data-dir) with a catch-all service-worker. That'd probably not work with applets as they make their requests outside the browser AFAIK.

Also the security sandbox of Javascript is one of the best, if not the best. So it cannot do anything it wants.


> Like any code which has network access, they can be dependent on various resources.

Online resources. So you cannot run them offline.


Well sorry you can't use some chat app without internet connection, our bad.


Not everything is a chat application. But even a chat application can and should partially work without an internet connection: Reading old messages and composing new ones can work offline.


That has nothing to do with Javascript. If you use canonical, cacheable URIs for your requests, my method above works fine.

In my day job, I'm working on a CRM and sales system that is 100% web based and does work offline and is even offline-first (I love you Germany, but your mobile network sucks).

There may be many other problems with it but offline is mostly a solved problem in the web world.


Quick experiment: In a new Firefox profile, I opened a couple of websites [1]. Then I went offline and tried to load them again. Every time I just got the default "server not found" page of Firefox.

"Offline" is no more solved "not hijacking scrolling", "linkable URLs" and "not re-inventing <a href> badly".

[1]https://news.ycombinator.com/, https://www.google.com/, https://en.wikipedia.org, https://www.reddit.com/, https://www.nytimes.com


Did you try right clicking and choosing "Save as..."?

As I said before, it's a 5-minute thing to get started with service-workers. Web-sites can use that and then you don't even need to save. There is this great offline library, fellow developers! Use it! What other platform gives you such easy-to-use offline capabilities?

> "not hijacking scrolling", "linkable URLs" and "not re-inventing <a href> badly"

You are dealing with a Turing-complete language here. Navigation situation is still way better than the applets.

What is the alternative you are supporting instead the current situation?


> As I said before, it's a 5-minute thing to get started with service-workers. Web-sites can use that and then you don't even need to save.

I don't care if websites can use that if they don't.

> You are dealing with a Turing-complete language here.

That's the fucking problem.

> What is the alternative you are supporting instead the current situation?

Using a proper application platform instead of a pile of hacks on top of the web. Without that pile of hacks, the web would actually be usable because publishers would not be able to break the UX.


> I don't care if websites can use that if they don't.

It's new, and you can still save pages. Browsers will do their best to include all resources they depend as well.

> Using a proper application platform instead

Which one? Is there any cross-platform one with consistent design and UX? I don't think so.


> It's new, and you can still save pages

No, I can't. That does not work reliably.

> Browsers will do their best

In other words, they will fail.

> Which one? Is there any cross-platform one with consistent design and UX? I don't think so.

Frankly, even Electron applications are better than making web pages that behave incorrectly.


> No, I can't. That does not work reliably.

In all your given examples, it does.

> Frankly, even Electron applications are better than making web pages that behave incorrectly.

You know that 90% of Electron apps do not have any native function calls and are just wrappers on top of a web-app?

I just don't understand what you are criticizing anymore.


> You know that 90% of Electron apps do not have any native function calls

That does not make sense. If they made no native function calls, they could not even display a window.


I don't see how this contradicts my point at all. This project is about saving Flash games, not Javascript.


> I don't see how this contradicts my point at all.

It doesn't, sorry for suggesting that.


haha oh man homage to macromedia




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: