Project : New Ladder

Discussion of all aspects of multiplayer development: unit balancing, map development, server development, and so forth.

Moderators: Forum Moderators, Developers

Just_end_turn
Posts: 71
Joined: December 31st, 2009, 3:09 pm

Project : New Ladder

Post by Just_end_turn » October 28th, 2010, 6:14 pm

[Everything in still under discussion, no real work (other than find ideas) has started.]

Hi,

Quetzacatoal and me have been thinking about making a new wesnoth ladder. That new ladder would include new features and also be more maintanable than the current one.
The current ladder may look good, but it has some problems and lack some nice features. The user problems are :

- The ladder only handles 1v1 matches.
- There isn't really any active contributor to the current code.
- Players can have an unlimited number of accounts
- Ranking system is plain elo, not the most adapted system perhaps. (This is still under discussions)
- Changes to ladder rules or FAQ can't be made without changing the code.
- The ui could benefit from some work. (The logout link isn't really easy to find...)

They are also some tecnical issues :

- They are some security holes.
- The code sin't easy to maintain. ( Code isn't split from HTMl, etc...)
- The admin interface is quite limited.

As the code base isn't very clear, it's hard to fix those issues, and fixing some issues won't solve the problem itself, so we thought about a complete rewrite from scratch.
We also wanted the ladder some new features such as :
- Statistics from replays. (It could help to find issues about map and overall balance.)
- 2v2 ladder.
- Integration with replay server and lobby.
- More possibility to comment games.


How can you help ?
- Give some new ideas about what could be done.
- Try to find a ranking system that would work better than the current one.
- Design (Later on...)
- Code.

[Technical stuff.]
This last item is probably the most significant, as Quetz is a bit busy atm. The code will be written in Python (Probably Django.) or Ruby (Ruby on Rails). If you know one of those languages and you want to help (Even if its only small patches or code reviews), please say it, so we can decide which language will be the best (We want the new ladder to be easy to maintain.).
We'll also need HTML/CSS/JS people to make the site pretty, as we will use the MVC approach, you don't need to know Python or Ruby to help with this aspect.

JET.

[Sorry for my bad english, they're probably many spelling mistakes, send me a pm so I can fix those.]
Last edited by Just_end_turn on October 30th, 2010, 12:26 pm, edited 1 time in total.

User avatar
Quetzalcoatl
Posts: 207
Joined: March 18th, 2009, 3:26 pm

Re: Project : New Ladder

Post by Quetzalcoatl » October 29th, 2010, 7:26 am

Yep. Current Ladder is great success and we are thinking about bringing it even further. Actually we want to start new era in multiplayer gaming that will finally end domination of those average mp commercial games ;). Besides that new ladder would be a great opportunity to contribute back to Wesnoth development as it could give better balancing data. The problem is however we both are not really into php :augh:.

So if anybody would like to participate or have any thoughts about that idea this is the place where you should put it :eng:. We are looking for other ppl to participate as ppl say that cooperation is a key to success :|. About language and framework, decision wasn't made yet so feel free to suggest anything you think is cool and awesome.

About new features I also thought of hidden account where player is actually ranked but his rank is invisible to other ppl as some ppl do not like competitiveness but finding reasonable players in lobby is quite challenging :D.

Cheers
Q
Ten soldiers wisely led will beat a hundred without a head.

User avatar
krotop
2009 Map Contest Winner
Posts: 433
Joined: June 8th, 2006, 3:05 pm
Location: Bordeaux, France

Re: Project : New Ladder

Post by krotop » October 29th, 2010, 8:31 am

Just_end_turn wrote: Quetzalcoatl and me have been thinking about making a new wesnoth ladder. That new ladder would include new features and also be more maintainable than the current one.
Why not modifying the existing ladder instead of creating a new one ? Please bear with my ignorance on the ladder things, but among the features or modifications you listed it doesn't seem like any would motivate a fork.
Don't trust me, I'm just average player.
***
Game feedback for the Nightmares of Meloen
Art feedback by mystic x the unknown

Just_end_turn
Posts: 71
Joined: December 31st, 2009, 3:09 pm

Re: Project : New Ladder

Post by Just_end_turn » October 29th, 2010, 11:21 am

krotop wrote:
Just_end_turn wrote: Quetzalcoatl and me have been thinking about making a new wesnoth ladder. That new ladder would include new features and also be more maintainable than the current one.
Why not modifying the existing ladder instead of creating a new one ? Please bear with my ignorance on the ladder things, but among the features or modifications you listed it doesn't seem like any would motivate a fork.
Modifying the current ladder would require a much larger amount of work than writing a new one from scratch. This is because the code has some structure problems, like no use of templates, which would require a very large amount of work to change.
So the reason why we "fork" the project isn't only because that we want to add features or modify some of the existing ones, it's mainly because the current ladder code doesn't let you add or change things easily.

If you want more details, I find those problems actually :

- No templating and no MVC use. This means that the HTML isn't separated from the PHP, which makes contribution and clode clarity much harder. Same for the javascript code.
- No use of abstraction in the db querries, that means the project can't change from MySQl to another database without changing all querries.
- Some pages arn't easily editable, like the FAQ, if the ladder admin want to change something, he needs to change the code, something that he may not know. (This happened to Rigor.)
- The code lacks documentation (External ressources are documented, but not the code itself.), and writing documentation from unfamiliar code isn't easy. Example with the INSTALL file ("The Gaming Ladder requires a web server with at least PHP version ??? running MySQL version ???.")

User avatar
pauxlo
Posts: 1046
Joined: September 19th, 2006, 8:54 pm

Re: Project : New Ladder

Post by pauxlo » October 30th, 2010, 6:37 pm

I'm not sure whether it changes anything, but make sure to read this thread in the Experimental Corner, where there were some ideas to implement part of the ladder in Wesnoth.

I'm not saying that you should not do your project, but have this in mind, to make some interface between your ladder server and the game server possible if/when it is ready.

(I imagine some add-on which enables automatic recording and registering of ladder games with a checkbox, or such.)

Just_end_turn
Posts: 71
Joined: December 31st, 2009, 3:09 pm

Re: Project : New Ladder

Post by Just_end_turn » October 30th, 2010, 11:42 pm

Actually, we didn't got that far, but the basic idea was to implement a ladderbot.

That bot would log on the different servers and people could so something like : whisper ladderbot the_player_you_won game_comment and then the bot would automatically add the win and search for the replay on the replay server.

I don't know anything about WML and lua, but would it be possible to send info to a wesbite from a wesnoth add-on ?

tiboloid
Posts: 15
Joined: June 11th, 2009, 1:49 am

Re: Project : New Ladder

Post by tiboloid » November 10th, 2010, 5:19 am

Hey all,

It looks like a great idea, here are a couple of suggestions:

* often when I loose a game in a given match-up, I want to watch replays of others more experienced players with the same matchup to see how they handle it. It is a pain with the current version of the ladder site to do that, so my idea is a search feature that would allow for specific match-ups.

* allow draws, with corresponding rating handling.

* sometimes I'm in a situation where I have access to Internet but no Wesnoth client installed. It would be great to be able to watch replays of ladder games directly on the site.

I'm happy to help if I can

Cheers

Noy
Inactive Developer
Posts: 1321
Joined: March 13th, 2005, 3:59 pm

Re: Project : New Ladder

Post by Noy » November 10th, 2010, 6:35 am

Just_end_turn wrote: - Statistics from replays. (It could help to find issues about map and overall balance.)
We've generally come to the view that quantitative analysis really doesn't help with balancing, partly because there are so many variable involved. Not saying you shouldn't do it, but its not the balancing tool that people think it might be.
Just_end_turn wrote: - 2v2 ladder.
My view? Its unworkable or would not give an accurate assessment of skill. My suggestion would be to bin this idea.
Just_end_turn wrote: - Integration with replay server and lobby.
It would be a one way integration as you know (ie the ladder stays as an unofficial part of the game.) I'd be happy to see some of the features we've added be used to make it easier to run the ladder off site.
Just_end_turn wrote: - More possibility to comment games.
Absolutely
I suspect having one foot in the past is the best way to understand the present.

