Private Game Servers Programming Aspects (GENERALLY)

12/14/2012 18:27 badguy4you#1
Well this question came to my mind and i really want an answer for it.
  • What are the things needed for a programmer to create a private server for any online game he\she chose ?

provide me with a full answer about all the things that makes someone able to create a private server for any online game.
12/14/2012 18:48 Super Aids#2
  • Basics of the programming language (Methods, Variables etc.)
  • OOP (Object Oriented Programming)
  • Network Programming (Sockets, async-sockets recommended)
  • Database Management (Sql etc.)
  • Threading
  • Basic Gaming-environment knowledge
  • Packets (Logging, Structuring & Handling)
  • Reverse Engineering (To retrieve encryptions etc.)

And a few other things, these were on the top of my head.
12/14/2012 18:53 badguy4you#3
Quote:
Originally Posted by Super Aids View Post
  • Basics of the programming language (Methods, Variables etc.)
  • OOP (Object Oriented Programming)
  • Network Programming (Sockets, async-sockets recommended)
  • Database Management (Sql etc.)
  • Basic Gaming-environment knowledge
  • Packets (Logging, Structuring & Handling)
  • Reverse Engineering (To retrieve encryptions etc.)

And a few other things, these were on the top of my head.
Well... about the basics of the programming have passed that stage from along time and i can make asynchronous socket servers with full database management fluently and can but not good log and structure unencrypted packets. Also can make use of the new VS2012 Async CTP

The only thing i don't understand what you mean by basic gamming environment knowledge ?
12/14/2012 18:55 Super Aids#4
Quote:
Originally Posted by badguy4you View Post
Well... about the basics of the programming have passed that stage from along time and i can make asynchronous socket servers with full database management fluently and can but not good log and structure unencrypted packets.

The only thing i don't understand what you mean by basic gamming environment knowledge ?
Like how certain features for a game work.

Ex. movement, chat, spawning etc.

Like you see a certain feature in a game and you can think programming-wise how it was made ^^
12/14/2012 18:58 badguy4you#5
Quote:
Originally Posted by Super Aids View Post
Like how certain features for a game work.

Ex. movement, chat, spawning etc.

Like you see a certain feature in a game and you can think programming-wise how it was made ^^
I think movement, chat, emotions, etc... all depends on packets sent\received to and from the server. for example when i enter some text in the chat box the client sends a packet with a unique id and contains the message to the server and the server handles that packet by sending it to all the players in the map.
12/14/2012 19:12 _DreadNought_#6
You need knowledge in reversing if the game encrypts it's packets you will need to be able to decrypt them.

You will also need to get a proxy running to get the fields in the packet.
12/14/2012 20:27 badguy4you#7
Quote:
Originally Posted by _DreadNought_ View Post
You need knowledge in reversing if the game encrypts it's packets you will need to be able to decrypt them.

You will also need to get a proxy running to get the fields in the packet.
Well it seems that the only remaining thing for me to learn is the reverse engineering so can you guys provide me with a good starting point for it also tell me what is the average time needed to be good at reverse engineering ? [I MEAN BY GOOD IS I CAN REVERSE THE PACKETS OF ANY OLD/NEW GAME REGARDLESS OF THE TIME NEEDED]
12/14/2012 20:55 _DreadNought_#8
Quote:
Originally Posted by badguy4you View Post
Well it seems that the only remaining thing for me to learn is the reverse engineering so can you guys provide me with a good starting point for it also tell me what is the average time needed to be good at reverse engineering ? [I MEAN BY GOOD IS I CAN REVERSE THE PACKETS OF ANY OLD/NEW GAME REGARDLESS OF THE TIME NEEDED]
You wont learn it with that attitude, learning time is different for anyone, use google.com for links and its different for any old/new game out. It's always different, some harder some easier.

It can take years.
12/14/2012 23:29 pro4never#9
While reverse engineering could be useful, it's by no means required.

I have no experience with it and have no issues writing servers for conquer. If I had the knowledge it might help for sure but it really depends what you're wanting your server to be.

Conquer is a very well documented game at this point so just about anything you'd want to do has plenty of information released publicly.

Packet structuring is quite important and there's a number of tutorials around epvp already on the subject and I'd say that takes priority over reverse engineering (worst case scenario you just run an older patch)
12/14/2012 23:34 _DreadNought_#10
Quote:
Originally Posted by pro4never View Post
While reverse engineering could be useful, it's by no means required.

I have no experience with it and have no issues writing servers for conquer. If I had the knowledge it might help for sure but it really depends what you're wanting your server to be.

