PDA

View Full Version : Worms 4 server emulator - IN WORKS


Paulos
3 Jun 2013, 21:35
Okay folks,
so since Team17 probably won't pay for the Worms 4 server anymore, I've decided to try and make a replacement server. While it was a difficult task, I believe we're almost done.

The result?
A simple server written in Python.
The main task is to maintain the list of hosted games and distribute changes across listening clients.

What's the Worms 4 server tech like?
Actually, there are several servers. One of them, UDP server, verifies that the game is available and enabled on the GS server; it also takes care of adding, verifying, updating and deleting hosted games. The second server, TCP, serves lists of hosted games. And finally, for Worms 4, there's also a chat server, IRC-like, but encrypted (and banning everyone without the right key BTW :) ). The IRC server allows the players to chat in the lobby and provides the necessary communication between the hosted game and the client.

For the actual game hosting, all three servers are essential. Also there must be a connection on TCP port 5911 between the person that hosted the game and the client. (It works one way or another, a host can connect to the client, or a client can connect to the host.)

We've implemented the TCP and UDP servers, and we're still using GS's IRC server, as it is essential for the game to work correctly. The encrypted IRC protocol is also cracked and can be emulated, but we need time to do that.

Can we see some proof?
And, for those that don't believe - this is not Tunngle, this is running on our server:
http://www.youtube.com/watch?v=cg-XKKx1SH4

Okay, I'm all in! What should I do?
In the following days, I'll post here some instructions on how to connect to the server, and later we'll be ready to share the source code as well. In the meantime, you can connect to IRC Freenode, channel #w4mserver, and help us test this beauty! We all like to play, don't we? :)

I'll be updating this post continuously.

Who else should we thank?
Nothing like this could be made without the extensive help of Muzer - thanks friend! Also this wouldn't be possible without the research conducted by Luigi Auriemma (http://aluigi.altervista.org/), who cracked the GS protocol.

(If Gamespy ever sues us, screw them! We're not doing anything illegal, we're not breaking their security. Someone else already did, if you ask. :p And we don't do this for money. We do this because we value Worms and its community and don't want the game to die.)

StepS
4 Jun 2013, 07:39
And finally, for Worms 4, there's also a chat server, IRC-like, but encrypted (and banning everyone without the right key BTW :) ).
have you found a way to decrypt it? a similar thing exists in Worms World Party, where logging in to IRC requires the game to receive a set of symbols over http, encrypt them with an unknown (probably Team17 selfmade) algorythm and send to server. no one still bypassed that...

(If Gamespy ever sues us, screw them
Gamespy is dead;)

Paulos
4 Jun 2013, 09:51
have you found a way to decrypt it?

Yup, I found the way. It has already been done by that same Luigi who cracked their encryption protocols. See http://aluigi.altervista.org/papers.htm#peerchat
The de/encryption depends on a special pre-shared game key (the actual encryption algorithm is probably some kind of DES). It's Gamespy specific.

Gamespy is dead;)
Lol, really! Didn't know that! But I meant Gamespy Technologies (http://www.poweredbygamespy.com/) :)

Paulos
4 Jun 2013, 11:45
Oh, bummer.
It seems that GS has done some modification on its IRC server to prevent hosting games. So we must emulate this as well...
I can only hope they don't read this :p

StepS
4 Jun 2013, 14:23
Oh, bummer.
It seems that GS has done some modification on its IRC server to prevent hosting games. So we must emulate this as well...
I can only hope they don't read this :p

modification? how? if the W4M server had already died:eek: and you played some games after its death
or do you mean you used some of their servers instead of your own? (for IRC)

Paulos
4 Jun 2013, 14:29
modification? how? if the W4M server had already died:eek: and you played some games after its death
or do you mean you used some of their servers instead of your own? (for IRC)

Yes, we still used their IRC server. The reason was that it is still necessary for the initial connection between the host and the client, and our server wasn't performing very well in that area (it needs some additional commands and encryption I initially didn't want to code :p ). Now I'll probably have to... does anyone here have some experience with C++?

StepS
4 Jun 2013, 14:34
Yup, I found the way. It has already been done by that same Luigi who cracked their encryption protocols. See http://aluigi.altervista.org/papers.htm#peerchat
The de/encryption depends on a special pre-shared game key (the actual encryption algorithm is probably some kind of DES). It's Gamespy specific.

that's good. if only WWP was рwned too... :p

Muzer
4 Jun 2013, 16:11
Yes, we still used their IRC server. The reason was that it is still necessary for the initial connection between the host and the client, and our server wasn't performing very well in that area (it needs some additional commands and encryption I initially didn't want to code :p ). Now I'll probably have to... does anyone here have some experience with C++?
I doubt you'd need to use C++, python should be fine. But I do ;)

[Cobras]
4 Jun 2013, 19:20
Well done!

Itīs been ages since I dont check this forum and I found out GS server isnīt up anymore. Sounds nice all the work you`re doing based on Luigiīs stuff. Carry on ;)

Cheers everyone!

[Cobras]Manolito

Paulos
4 Jun 2013, 19:54
Thanks [Cobras]Manolito, I'm sure this server will be running in almost no time :)

And if you wonder why GS closed their IRC, it didn't. And it even didn't stop working. I'm a moron, if someone asks.
34856 | ***Error : XTcpConnection::Listen - Unable to bind to port - 5911 Error=WSAEADDRINUSE
No panic anymore. Oof.

StepS
6 Jun 2013, 18:59
where will you be hosting thread updates when the T17 forum shuts down?

Paulos
6 Jun 2013, 22:04
I have my own website at 3dworms.eu, so probably a subdomain - server.3dworms.eu (http://server.3dworms.eu/), so it's easy to remember :) EDIT: It's online now! Go look for a wormy sketch :p

Btw, I have already had an experience with this forum. My thread was deleted; it was presenting a launcher that allowed to connect to Gamespy servers and chat and view games and connect to them (launch the game). Not very professional, but it worked, and it still works today. I'll probably also release the updated version to the public, on the same page maybe, when I finish improving some little things.

(OT: Oh, how I love FTP over IPv6. Finally something that works. :) )