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!

How to Get Started in Game Server Emualtion

Newbie Spellweaver
Joined
Aug 9, 2020
Messages
7
Reaction score
0
Hello Guys I visited this website earlier and I wanted to know how to make a game server emulator
I am now 16 and all what I know is C++, Reverse Engineering, ASM, Malware Analysis and also I can code basic assault, csgo hacks. All my experience with emualtion is that I made a chip8 emulator

So my questions are:

How to get started in game server emualtion ?
What is the best game to start with ?
what programming languages i need beside c++ ?
Do i need to have experience with game dev ?


Thanks in advance :)
 
Junior Spellweaver
Joined
Oct 27, 2008
Messages
165
Reaction score
89
To make an emulator you will need to know network programming and also a data set of a client network packets, you will need to respond to the client requests with the proper packet.

To get a client dataset you will need a sniffer, to sniff the packets from the client when it makes an request to the server or receives an response from the server.

Depending on the case sniffers can be attached to the client or to the network interface(wireshark or pcap attaches itself to the network interface and sniffs all ingoing and outgoing trafic, detours of). Another method is to inject the sniffer into the clients send and recv.

Also network packets are encrypted so you would need to find the encryption and decryption methods, usually they are not too far from the send and recv, and in some cases they are only xor encrypted, but if you do not understand the encryption method, you can also attach sniffer before encryption and after decryption. When developing the client and the encryption is to hard to understand you can also deactivate it.

Doing reverse engineering to the client some clients have anti hack or anti reverse engineering modules attached to them, that will detect if the client was compromised or not, or if you are software. Also the client can be packed and to reverse engeneer on it you have to unpack it into the memory and dump it and fix import tables and original entry point, or make a patcher to patch certain points into memory after the client is unpacked.

When making the client to connect to your server, so you have to either redirect the connection or you have change it from client.

If the client passed their end of life and there is no compatible server online you have to reverse engeneer the packet from the client by looking how the packet is parsed in the client.

Once you have the list of packets you will need to classify them, and implement on your server.

As to where to start would be simple MUD games, building sniffers to build your packet datasets, and changing the client connection, to connect to your server.

A good book for creating a simple server is:


And the source from that book:


Other posts:
http://forum.ragezone.com/f860/creating-emulator-1155746/
http://forum.ragezone.com/f144/mere-curiosity-1049695/
http://forum.ragezone.com/f144/emulator-mmorpg-1021182/
 
Last edited:
Newbie Spellweaver
Joined
Aug 9, 2020
Messages
7
Reaction score
0
Thanks <3 But U Didn't answer some questions like what programming languages i need beside c++ and do i need to have a game dev background for ex should i need to know how to make a mmo before making a server emualtor
 
Junior Spellweaver
Joined
Oct 27, 2008
Messages
165
Reaction score
89
I think C++ is enough to develop an emulator, depending on how well you know c++( I'm talking about c++17 or c++20 standards), Since you are 16 you should also learn about Data Structures(some structures are defined in std library, but they are not thread safe, and having knowledge on how they work will help you a lot), and Object Oriented Programming, and Design Patterns. Distributed Programming and algorithms helps(this things are advanced topics).

In a server you will also need a database so you will need to know some knowledge about Databases and SQL.

Also depending on the type of the emulator you are making will be hard to find some libraries for c++( ex. I had to write the websocket protocol from scratch using documentation ). Where on other programming languages those libraries are already available.

You do not need to know too much about game developing since mostly it is based on client, since you are making an emulator you will need to respond to the client requests, similar to how websites are made, the client is the frontend written with html, js, css and the server backend(PHP, ASP, JSP, NodeJS, etc).

But the example about text based MUD Games (Multi-User Dungeon Games), is a good way to practice building a MMORPG Server, than later adapting it to be an emulator for other clients.

For NodeJS I think there is an example:
http://forum.ragezone.com/f578/1-mmo-scratch-introduction-1092707/

if C++ is to hard for server emulator you can try other programming languages like Java, C#, JS, etc).
 
Last edited:
Newbie Spellweaver
Joined
May 7, 2021
Messages
16
Reaction score
1
Also network packets are encrypted so you would need to find the encryption and decryption methods, usually they are not too far from the send and recv, and in some cases they are only xor encrypted, but if you do not understand the encryption method, you can also attach sniffer before encryption and after decryption. When developing the client and the encryption is to hard to understand you can also deactivate it.

How can i find those encryption/decryption methods with dynamic debugging i am really struggling with that it's hard asf. I can hook networking packets using Detours but of course they're encrypted
 
Back
Top