Conquer is a very well documented game at this point so just about anything you'd want to do has plenty of information released publicly.

Packet structuring is quite important and there's a number of tutorials around epvp already on the subject and I'd say that takes priority over reverse engineering (worst case scenario you just run an older patch)
If he wants to create a emulator for any game like he said, he WILL need to know reverse engineering at one point or another.

He's bound to run into a game where encryption's aren't released.

Conquers very lucky to have everything documented.
12/14/2012 23:36 Super Aids#11
Quote:
Originally Posted by pro4never View Post
While reverse engineering could be useful, it's by no means required.

I have no experience with it and have no issues writing servers for conquer. If I had the knowledge it might help for sure but it really depends what you're wanting your server to be.

Conquer is a very well documented game at this point so just about anything you'd want to do has plenty of information released publicly.

Packet structuring is quite important and there's a number of tutorials around epvp already on the subject and I'd say that takes priority over reverse engineering (worst case scenario you just run an older patch)
That is true, but if he was to gather an encryption that is not public he would need to know reverse engineering, even to make a work around.
12/14/2012 23:55 pro4never#12
Quote:
Originally Posted by Super Aids View Post
That is true, but if he was to gather an encryption that is not public he would need to know reverse engineering, even to make a work around.
Such information would only be needed for new patches and he could learn on the fly if it's something that REALLY interested him.

Patch influences the source very very little so he could just write his source on say 5095 (binaries to log packets off + huge amounts of existing resources) and then change it to whatever current tq patch is any time eh wanted when the encryption became public or he learned reverse engineering.

The difficulty of that conversion boils down to how well he designs the source from a program design standpoint. If he manages it properly it would be INCREDIBLY easy to change the patch on the fly.


NOTHING is stopping him from going ahead and writing a full source (more complete than anything public right now) without learning any reverse engineering and then updating it in the future to support new tq crap features.
12/15/2012 00:13 _DreadNought_#13
Quote:
Originally Posted by pro4never View Post
Such information would only be needed for new patches and he could learn on the fly if it's something that REALLY interested him.

Patch influences the source very very little so he could just write his source on say 5095 (binaries to log packets off + huge amounts of existing resources) and then change it to whatever current tq patch is any time eh wanted when the encryption became public or he learned reverse engineering.

The difficulty of that conversion boils down to how well he designs the source from a program design standpoint. If he manages it properly it would be INCREDIBLY easy to change the patch on the fly.


NOTHING is stopping him from going ahead and writing a full source (more complete than anything public right now) without learning any reverse engineering and then updating it in the future to support new tq crap features.
I think you're forgetting he wants to do this for other games that might not be so documented.

The current authorization encryption isn't public, it's only a matter of time before Conquer realize what they did there and apply it to the GameServer too, what if that isn't public? Then he's gonna need to learn reverse engineering.
12/15/2012 00:35 pro4never#14
Quote:
Originally Posted by _DreadNought_ View Post
I think you're forgetting he wants to do this for other games that might not be so documented.

The current authorization encryption isn't public, it's only a matter of time before Conquer realize what they did there and apply it to the GameServer too, what if that isn't public? Then he's gonna need to learn reverse engineering.
You're still missing my point.

There's nothing stopping him from diving into the deep end right now.

He can develop for any patch he prefers and run with it. I mentioned 5095 as binaries are out there to log accurate packet structures from (same would therefor apply to 5065 obviously).

This will give him a very complete and indepth introduction to developing a private server. At that point he can decide what is important to him. Yes, he should probably learn reverse engineering if it's a field that interests him but it's not a requirement to start.

It's a bit like saying saying you have to have a masters in English literature before you can bother writing an essay. Yes, having your masters will probably come in handy and produce a better essay but there's a learning curve and having a high barrier to entry before he can 'start' benefits no one.
12/15/2012 00:36 _DreadNought_#15
Quote:
Originally Posted by pro4never View Post
You're still missing my point.

There's nothing stopping him from diving into the deep end right now.

He can develop for any patch he prefers and run with it. I mentioned 5095 as binaries are out there to log accurate packet structures from (same would therefor apply to 5065 obviously).

This will give him a very complete and indepth introduction to developing a private server. At that point he can decide what is important to him. Yes, he should probably learn reverse engineering if it's a field that interests him but it's not a requirement to start.

It's a bit like saying saying you have to have a masters in English literature before you can bother writing an essay. Yes, having your masters will probably come in handy and produce a better essay but there's a learning curve and having a high barrier to entry before he can 'start' benefits no one.
ok, okokokok.

I get what you mean, you're 100% correct.

He wont need to learn reverse engineering unless he start developing for a game where little is known.