Don Hewitt.

Just_end_turn
Posts: 71
Joined: December 31st, 2009, 3:09 pm

Re: Project : New Ladder

Post by Just_end_turn » November 10th, 2010, 1:47 pm

Noy wrote:
Just_end_turn wrote: - Statistics from replays. (It could help to find issues about map and overall balance.)
We've generally come to the view that quantitative analysis really doesn't help with balancing, partly because there are so many variable involved. Not saying you shouldn't do it, but its not the balancing tool that people think it might be.
Just_end_turn wrote: - 2v2 ladder.
My view? Its unworkable or would not give an accurate assessment of skill. My suggestion would be to bin this idea.
Just_end_turn wrote: - Integration with replay server and lobby.
It would be a one way integration as you know (ie the ladder stays as an unofficial part of the game.) I'd be happy to see some of the features we've added be used to make it easier to run the ladder off site.
Just_end_turn wrote: - More possibility to comment games.
Absolutely
About lobby integration, I know a ranking system is a FPI and is not what the wesnoth project wants, but it could be done as a bot, no ?

2v2 ladder is not really to give an accurate ranking, but to make good 2v2 games easier (Many newbies, quitters and worse...) and to learn to play 2v2 better. That's actually how many people use the 1v1 ladder.

About the balance, I'm not sure there is acutally a good way to see if balance is right.. Many players, even good ones, often feel they are imbalance in some matchups/maps, but ir's hard to give a proof of it. Often people will say : " You didn't beat a 2000+ ladder players in your replays with your idea, so we don't consider the game as imbalanced.". Also people sometimes don't want/don't have the time to register on forums and give their point of view. So I feel like anonymous statistics, even if not representative, are a nice help for balance...
I'm just giving an example, because we don't really have trustworthy stats, but if people choose more northeners than elves, it's maybe not only because they like poison. (And elves are the race people know better from the campaigns...)

User avatar
Rigor
Posts: 941
Joined: September 27th, 2007, 1:40 am

Re: Project : New Ladder

Post by Rigor » November 11th, 2010, 8:52 am

ive been reading this some weeks now and always i wonder when im gonna reply accordingly, but i always seem to lack time these days. i dont want to give u the false impression that im not interested, on the contrary, i am, so here some points where i want to contribute with my experience:

http://en.wikipedia.org/wiki/Glicko_rating_system
u can read through it, if clicking is too much asked of u then try this line: The RD measures the accuracy of a player's rating. For example, a player with a rating of 1500 and an RD of 50 has a real strength between 1400 and 1600 with 95% confidence. (RD stands for rating deviation) [...] the change is smaller when the player's RD is low (since their rating is already considered accurate), and also when their opponent's RD is high (since the opponent's true rating is not well known, so little information is being gained). The RD itself decreases after playing a game, but it will increase slowly over time of inactivity.

i find this to be a very nice system, it could help in this project.

2v2 ladder: i simply trust ur judgement noy and if U say its too complex we dont have to have it. i remember tesafilmchen working on it for so long that he had no time for anything else and its still not resolved. what i would love to see however would be some official ladder tournaments (one-time-events). just for fun.

about stats: we know that its not a method to see whether map a b c or faction x y z is balanced, but we still want it even though some ppl could misunderstand this to be the last piece of wisdom in wesnoth. after we got the data we still can discuss if it helps u or not to balance anything, and if its no good for balancing, its still interesting for the stalker-in-us.

ladder website: its really annoying to be unable to change even the FAQ, ack! some days ago this guy here http://ladder.subversiva.org/gamedetail ... %3A16%3A01 was really giving me a hard time, the chat protocol is in-game.

