WormNET (Worms Unlimited)

From Worms Knowledge Base

Revision as of 19:23, 15 October 2007 by Run! (Talk | contribs)

Jump to: navigation, search

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).

Protocol

Currently Wormnet uses IRC and HTTP. A proper protocol for gaming sould be used, a example of this protocol is Open Gaming Protocol

Ranks

Ranks should be based on ranked channels: when you beat players in a one of these channels, you get points, and when you get enough points for enter in a ranked channel, you can enter in it.

The scoring system should be a ladder system, as that would encourage people to play the strongest players.

And finally, there should be ranks for various gametypes: shoppa, proper, bng, wxw...

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.

Channels

There should be multiple channels.

For the case of ranks, there could be channels which you can access with a determinated rank.

There could be a channel where only classic options from w:a can be used.

Also, there could be a channel where only determinated options can be used(Infinite full-Powered Rope, Rope Knocking, No Rope..) and channels with prefixed schemes, like WxW, Proper, Shoppa..

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