Adobe Flash’s Gaming Legacy and My Efforts To Save It
blog.usejournal.com
blog.usejournal.com
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.
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 definitely want the Full version not Slim. The Slim version throws out some backwards compatibility stuff to decrease the filesize.
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.
There's some online tools that will do it for you, e.g.:
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.
Thank you.
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...
It doesn't, sorry for suggesting that.
Also the security sandbox of Javascript is one of the best, if not the best. So it cannot do anything it wants.
Online resources. So you cannot run them offline.
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.
"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
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?
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.
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.
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.
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.
That does not make sense. If they made no native function calls, they could not even display a window.
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...
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.
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.
And in case anyone is still in doubt about Flash's security woes - take a gander at the Flash CVE page at https://www.cvedetails.com/vulnerability-list/vendor_id-53/p.... There were FIVE CVSS 10 bugs (total and complete remote code execution with minimal user interaction, i.e. visit a malicious page and your computer is owned) published just two months ago. The author of Flashpoint is absolutely correct in his assessment that Flash will be overrun with security bugs as soon as it hits EOL in 2020.
http://mozilla.github.io/shumway/examples/racing/ (via aforementioned https://github.com/mozilla/shumway/ )
http://gordonjs.s3.amazonaws.com/trip.html (via https://github.com/tobytailor/gordon/wiki )
https://google-developers.appspot.com/swiffy/showcase/snake_... (not reading SWF directly but running converted script; via https://developers.google.com/swiffy/showcase/ )
And these days a WebAssembly build of Flash player would be an even better way, but it would depend on Adobe being willing to spend the time and the money to do it.
WebAssembly is probably a good target. However flash added a ton of apis in their latest versions. They were so ahead of the game before html5 before even became a thing.
I’m sure Adobe has patents/trademark on some of the things. Also Adobe Flex, that was a god send for rich internet applications. Their components were really well done and I still can’t fine equivalent things in this day and age.
I do strongly believe if Adobe had open sourced big chunks of things, Flash and a number of technologies would still be relevant today. Their big money makers were the IDE’s like Flash Studio, dreamweaver, photoshop etc. The formats and the runtimes should have been open from the get go.
Although it was the Ballmer era when most corporate CEOs truly believed OS was cancer.
The _format_ was open, but the implementation was not.
Excuse my ignorance: I never used Flash (I was already against abusing the browser for things like that so I only built desktop apps with Delphi etc) but I do use Haxe(with OpenFL) now; is that not supposed to implement those APIs?
With Flash, I don't know that we'll ever have an open source desktop player to allow preserving these games and allowing them to play on all future platforms. You might as well ask someone to write a complete implementation of Java, with no access to the source code, for free. Eventually we'll probably be stuck with old virtualized editions of windows running old versions of Flash. Let alone the possibility of leaving x86 behind completely.
But that is irrelevant. The reason it was killed is because it was mostly used for video and it was really awful at that. Especially on mobile.
My main experience was with Line Rider. I didn't create it, but I became involved in the community and started making tweaked versions with tools that made it easier to create tracks (as opposed to versions that let you do things like change the physics or the rider).
Every line you added to a track caused a new MovieClip to be added to the scene that had a line drawn in it. By the time you had around 3,000 lines or so you'd start to get reduced framerates. 3,000 lines sounds like a lot, but is tiny when you consider tracks that have accompanying artwork.
A few years ago, we released a JS + WebGL rewrite of Line Rider that has a physics engine that's bug-for-bug compatible with the original (you can play it at https://www.linerider.com/ if you're interested - sorry if that's too self promotional). With access to WebGL and a massively faster ECMAScript runtime, the JS version runs multiple orders of magnitude faster than the original Flash version.
It's now possible to work with tracks that have hundreds of thousands of lines without experiencing frame rate drops as opposed to just a few thousand lines. So as for web platform tech underperforming from a runtime point of view, I disagree.
The problem is that all the ingredients are there to make something great, but the developer effort required is monumental in comparison to how fast it was to make something work with Flash Pro.
It really was an odd, "software is brutal" history in that in a very short timeframe Flash progressed from being the domain of hobbyist game makers, animators and web site designers into the core client technology of every web site using audio and video. And then a few years after that, it was cut off from expanding to mobile and was strangled on the web through expansion of HTML.
Case Studies:
https://haxe.org/blog/tivo-using-haxe-to-improve-user-experi...
https://venturebeat.com/2017/12/12/flowplay-overhauls-vegas-...
(Not one mention in TFA of http://homestarrunner.com, for shame)
Adobe was a very bad platform steward regardless, but 5 years from now it may turn out that Win32 was a better choice in terms of developer investment/maintenance than HTML5 for many developers. iOS has had an incredible upkeep cost for indie game developers who released products on it early on, and we've seen many developers opt to pull games from the store instead of spend time+money updating them.
Hopefully WebAssembly helps fix things here by providing a much cleaner compile target (with well-defined APIs) that has good performance. Moving to HTML5 had a major performance hit for people previously using Flash or Unity's plugin but most of that hit is gone once you use wasm.
You could avoid being tied to proprietary platforms now but there is a good chance you're just leaving the market to someone else.
... as in Windows, MacOS (to a much less extend), PlayStation, XBox, Switch (and/or other Nintendo platform)?
This warning makes no sense.
I was thinking in term of player base size. But now that I think about it more, player base size makes no difference in the context of this conversation.
Mojave is the last version of OSX to support 32 bit applications ( https://appleinsider.com/articles/18/06/05/mojave-is-apples-... )
---
Essentially, all software has a end of life. I'll grant that Apple has done work to maintain their software across major processor and operating system changes, but at some point that support is dropped.
macOS being unix-based doesn't make it less proprietary. z/OS is Unix certified and proprietary as balls.
The bare core of macOS (Darwin) is open source, but pretty much everything people identify with macOS is proprietary code built on top of Darwin. You used to be able to get standalone distributions of Darwin (maybe you still can?) that people built from Apple's source and they were almost completely unrecognizable.
For all the openness of web standards, let's remember that browsers are proprietary.
If a browser vendor decide to do something (whatever it is, good or bad), there is pretty much nothing users or developers can do, we saw it with IE6 for a long time, we now see it with Google Chrome too.
AFAIK browser plugins were considered part of those web standards (see [0] and [1])
[0]: https://html.spec.whatwg.org/multipage/infrastructure.html#p...
[1]: https://html.spec.whatwg.org/multipage/system-state.html#plu...
- Load the game into a real web browser and let it run for a bit
- Intercept all network requests with a caching proxy
- Save the external resources loaded to disk
Would that help? The process could be automated, though only for games which load all their resources without human interaction. But then, clicking through a few screens to get a game to start is a much less time- and knowledge-intensive task per game than reverse-engineering the source code of each, at least to get as much data backed up in some state as possible before it disappears.
https://www.cockos.com/assniffer/
While you need to play through the entire game to be sure you have all of it, this is a big time save, though with the downside it doesn't work over HTTPS. It's also possible to use a Fiddler script to accomplish something similar, which defeats the HTTPS problem.
There’s eventually going to be one question on the lips of everyone involved, though: is this legal? And the only real answer is nobody knows and really, nobody should care.
I can understand having an urge to preserve something that is in danger of decaying past recovery — I feel the same way when I see an interesting building or a classic airplane rotting away somewhere — but the usual course of action is to choose what you find most worth saving, purchase it from the owner, and restore your new possession. Any other course isn't legal, in most cases, and it isn't here either, in most cases. I care about that, and some of the game creators will care about it too.
(Edit: soften what could be read as an outright accusation.)
The emergency is very far from over, they’ve only just begun the salvaging operation.
Today's pirates are tomorrow's historians.
It's there to limit publishing and distribution to only those with the legal document saying they can. It's more of a anti-right. In fact historically it was created for the purpose of censorship.
In cases like this disregarding one isn't equivalent to infringing on the other.
This is actually a place where I differ with BlueMaxima (BlueMaxima is Flashpoint's creator and the writer of the article linked here.) Personally, if I were running the project I would remove a game if the original creator asked, simply out of respect for them.
However, I think that most of the staff involved with Flashpoint would disagree with me here. It is more of a "for now, just go go go and we'll worry about organizing everything and dealing with the repercussions later." There's a lot of Flash games out there to say the least and Flash being discontinued in 2020 leaves us limited time if we hope to save as much as possible.
Especially in situations where a work is entirely digital, and preserving the work does absolutely no harm to the owner of said work.
I believe that the risk of discouraging innovators who would be upset at the idea of their works existing in some form, years after their relevance is a reasonable trade off in comparison to the value that the sum collection of these works could provide to the future.
Especially when you consider that every innovator working today is building off of the preserved knowledge of past generations who's works have similarly fallen into the public domain. Disney didn't have to cut a check to Shakespeare Holdings, LLC when they made The Lion King; for example.
That's not to say that I am an anti-IP absolutist in this regard. I think that the ideas of copyrights and patents aren't inherently bad. I think it makes pragmatic sense to offer a temporary monopoly on works. I just think that the balance point between serving the creator and serving society needs to be evaluated.
Edit: missing word
What happens in 5 years when Sony turns off their PS3 servers? And what happens in 10 years when most of the hard drives in those PS3s need replacing?