Joined: 22 May 2008, 13:29Posts: 1379Location: The 23rd plane of the Abyss

more players with 'rating' would likely join team games then... i knew i would lose rating that team game, cuz other than my teammates (alrubin - about 1600 rating, darlingm - about 1750 rating?!) the other teams were straight noobs. but i like team games, and i'll join them if i can find a 'satisfactory' team. losing rating cuz of it never bothers me... i've been known to sacrifice rating just for the **** of it

but i'm one of the few 'internationally ranked' players that plays team games. maybe the only one... for that reason alone i believe a change is in order

After some work (and a little research), i think i have finished my system. The code is not ready, but as the formulas are i think i can post it here in two days. Let me explain how it works:

Every player is assigned a rating and a spread. The spread means how the system is sure about your strength. The player`s assumed strength is the rating plus the spread. So a player with 1000 rating and 200 spread is assumed to be better than a player with 1100 rating and 0 spread, but as the second rating is more reliable, he will have a better position in the leaderboard. The spread will allways decrease after a game, but after some games it will be very close to a fixed value, and there will be no need to play many games to get a good position. It is made becouse the system will inicially make large upgrades in ratings, and without it newbies with a lucky strike of games would sometimes reach a much higher rank than they should. (And joining some restricted games that he should not)

You will generally win or loose less points if the other players you play with have high spread. Opposite is true.Your updates in rating will be much smaller as your spread become smaller.If one player is much stronger than another, it may win more points by defeating someone with high spread than defeating someone with low spread, as there will be a chance that this player with high spread be much stronger than his rating suggests. After your rating is consistent, the adjustments will be around +50, -50. While a newbie, the adjustment may be high (More or less 300), but should quickly converge.The more players in a game, more points you can gain (or loose) with it. But the difference is small, about 15% at max. (From a 5-players game)

/** * Returns the new rating for an inputed rating based on other ratings. * * @param rating The rating to return the new rating for. * @param actualRank The actual rank. Rank is the actual rank of the player in the * competition based on score (1 for first place, numPlayers forlast). If the * player tied with another player, the rank is the average of the positions * covered by the tied players. * @param others The other ratings. * @return The new rating. */ private static Rating getNewRating(Rating rating, double actualRank, RatingList others) { Rating newRating = new Rating(); newRating.setId(rating.getId()); newRating.setAccount(rating.getAccount());

// sets the new rating newRating.setRating(convertStrengthToRating(rs*exp(update)));

// and return the new rating return newRating; }

/** * Returns the new ratings for the inputted data. * * @param actualRanks The actual ranks. Rank is the actual rank of the player in the * competition based on score (1 for first place, NumPlayers forlast). If the * player tied with another player, the rank is the average of the positions * covered by the tied players. * @param ratings The ratings which match the inputed ranks. * @return The new ratings in the same order as the inputed ratings. */ private static RatingList getNewRatings(DoubleList actualRanks, RatingList ratings) { RatingList newRatings = new RatingList(); for (int i = 0; i < actualRanks.size(); i++) { double actualRank = actualRanks.get(i).doubleValue(); Rating rating = ratings.get(i); Rating newRating = getNewRating(rating, actualRank, ratings); newRatings.add(newRating); } return newRatings; }}

With some delay... here it is. Now that aschi told me the ratings could never go negative, and suggested me to add volatility to the calculations, i fear the system is not as simple as it once was.Kran

Note that the games are created between random players, without any kind of matchmaking. The system will work better (converge faster to the true strength of a player) when the one is playing with people of close rating. (What we expect to happen in the true game!)

Thank to put it in a maths language that's a lot more understandable than program stuf.Unfortunately, my maths level isn't high enough to apreciate your work, by the way how old did you say you are ?

Just a question, does volatibility go down "naturaly" with time, i mean do you have consider to use number of games played to adjuste the volatibility, cause if you system works well (i hope he will), more you play more your rank is near of you "real" one, so i guess volatibility limit should be 0 when numbers of game reach infinity.

Or and another, i really wonder why you 've decided to use the 3/Pi^2 constante, that looks artificially sophisticated to me.

Unfortunately, my maths level isn't high enough to apreciate your work, by the way how old did you say you are ?

14

Quote:

Just a question, does volatibility go down "naturaly" with time, i mean do you have consider to use number of games played to adjuste the volatibility, cause if you system works well (i hope he will), more you play more your rank is near of you "real" one, so i guess volatibility limit should be 0 when numbers of game reach infinity.

It should be, but if check the volatility update, you will see a +100. This will garantee the volatility wont go below, lets say, 40, so your rating will keep updating.

Who is online

Users browsing this forum: No registered users and 2 guests

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum