WormNET (Worms Armageddon)
From Worms Knowledge Base
A WormNET server is basically composed of a slightly (if at all) modified IRC server and an HTTP server with a few scripts. As of writing this page, WormNET is running 2.8/hybrid-6.3.1(20020418_1) and Apache/2.0.54 + PHP/4.3.10-16 on Debian GNU/Linux.
So, the typical screen you see in a WormNET channel is actually made up of two logical parts:
- The first is the game list, which lists all games in the "waiting for players" state; WormNET games are managed by the PHP scripts.
- The second is the nickname list and the chatter area, which are managed through IRC.
These parts aren't really interconnected - thus, it's possible to create a game without connecting to the IRC server, and it is possible to connect to the IRC server without logging in through the web interface (this might change with time).
A typical connection sequence to WormNET is as following:
- Worms retrieves Login.asp, which contains a <CONNECT> directive - the IP/Port to the IRC server.
- Worms logs on the IRC server, and gets the list of channels.
- when the player joins a channel, Worms retrieves the channel scheme and game list for the channel (RequestChannelScheme.asp, GameList.asp).
The game list is periodically automatically updated.
- when a player hosts a game, Worms sends a "create game" request via Game.asp; when the actual game starts (no more people can join) or when the host exits before the game starts, a similar "close game" request is sent.
- when a player hosts or enters a game, he is disconnected from IRC.
- when a player exits a game, he must reconnect to WormNET from the beginning.
The WormNET ASP scripts (which are probably PHP scripts disguised as ASP, to preserve compatibility with the URLs hard-coded into the game executable) will only reply to HTTP clients that identify themselves with the T17Client/1.2 user-agent. You can quickly switch user agents with the User agent switcher Firefox extension.
At the moment of writing this article, the rank and secure login system has been removed from WormNET, because it has been abused several years ago. There are no online 3rd party servers that support these features either.
Each WormNET channel has its own settings. These settings can affect the presence of ranks, enforce a particular map or scheme, disable hosting games, and affect other settings for games hosted on the channel.
Here's the current list of channels and their scheme flags:
TODO: scheme flag meanings