i dont understand: "make it easier to run the ladder off site." please clarify, is there gonna be some feature like auto-uploading the replay or something ? or a ladderbot with a command like /ladder and anybody who responds with /ladder yes will be connected to a random map game? -> cool.

User avatar
tekelili
Posts: 1038
Joined: August 19th, 2009, 9:28 pm

Re: Project : New Ladder

Post by tekelili » November 11th, 2010, 2:37 pm

A 2v2 ladder is totally necesary. May be it wont be a very accurate rank, but I am pretty sure it will have some degree of accuracy to enable players have mates and opponents about desired skill. I cant prove it, but extrapolating my limited knowledge about others players I dare to say quite decent players quited from wesnoth just because he wanted play 2v2 games and ended exhausted of noobs, quitters and worse.

Here is proposal I made tessa months ago to implement a 2v2 or 3v3 rank:

team rank= (players in team rank addition)/(players in team)

player new rank after win/lose= team ranks variation applied to each player rank


Example:
team 1, players rank 1600 and 1650. Team rank=1625
team 2, players rank 1800 and 1500. Team rank=1650

Team 1 won and gave (just imagine) +20 to team 1, -15 team 2

players rank after game become 1620,1670, 1785 and 1485.

EDIT:
Just to dont be understood. 2v2 players rank should be different from 1v1 rank for lot of reasons. Fact that you would be playing a totally different set of maps is just one od the resons.

Of course, players could also have a composed rank of 1v1 and 2v2. When I played years ago Magic The gathering players had stabdard, extended, limited and composed rank, because MTG could be played in different ways.
Last edited by tekelili on November 11th, 2010, 7:47 pm, edited 1 time in total.
Be aware English is not my first language and I could have explained bad myself using wrong or just invented words.
World Conquest II

Just_end_turn
Posts: 71
Joined: December 31st, 2009, 3:09 pm

Re: Project : New Ladder

Post by Just_end_turn » November 11th, 2010, 6:02 pm

Rigor wrote: i dont understand: "make it easier to run the ladder off site." please clarify, is there gonna be some feature like auto-uploading the replay or something ? or a ladderbot with a command like /ladder and anybody who responds with /ladder yes will be connected to a random map game? -> cool.
This won't happen, it's against a major wesnoth FPI.

More something like /ladder win <opponent> <comment> that would report automagically to the ladder.

2v2 ladder, Tekelli, I saw you had some ideas for it and that you really wanted it. (I remember you talk about it in a conquest game or whatever.)

The problem with your idea tekelli is, that, if I understand well, 2v2 ranking wouldn't be separated from 1v1 ? Or your proposal is to make it possible to be in several teams (So one has an individual ranking.)?

Aniway I think that, the best ranking system for 2v2 will come with playtest.

Rigor > I'll take a look at it.

User avatar
Rigor
Posts: 941
Joined: September 27th, 2007, 1:40 am

Re: Project : New Ladder

Post by Rigor » November 11th, 2010, 6:44 pm

very good, i read some more articles about rankings in a competitive environment and found this one:

http://atom.research.microsoft.com/true ... lator.aspx

and that one:

http://www.moserware.com/2010/03/comput ... skill.html

i found the article really begins to be interesting with the chapter "Let’s Talk About Chess" where the first basics give way to the more geeky stuff.

i think 2v2 ratings should be separated from 1v1 ratings.

User avatar
Quetzalcoatl
Posts: 207
Joined: March 18th, 2009, 3:26 pm

Re: Project : New Ladder

Post by Quetzalcoatl » November 13th, 2010, 10:39 am

Howdy!

I didnt had a lot of time lately and I will be away for keyboard for a week or so :) very soon, so do not expect me to be able to respond in the near future. I have few lines of code already but its not worth to create public repository for it and obviously it doesnt work together yet.

Implementation details:
New ladder will be developed using Ruby/RubyOnRails/Git/Github/Heroku.
I already uploaded empty project to heroku. You can find it (and any further updates) here: http://ladder2.heroku.com.
So far only I and Just_end_turn were interested in developing new ladder but if any of you would like to join we will be very happy to welcome you aboard.

