Post by dogpolygonrt66 on Mar 11, 2017 8:38:04 GMT
How do we approach Archival of flash games? There are so many of them that could be gone in a second, and there doesn't seem to be a very direct way of saving them. Games like halo 2000(I believe that is its name) have barely any players and are very close to death, likely to be deleted off the face of the Internet. Has the wiki done anything in this field yet? Any tips if yes?
On Firefox, press Ctrl+Shift+Q and under the Flash tab you'll see all the .swf file that your browser is downloading as you play the game. You can right-click the files to get the url and then save them. Some games are one single .swf file, while some are multiple files with a specific file structure you'll have to recreate manually.
On Firefox, press Ctrl+Shift+Q and under the Flash tab you'll see all the .swf file that your browser is downloading as you play the game. You can right-click the files to get the url and then save them. Some games are one single .swf file, while some are multiple files with a specific file structure you'll have to recreate manually.
So from that, can they be run straight from shockwave offline?
videotapes recommendation is a good one, but I'd like to elaborate a little more.
While saving Flash games, you'll learn a lot of the typical conventions they often use to load faster, save data, etc.
My first recommendation is, don't "go to the Flash tab" as per what videotapes said - a lot of games using Flash or other plugins are not entirely self contained and need to download components, such as mp3s for the music etc. from other URLs on the web. Saving games using only the Flash tab will cause you to miss these extra files. Not to mention, there are also other plugins such as Shockwave, and the file extensions may be missed if you use any sort of filter.
Here is a quick list of some file extensions to look out for. Maybe some others could be contributed:
.swf, .fla - Flash Files, the most common export format used by Adobe Flash on the web (the SWF stands for Small Web Files, not ShockWave Flash as you may think, as Shockwave and Flash are two entirely different products) .dir, .dxr, .dcr - Director Files, which contain Adobe Shockwave movies .w32, .carb, .ppc, .x32 - Xtra Files, often these contain components needed for Director Files to work .swa, .w3d - Shockwave Audio and Shockwave 3D files, often used as assets in Shockwave games .xml, .txt - plaintext files, these files often contain miscellaneous data such as the layout of levels or settings .flv, .wav, .mp3 - video/audio files, commonly used by Flash games externally .vmo, .nmo, .mpbin - 3dvia Player files, used by the notoriously difficult to set up Virtools/3D Life Player .grv - 3D Groove files, contain scripts, models and sounds for old 3D Groove games
Now, off the top of my head, there are three very common conventions you will run into trying to get these games to run offline.
1. External Files
Often, Flash games will try and load parts of the game as you play through them. This saves the initial loading time but poses some issues. The first issue is that there is a distinct possibility you will have to complete the entire game just to back up all the files required for it. The second has to do with how the files are loaded. There are typically two ways to load a URL: absolutely and relatively.
Absolutely means the Flash game will always look for external components on a particular site. If you had a game located at example.com/game.swf which tries to load music from example.com/music.mp3 , absolute loading means the Flash game will always look for the music at example.com/music.mp3 . This is a problem because if example.com goes down, even if you have music.mp3 backed up the game will be unable to load it because it's still looking for it at example.com . The general way to fix this is to use XAMPP in combination with the Windows hosts file in order to "spoof" example.com still being online. Users generally don't like installing XAMPP just to play a Flash game, so if you can, try finding a more creative approach. You may be able to use JPEXS, a free Flash decompiler, to edit the URL things are loaded from.
Relatively means the Flash game will look for external components on the same server the game is hosted on. This does make the game easier to back up, but this can pose an issue. Some plugins prevent reading files on your local hard drive. This is for security reasons, for example to prevent Flash from uploading personal files. However, this means if you download the game's files to your hard drive and it loads URLs relatively, it might not work for this security reason. To get around this, all you need to do is upload the Flash game to any website of your own - or again, use XAMPP.
2. Loaders
In the search for the Trapped in Hyperspace game, I've probably repeated myself about loaders around a dozen times. The annoying thing about loaders is that they can initially appear to be found media, but in reality they are not - so you'll often get a tonne of people claiming they've found a long lost Flash game, but it's just a loader. So let me explain what they are.
Loaders are a lot like a bit.ly URL - they're just a URL redirect. They don't work unless the place it redirects to is still up. The purpose of a loader is to display a simple loading screen while the real game takes a while to download. For example, in the case of Trapped in Hyperspace, there is a loader which displays a Cartoon Network logo. The idea is to display the CN logo while the game is downloading. This way, users aren't faced with a blank white screen while the game hasn't loaded yet. Loaders themselves aren't useful - they contain no game content, they only attempt to load the game content. If the game content is gone, a loader is of no assistance.
In the case of Trapped in Hyperspace, the Wayback Machine managed to capture the loader for the game, a file called toon.dcr , but not the game content itself, a file called toon0.dcr . I've had some people report that they've found the game and present toon.dcr to me, but without toon0.dcr it is useless. I've also been asked if it's possible to recreate toon0.dcr so the game will load, but this is a misunderstanding of what a loader does - recreating toon0.dcr would mean recreating the whole game from scratch, defeating the purpose of finding the lost media, because toon0.dcr would contain all the game content such as scripts, models, textures etc.
If a playable file such as a .swf or .dcr is less than 20 KB, chances are it is nothing more than a loader and is utterly useless to a search.
3. Leech Protection
One of the most annoying things you'll deal with trying to run Flash games offline is Leech Protection. This comes in the form of a message along the lines of "Sorry, you can't play this game here, but you can play it on our website!" which then stops the game. This is a style of DRM that prevents games from being played on any website but the one it was originally hosted on. The reason a game creator might want to do this is if they always want people to be on the latest update or, more importantly, if they don't want other people to mooch off their server by hotlinking the game, costing the game creator ad revenue. However, if a Flash game is going to go down soon, it's safe to say this is no longer a concern for the original creator - so how does one get around Leech Protection?
Well, the annoying thing about this is that there is no one size fits all solution. For Flash games, you can usually use the aforementioned JPEXS decompiler to edit the script that normally performs the leech protection. For other games, however, with no known method of editing their code, you just have to be crafty. You can sometimes get away with doing the same thing you can do to fix absolute URL loading, which is using XAMPP and the Windows' hosts file. However, sometimes the game code is even more clever than that, and will only validate after a receiving a code from a PHP file on the server or something similar. This overkill leech protection is what Robotduck games use. These are very specialized cases and will require just a lot of trial and error guesswork to see what the game wants - for the time being.
In other cases, you can simply skip the frames that do the leech protection. In you have Adobe Director, you can use Lingo's go function to load a movie and skip to a particular frame. This is how I managed to get around Ezone.com's fairly relaxed leech protection.
Most of the time, leech protection automatically disables itself if you download the game to your hard drive for the sake of archival. This means that although you can't play the Flash game online, you can still play it offline. There are also games where leech protection will be disabled if you try playing them in Shockmachine.
Ultimately getting around leech protection will require observation, trial by fire, and trying to find a weak spot in the protection.
I could probably go into even more detail, but I thought I'd share some of my experiences with backing up Flash games. Sometimes you don't have to worry about any of these things, which is great when it happens, but I guarantee if you plan on backing up a lot of Flash games you'll run into these issues.
Last Edit: Apr 10, 2017 4:34:34 GMT by tomysshadow