Ever since i played the automated ladder in warcraft 3, i thought this is the kinda functionality a game needs to keep activity up over the years.
The basic functionality of wc3-ladder (the starcraft 2 ladder is similar)
1. user logs into the game
2. user clicks a "play-button" which places the him in a queue for upcoming games. When there skillwise is a suitable opponent available, the system starts a match and between the players.
Why is this so important one might ask?
It allows new players that know little to nothing about the game, to find opponents on similar skill-level.
So i've spent time trying to implement something like this for qw. I guess it is somewhere in the stage between alpha and beta at this point.
So i thought it is time to share some information and possibly get some feedback or suggestions. Let me begin with explaining the current technical implementation (i've played around with quite many different implementations, always trying to having a working prototype).
The user-experience is as follows:
1. User signs up on webpage and selects what games he want to play (current there is support for qw and q2)
2. User launches a Java-plugin (the plugin ensure that nquake-online is installed)
3. User enters the queues to the ladders he wishes to play
4. When there is 2 players available in same queue, the system puts them into a match and sends a message to the plugins to launch game-clients and connect a provided ip:port using correct playername/password.
5. When game is completed the results are collected and ladder-ranks are updated.
The Server side.
1. Trusted server admins may contribute with servers to the shared server-pool by registering them in the Web-UI with ip/port/maxcapacity/rcon_password.
2. The system will monitor which game-servers it considers to be online.
3. When a match is about to start, the system will select the most fair server from based on the automatically collected ping-data of users.
4. For the duration of the game, the system password protects the server to keep unwanted players out.
Current status:
I've got help from nquake-online and q2-online author hifi to integrate with named applications. Currently all above functionality is implemented and works to some degree satisfaction when testing with 2-3 players in the queues.
Next step:
System is still hosted on my localhost. Need to move to a proper beta-test-server
Scale: need some more users testing at the same time to find race-conditions etc..
snapshot of current web-ui:
Why do you want to password protect the server? I bet some specs will love to watch games.
How ping data is collected? Is it ability to use proxies?
Is it possible to use currently installed QW instead of NQuake?