A simple Worms 4 server simulator written in Python

The main task is to maintain the list of hosted games and distribute changes across listening clients.

Why was this done?

Because the official online service provider, Gamespy, shut down game services for Worms 4. Probably because Team17 didn't want to pay the licensing fees anymore, but we don't know for sure. And we don't want this great game to die completely!

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:

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 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, who cracked the GS protocol.

FaLang translation system by Faboba