http://www.quakeworld.nu/forum/viewtopic.php?id=4928 <-- for a tldr; version of this post.
Foogs' idea for a QuakeWorld 1v1 Duel Ladder:
---------------------------------------------
*Note* I haven't taken the time to re-read any of this. I'm sure I'm missing tons of shit but this is probably good for a good scratched up outline. It wasn't originally created to be a forum post but I decided to post it anyway. Sorry for the shitty formatting.
*Note* I don't really know any programming languages at all. I need to learn something. I do know HTML/CSS and my way around Adobe Photoshop though if that's any use.
I'm not begging for this to be done but can you imagine how rad it would be to be able to use this league to judge your skills / play Quakeworld? It could be adapted for 2v2 / 4v4 as well!
Edit: Matches would actually be considered just 1 map. e.g. 1 won map = 1 match win. Random selection of maps from map pool (TB5: dm2, dm4, dm6, ztndm3, aerowalk)
[MATCHES]
[3 Maps = 1 match (Best of 3)]
[Only maps from current ladder map pool]
[Season last 3 months or something like that]
[#1 Rank = Ladder Season Champion]
[Top 8 players at the end of the season get invited to True Ladder Season Champion Tournament to decide who the best really is (Non obligatory)]
[PTS/Divs]
[Read about ELO: http://en.wikipedia.org/wiki/Elo_rating_system]
[No Divisions. Anyone can play anybody]
[You earn more points if you play/beat a person with equal or ELO rating than yourself]
[You lose more points if you play/lose a person with a lower ELO rating than yourself]
[WEB INTERFACE]
[VIEW 1v1 LADDER STANDINGS (User names clickable / takes you to their stats page)]
[Uses Ladder Standings MySQL Database/Tables or whatever to store]
[View individual player statistics: LG% / RL% / Average Frags per map / Total Frags / Efficiency / ELO]
[Register FOR 1v1 LADDER .html/php]
[desired username]
[desired password]
[email address]
[List akas] (Required for the admin to review your application)
[captcha]
[submit]
[Saves their information into the QWDL UserWaiting MySQL database]
[Emails the admins of the league with the applicants information]
[Admin has to okay the registration somehow..]
[If admin okays send confirmation email]
[If admin denies send denial email]
[FILE MATCH COMPLAINT .html/php]
[Basic form emailer to ladder admins email account]
[OR contact information for current Ladder admins]
[QWDLBot Manual .html/php]
[documentation on the bot]
[IRC BOT INTERFACE]
*Note* Does not handle new player registrations *Note*
If player isn't logged into the bot ignore any commands or messages sent to it
---Commands---
*Notes* QWDLBot checks IP/Hostmask of the IRC user to see if that user is still the same user before any command is executed
{Login to bot}
[command : /msg QWDLBot login username password]
[QWDLBot checks the MySQL user database to verify if the login is correct]
[IF login info is correct give them a welcome message]
[Welcome username. There is # left days on the current ladder season]
[Use IP somehow for users session]
[IF login info is incorrect give them a wrong username/password message]
{Start a new Match}
[e.g. command : /msg QWDLBot challenge username-of-to-be-challenged]
[QWDLBot checks the CHALLENGE variable of username-who-is-challenging]
[IF CHALLENGE variable = 1 (player has challenged someone else)]
[QWDLBOT messages username-who-is-challenging telling him he can only challenge one person at a time]
[IF CHALLENGE variable = 0 (player hasnt challenged anyone else)]
[QWDLBot checks same User database website uses to see if the player exists]
[IF player exists]
[QWDLBot sets both players CHALLENGE variable to 1]
[QWDLBot messages username-of-to-be-challenged With username-who-is-challenging (With his stats / Ladder ELO) to see if he accepts]
[IF player accepts (/msg QWDLBot accept)
[QWDLBot sets username-of-to-be-challenged CHALLENGE variable to 1]
[QWDLBot waits for match results (1 Hour Timeout)
[If either player reports (/msg QWDLBot report win)
[QWDLBot asks the reporting player for the demos / match logs]
[QWDLBot waits 10 minutes for the user to DCC him at least 2 maximum 3 .mvds / .log]
[Abstract bot coding to accept DCCs and file determination HERE]
[No Idea how this part works]
[If the .mvd and .log are DCCed successfully]
[Parse them for stats etc]
[Check the names of the players in the .logs to see if they match the name they registered with]
[Update Ladder Standings MySQL tables etc]
[Add pts to winning players ELO]
[Subtract points to players ELO]
[Update Individual Stats pages for both players LG/RL% etc]
[If the user doesn't upload anything for 10 minutes just cancel the whole match and resets CHALLENGE variable to 0]
[If 1 hours and no report from neither player set both players CHALLENGE variable to 0]
[IF player doesn't accept (/msg QWDLBot deny) OR 2 minute timeout]
[Reset CHALLENGE variable to 0]
{/End Start a new match}
{Check player ranking / wins/losses}
[e.g. command: /msg QWDLBot stats username]
[QWDLBot checks username in MySQL database for players ELO / Match Stats]
[QWDLBot returns a message something like (username 32-1 | 1035.ELO)
{/End Check player ranking / wins/losses}
Benefits of having an IRC bot to control match creation / reporting:
Games potentially could be started within the ezquake client because ezquake suports connecting to IRC
Everyone that I know who plays quakeworld regularly hangs out on IRC anyway.
I don't see any negatives other than there might be a stronger possibility for abuse than a web interface (I bet they're equal)
Benefits of non-scheduled matches:
Will definitely promote more activity because humans are impulsive and usually dont like to wait around for a required time for shit
Play anytime you want if another player is on IRC and willing
So would any coders / Quake enthusiasts be interested in doing some sort of a project like this with me?
And how about players, is there anyone else out there who would love to have this as a league option?
Foogs' idea for a QuakeWorld 1v1 Duel Ladder:
---------------------------------------------
*Note* I haven't taken the time to re-read any of this. I'm sure I'm missing tons of shit but this is probably good for a good scratched up outline. It wasn't originally created to be a forum post but I decided to post it anyway. Sorry for the shitty formatting.
*Note* I don't really know any programming languages at all. I need to learn something. I do know HTML/CSS and my way around Adobe Photoshop though if that's any use.
I'm not begging for this to be done but can you imagine how rad it would be to be able to use this league to judge your skills / play Quakeworld? It could be adapted for 2v2 / 4v4 as well!
Edit: Matches would actually be considered just 1 map. e.g. 1 won map = 1 match win. Random selection of maps from map pool (TB5: dm2, dm4, dm6, ztndm3, aerowalk)
[MATCHES]
[3 Maps = 1 match (Best of 3)]
[Only maps from current ladder map pool]
[Season last 3 months or something like that]
[#1 Rank = Ladder Season Champion]
[Top 8 players at the end of the season get invited to True Ladder Season Champion Tournament to decide who the best really is (Non obligatory)]
[PTS/Divs]
[Read about ELO: http://en.wikipedia.org/wiki/Elo_rating_system]
[No Divisions. Anyone can play anybody]
[You earn more points if you play/beat a person with equal or ELO rating than yourself]
[You lose more points if you play/lose a person with a lower ELO rating than yourself]
[WEB INTERFACE]
[VIEW 1v1 LADDER STANDINGS (User names clickable / takes you to their stats page)]
[Uses Ladder Standings MySQL Database/Tables or whatever to store]
[View individual player statistics: LG% / RL% / Average Frags per map / Total Frags / Efficiency / ELO]
[Register FOR 1v1 LADDER .html/php]
[desired username]
[desired password]
[email address]
[List akas] (Required for the admin to review your application)
[captcha]
[submit]
[Saves their information into the QWDL UserWaiting MySQL database]
[Emails the admins of the league with the applicants information]
[Admin has to okay the registration somehow..]
[If admin okays send confirmation email]
[If admin denies send denial email]
[FILE MATCH COMPLAINT .html/php]
[Basic form emailer to ladder admins email account]
[OR contact information for current Ladder admins]
[QWDLBot Manual .html/php]
[documentation on the bot]
[IRC BOT INTERFACE]
*Note* Does not handle new player registrations *Note*
If player isn't logged into the bot ignore any commands or messages sent to it
---Commands---
*Notes* QWDLBot checks IP/Hostmask of the IRC user to see if that user is still the same user before any command is executed
{Login to bot}
[command : /msg QWDLBot login username password]
[QWDLBot checks the MySQL user database to verify if the login is correct]
[IF login info is correct give them a welcome message]
[Welcome username. There is # left days on the current ladder season]
[Use IP somehow for users session]
[IF login info is incorrect give them a wrong username/password message]
{Start a new Match}
[e.g. command : /msg QWDLBot challenge username-of-to-be-challenged]
[QWDLBot checks the CHALLENGE variable of username-who-is-challenging]
[IF CHALLENGE variable = 1 (player has challenged someone else)]
[QWDLBOT messages username-who-is-challenging telling him he can only challenge one person at a time]
[IF CHALLENGE variable = 0 (player hasnt challenged anyone else)]
[QWDLBot checks same User database website uses to see if the player exists]
[IF player exists]
[QWDLBot sets both players CHALLENGE variable to 1]
[QWDLBot messages username-of-to-be-challenged With username-who-is-challenging (With his stats / Ladder ELO) to see if he accepts]
[IF player accepts (/msg QWDLBot accept)
[QWDLBot sets username-of-to-be-challenged CHALLENGE variable to 1]
[QWDLBot waits for match results (1 Hour Timeout)
[If either player reports (/msg QWDLBot report win)
[QWDLBot asks the reporting player for the demos / match logs]
[QWDLBot waits 10 minutes for the user to DCC him at least 2 maximum 3 .mvds / .log]
[Abstract bot coding to accept DCCs and file determination HERE]
[No Idea how this part works]
[If the .mvd and .log are DCCed successfully]
[Parse them for stats etc]
[Check the names of the players in the .logs to see if they match the name they registered with]
[Update Ladder Standings MySQL tables etc]
[Add pts to winning players ELO]
[Subtract points to players ELO]
[Update Individual Stats pages for both players LG/RL% etc]
[If the user doesn't upload anything for 10 minutes just cancel the whole match and resets CHALLENGE variable to 0]
[If 1 hours and no report from neither player set both players CHALLENGE variable to 0]
[IF player doesn't accept (/msg QWDLBot deny) OR 2 minute timeout]
[Reset CHALLENGE variable to 0]
{/End Start a new match}
{Check player ranking / wins/losses}
[e.g. command: /msg QWDLBot stats username]
[QWDLBot checks username in MySQL database for players ELO / Match Stats]
[QWDLBot returns a message something like (username 32-1 | 1035.ELO)
{/End Check player ranking / wins/losses}
Benefits of having an IRC bot to control match creation / reporting:
Games potentially could be started within the ezquake client because ezquake suports connecting to IRC
Everyone that I know who plays quakeworld regularly hangs out on IRC anyway.
I don't see any negatives other than there might be a stronger possibility for abuse than a web interface (I bet they're equal)
Benefits of non-scheduled matches:
Will definitely promote more activity because humans are impulsive and usually dont like to wait around for a required time for shit
Play anytime you want if another player is on IRC and willing
So would any coders / Quake enthusiasts be interested in doing some sort of a project like this with me?
And how about players, is there anyone else out there who would love to have this as a league option?
--irc.quakenet.org #telefrag.me and #QWL | foogsQuakeWorld Ladder