Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Is it still possible to reverse engineer an old MMORPG with just the game client?

Initiate Mage
Joined
Jan 24, 2015
Messages
3
Reaction score
0
Dear all,

I am just wondering if an MMORPG can be reverse engineered with just its game client? The game server is already dead for more than a decade and till date, no server source files can be found online. I am hoping to get some useful insights from you guys here. Thanks.
 
Libre Software Dev
Developer
Joined
Sep 25, 2012
Messages
675
Reaction score
427
@pixelducky yes it is possible. Doing such is basically the definition of reverse-engineering. Not gonna be easy though. You have to find out what request and responses the client makes when it starts/used and go from there. Basically you'll have to make a program (the server) that can respond appropriately to the clients requests/responses. That's gist of it. Since you had to ask this question, I'm going to assume you have quite a lot of work ahead of you so that you can understand how to do this. Maybe not, but that's usually how things go here. Funny name btw, I like it.
 
Initiate Mage
Joined
Jan 24, 2015
Messages
3
Reaction score
0
@PyroSamurai thanks for the reply! I understand it is gonna be a hell lot of work but this has been a little secret goal ever since I played that game (which also happens to be my first MMORPG) more than 10 years ago. This game was made in Korea by a company called Moya. Later some Taiwan company called Wayi picked that up and ran the game servers in Taiwan and Singapore. Unfortunately, due to bad management, the game servers was shut down in 2004. IMO the game had nice mechanics (pvp, pve, guild wars, weapon mastery, crafting mastery..etc) and 2.5D graphics for a game back in those days. I am feeling pretty nostalgic and sad as I am typing this because the game was a big part of my teenage-hood. Haha..ohh well.

You have to find out what request and responses the client makes when it starts/used and go from there. Basically you'll have to make a program (the server) that can respond appropriately to the clients requests/responses. That's gist of it.

I know servers can be created/implemented in various programming languages. Should I make a decision on the language choice now? Java, C++, C#, etc. On a random thought, do you think a NodeJs server with MongoDB can cut it? It's Javascript so I am guessing portability shouldn't be an issue.

Funny name btw, I like it.
Heh:cool:
 
Watching from above
Legend
Joined
Apr 9, 2004
Messages
3,828
Reaction score
752
Which game are you talking about by the way?

On the question - you probably should make a server right away so yeah you should pick a language. I'm not sure if it makes much difference which one it's going to be as long as it's easy for you. NodeJS will probably do just fine, although I might look at other options as well with the fact in mind that for the protocol part you will be fiddling with bits and bytes quite a bit.
 
Last edited:
Libre Software Dev
Developer
Joined
Sep 25, 2012
Messages
675
Reaction score
427
pixelducky said:
I know servers can be created/implemented in various programming languages. Should I make a decision on the language choice now? Java, C++, C#, etc. On a random thought, do you think a NodeJs server with MongoDB can cut it? It's Javascript so I am guessing portability shouldn't be an issue.

That's a bit of a loaded question that requires some background knowledge of the game and gameplay to give a proper answer to. You are talking about using NodeJS server w/ a DB as replacement for the original server and DB. The issue with NodeJS is that since it uses only a single thread to do all its computations, it will easily get bogged down if it has to do a lot of them. Keep that in mind.

My advice is to choose a language you can prototype quickly in for now (and know well or is easy to learn). Then when you have your ideas worked out (i.e. prototyped), go back and look at what your code is trying to accomplish and choose the best language for that purpose (keeping in mind your own ability to write in that language). So, basically write some draft programs first and then write a polished program afterwards.

You might want to posts some links to some reviews of the game or something to give us general idea of what it is like.
 
Experienced Elementalist
Joined
May 6, 2008
Messages
230
Reaction score
51
A good way to start is by writting a simple packet logger and keep times next to each packet so you know the frequency. I would recommend a basic language like C#. After you gather the packets and determine the frequency of each packet choose a language that is going to be suitable in terms of the server environment such as Windows or Linux. I personally recommend starting with C as it is easier to move from one environment to another to suit your needs in the future. If it is more of a learning process I usually recommend people to start with C++ or C#. Your database will take some research however. For example. How many threads is the environment capable of handling, how many requests per second do you need to handle, do you want to rely on stored procedures in a DB or functions in the server, size of the DB, and security.
 
Junior Spellweaver
Joined
Mar 29, 2004
Messages
139
Reaction score
37
which game?
some server files exist but never got public.
if it not high profitable item anymore maybe you can buy it from someone around with some reasonable price.

edit: p.s. don't ask me I don't had any :) but I know it exist.
 
◝(⁰▿⁰)◜Smile◝ (⁰▿⁰)◜
Developer
Joined
May 29, 2007
Messages
2,167
Reaction score
898
A good way to start is by writting a simple packet logger and keep times next to each packet so you know the frequency. I would recommend a basic language like C#. After you gather the packets and determine the frequency of each packet choose a language that is going to be suitable in terms of the server environment such as Windows or Linux. I personally recommend starting with C as it is easier to move from one environment to another to suit your needs in the future. If it is more of a learning process I usually recommend people to start with C++ or C#. Your database will take some research however. For example. How many threads is the environment capable of handling, how many requests per second do you need to handle, do you want to rely on stored procedures in a DB or functions in the server, size of the DB, and security.

Do you even read? You're just giving general advice for people who want to start making a pserver.

The game server is already dead for more than a decade and till date, no server source files can be found online.

It's totally possible, a lot of others replied to this. Stick with a high level programming language such as Java or C# since C++ will likely give you a lot of headache. I wouldn't recommend mongoDB for this project tough since it isn't going to be a big scaled system. Feel free to ask me questions, I've made a couple of emulators for a few games so I might be able to help you out with some stuff. (I'm not going to spoon feed you tough).
 
Watching from above
Legend
Joined
Apr 9, 2004
Messages
3,828
Reaction score
752
I wouldn't recommend mongoDB for this project tough since it isn't going to be a big scaled system.
Actually I find Mongo to be best suited for something you know will stay small. Not implying its other features might nor might not be particularly useful here, just thought that should be corrected.
 
Back
Top