Is there a way to play a SWF/Flash game that required a server login/connection?

I found the files (all assets, all SWF files and source code) for an old Multiplayer/MMO game (Ninja Saga) I used to play on Facebook years and years ago.

Is there a way for me to play the game locally since the game used to require an account to play with?

I tried running it with JPEXS Flash decompiler and the game did start up but it would get stuck on a loading screen loop right before the login page. I’m assuming that I’d have to set up a local server or change the code (currently I’m looking into that) but just wanted to ask if there is an easier way to do this.


Solution 1:

You may want to look into Flashpoint Infinity. Make sure you choose the Infinity option, as the Ultimate version is a full 500+GB archive of flash/SWF/java games. Flashpoint can get past the sorts of network issues you're encountering by running a local Apache server automatically, without connecting it to the Internet in any way, so there's little risk of the problems that Apache can have; it does this most famously for Miniclip games, but it may work for the game you're looking for.

It's also possible the archive doesn't contain your game, but with the size of their archive, there is a chance!

Solution 2:

If the game was multiplayer (had any sort of interaction between players) without requiring players to setup the networking aspects, it would technically have to rely on a server in some way.

You could look into the game's code and see what it does. It'll likely setup some kind of connection, and assume that it always succeeds at some point, as it would be run in a browser that has access to the internet on the site located on a server that likely was also the game server at the same time, then of course hang as this server is defunct.

You would have to indeed setup the server yourself. If your source code includes the server source code you could run that on your local computer, then change the game's source (likely containing hardcoded IPs or domains) to point to your local machine instead. This would of course not yet make it possible to have actual online multiplayer.

If you don't have the server source, then this involves reverse-engineering the server. Since you have the source code, reverse engineering the protocol can be done. The difficulty will depend on how obfuscated and well-documented the code is.