Titan Network

Graveyard => Save Paragon Retirees => Save Paragon City! => Topic started by: ghost_dev on June 12, 2015, 08:26:20 AM

Title: Server Emulator Project
Post by: ghost_dev on June 12, 2015, 08:26:20 AM
Hi all,

I posted on the CoH reddit, but I'll post this here too.

I've been impressed by the server emulator projects for mxo, warhammer, etc, and I think it's about time we had a proper go at one for CoH. I'm going to start reverse engineering the client, and see how far I can get. I've been programming for about 12 years, my 9-5 is working for a AAA studio, and I have experience in MMO development as well as reverse engineering.

However, I only have a limited amount of time, and I also know how tricky open-source projects can be when people have their own ideas of how something should be implemented, resulting in multiple projects all doing roughly the same thing.

So this is my plan:
I will work to reverse engineer the client, and produce an open-source set of documentation. This documentation won't say what database to use, or how to structure the data, it will just explain the way the client and server interact, the packet structure used by the game, what messages are sent from client to server and vice versa. From this documentation, any talented programmer could go about building a CoH server emulator. If anyone is already doing this (or has made a start in the past), please get in touch, as I would like to join you. If there are any interested reverse engineers out there, please get in touch, we need to pool our skills and knowledge if we ever want to see private CoH servers.

Thanks
Title: Re: Server Emulator Project
Post by: Joshex on June 12, 2015, 08:06:38 PM
Am I the only one who thinks this is NCSoft Trolling to try and find out if anyone is encroaching on their IPs?

Seriously, if you are for real, some members of this forum already know a good deal of the message/packet content (though no serious server rev eng is going on here that I know of), you might get a quicker start by reading:

http://www.cohtitan.com/forum/index.php/topic,10546.msg170821.html#msg170821

I myself was going to make an interceptor to get the message content, but it's already documented.

it is possible to make a CoX server in ANY programming language which can operate with the current client (so you wont need to make a new client or rev eng it.), I was going to do it in python (I made it a 3rd side project that I barely touched). If you can do it faster more power to you.

I would say I will help, but any help I give will be intermittent.  so.. if you are working with a language other than python I can read and possibly debug the code but wont be able to write it.

also be prepared to do a lot of work. even building my own server (for my own game) was hard and it doesn't YET have the same amount of functionality as CoX does. It's getting there Piece by piece, but it's tedious to a new level of the meaning of the word.

I'm sure others will come in and say something as they find time so don't get disheartened by a lack of replies.

Please also remember the server and client for CoX /both/ have collision geometry, you need both sides to match. If the geometry does not match perfectly you will have players stuck in walls.