Currently Im working on WML parser for ruby. Extracting data from replays through regular expressions is frustrating and while I was working on connecting to mp server and found it uses WML (I already have some code that can send and receive messages) for communication handling all of those dirty hacks would result in kinda spaghettish code in the long run. There is already python parses but as it depends on python interpreter its not an option. You may obviously ask why Im trying to connect to mp server instead of finishing basic things and share them first. Thats the first improvement that have to come: Registration (details below). While I will have registration and reporting games finished I will push initial version to public repository (unless somebody have other idea).

More details about first improvement:
No more account staling. A lot harder to create fake accounts. More reliable players.
Hows this possible? While you would like to register there will a button called: 'obtain registration code' or such, and obviously that code would be required to register. So, after clicking it mp bot will log into the lobby and send you (whisper to desired user) code required to register. However bot will check if you have registered nickname and when you registered (thats possible via /info nick command) on forums (so for example only accounts at least 3? - 6? - 12? months old would pass the check). This way nobody will be able to register somebody else nickname and creating fake accounts would be a lot more frustrating, besides that it will increase average skill level of ladder newcomers as more likely they would have more experience.

Ranking system:
You know I dont like ELO. No matter if its ELO or any of its variations like glicko666 or fakeskill or halfskill or whatever they call it. The problem with ELO (if I understand it correctly) is that (no matter how values are set as they result only in accurate or inaccurate rank) you play with any opponent to advance. One player can play good players while other can play only weak ones. If set properly it should result in accurate rank. This results however in crappy statistical data (I agree that statistics aren't very helpful in balancing - more details about that below) as there is no point to check how balanced matchup is if played by 2000 and 1500 and reduces amount of reliable games. Such approach also reduces opportunities to find player with skill similar to yours as other ppl can be in game with folks ranked much above or below them.

So new ranking system has to be developed unless somebody will prove that Im wrong :evil:. I already have a simple idea for replacement that can work, however Im not going to post it yet as I dont want it to be discussed now as I would prefer more approaches to be discussed here instead. Both existing and custom ranking system ideas are welcome. If you think thats impossible to develop better ranking system remember that mankind managed to archive greater things so far and after all we are going to start new era of online gaming :wink:.

Statistical part:
Obviously statistics are not very useful in balancing as a game outcome is summary of mistakes with RNG twist most of the times. That dosnt bother me hoverer and Im going to implement them :). Besides that if average game would be played by players of similar skill it should be a little easier to at least take a look at some suspicious matches (for that reason simple replay search feature will be implemented). The result should be to allow easier development of personal strategies, find games to prove yours balancing perspecitve and such... So after all this part of the new ladder instead of giving answers will try raise questions and give hints to players I guess.

2v2:
Dont have many thoughts about it yet so I will wait a while with comments.

The main goal of new ladder is to be more community and player friendly so there will be also more community stuff like rankings and more posting opportunities but that need to wait until basic features will be implemented.

Cheers
Q
Ten soldiers wisely led will beat a hundred without a head.

moserware
Posts: 1
Joined: November 13th, 2010, 4:19 pm

Re: Project : New Ladder

Post by moserware » November 13th, 2010, 4:26 pm

I replied to Rigor on my blog about using TrueSkill for this purpose: http://www.moserware.com/2010/03/comput ... skill.html

One particular thing to note is that TrueSkill was specifically design for the purpose of determining an individual's performance from team play. In addition, it easily handles the case of adding new people.

Furthermore, as long as you don't have more than 2 teams playing at once, the implementation is easy, especially if you can get a Gaussian implementation. For example,

see my C# implementation at https://github.com/moserware/Skills/blo ... culator.cs

and for PHP at

https://github.com/moserware/PHPSkills/ ... ulator.php

I've also seen a Ruby implementation on GitHub, but I haven't tried it myself.

Hope that helps,

Jeff

Post Reply