WormNET (Worms Unlimited)

From Worms Knowledge Base

Revision as of 18:09, 8 April 2007 by ArcBeetle (Talk | contribs) (Running games: Continuing games from a replay)

Jump to: navigation, search

(note: unlike the rest of this wiki, bits of this page were edited by Splongul)

Introduction

I believe that I'm not the only one who's thinking that WormNET could be much better. (todo: insert more cricitism here). To implement even a part of the ideas I stated here would mean rewriting most of the network code from scratch.

Many of the ideas stated here were taken from the way Sallos is done. Sallos is an Internet gaming lobby, currently featuring IRC-like chat, and some games: a Gunbound clone, Chess, TetriNET and MasterMind. The network code is scalable and quite well-organized (considering that Sallos is a network application in the first place). The whole system connects to one cental server, which hosts the chat and all of these games as one single service. The system utilises a built-in smart update feature, that automatically updates the client software by downloading patches from the server (again, through the very same protocol).

IRC?

When I found out that WormNET operates on the base of IRC, I almost laughed. I suggest a proper protocol, specifically designed for gaming, not for chatting!

Ranks

Is it just me, or are those things broken? I told you IRC wasn't a good base for network gaming.

Server-to-server connections

Instead of making the players connect to each other, it would be better to make them connect to the server, which will route the data across other players. This will allow onybody to host a game, avoiding any router / firewall problems. (I mean, almost 10% of the games created on WormNET have the host's IP address of something like 192.168.2.15)

This will also reduce the number of network drops - if the host drops out, the game will go on, and the game will close as soon as the round is finished.

In the case somebody wants to, there would be the possibility of the traditional hosting method, for the players who can do it. Alternatively, there would be Direct Ip and LAN games, in the case Wormnet is down.

Running games

Often it is desired to join or spectate a game already in progress. I'm not saying that this will require a new team to be added directly to the field - the player will be able to simply spectate the game until the round is finished, after which he can add his team.

As well, an ability to show players that are currently playing a game. Combine this with the ability to locate a player in all running games, and it should eliminate the chaos of trying to find your buddy on WormNET.

A checkbox/button could be added to the lobby to toggle showing already running games.

Also, there should be the possibility of continuing running games from a replay file. For using this option, all players would have the same replay file and all would have to agree with it. Before starting, the game would check the replays of all players to check if all the replays of them are the same and if they are not corrupted.

Single Channel

Who needs multiple channels anyway, if you can't join more than one at once anyway?

Map cache

With the new maps, the file sizes for those maps would increase significantly. Some kind of map cache, which would store all downloaded maps in a folder (and perform clean-up occasionally). Then, when a map would be downloaded from the server, the client would compare hashes of the map with the maps in the cache - thus avoiding re-downloading of the map.

Buddy List

...

Lobby Screens

...

Personal tools