Custom Map Backlog

Started by knucracker, January 30, 2010, 08:09:49 PM

Previous topic - Next topic

Karsten75

Quote from: virgilw on January 31, 2010, 05:42:43 PM
So I show the difficulty on the overview now.  I also changed the background color to match the difficulty.  I don't know if I'll keep this or not.... just trying it out.

Cool, thanks.  Much more useful this way. The use of color to grade maps is neat.  I would probably suggest hues - Eg.  start with a light blue for trivial, and then darker to perhaps black for "expert only" maps.  But even this way it is usable.

CyberDyneSystems

Awesome!
This is very handy indeed.
Where else can we get so much support?
You da' Man Virgil!

Aurzel

actually he's not da' man, he's a demi-god
either way, still some awesome changes :D

zuzufan09

I wish I didn't spend yesterday morning downloading every map before this new update came out.  Would have been a lot smoother.

xing

well now that you can release more maps at once ... we - the map creators - will endeavour to post more  ;D

George

Can you still organize the full list by rating? just wondering

Siccles

And while we`re at it --- a option to sort the maps by the number of comments would be nice too

knucracker

Quote from: George on February 01, 2010, 05:41:13 PM
Can you still organize the full list by rating? just wondering
Not currently.  I left it out on purpose since I was trying to get rid of sorting altogether.  I also wasn't too happy with how the ranks worked out.  The ranks still have a purpose, I'm just not sure they are important enough to be a way to promote some maps above others.  I could be wrong and convinced otherwise, though.

Sauffaus

Quote from: virgilw on February 01, 2010, 06:06:22 PM
The ranks still have a purpose, I'm just not sure they are important enough to be a way to promote some maps above others.  I could be wrong and convinced otherwise, though.
You should do some math on the ranks... remove the highest quartil, the lowest quartil, and avarage the rest of the votes... then divide  "number-of-comments"(other than the map-makers) with "number-of-votes", and add that to the score.
That way you secure that odd-man-out-votes gets canned, and the final score also rewards a thread with many comments.

Bingo... a nice scoring-system, that is hard to mess with.

Sauffaus

Quote from: virgilw on February 01, 2010, 06:06:22 PM
... The ranks still have a purpose, I'm just not sure they are important enough to be a way to promote some maps above others.  I could be wrong and convinced otherwise, though.
I made this example rating-function in php... if you like it, you are welcome to use it as you please.

This function tries to take user-behavior into account, and filter out the most obvious attempts of tampering, while it rewards map-page-activity, and implements a more "democratic" calculation for the actual votes (Balance).

<?php
/*
$Votes = (array);//Fill this with all votes as integers between 1 and 5
$NumOfComments = (integer);//subtract map-creators own comments first
$NumOfDownloads = (integer);//subtract map-creators own downloads if possible
$DaysOld = (integer);//Number of days the map has been available
*/

function CalculateRank($Votes,$NumOfComments,$NumOfDownloads,$DaysOld){
sort($Votes,SORT_NUMERIC);
$NumOfVotes count($Votes);
$VoteThreshold 6;//minimum number of votes cast, to make them fully count

if($NumOfVotes 3){//only 0-2 votes available, so just set rank to neutral
$Rank 3.0;
} else if($NumOfVotes $VoteThreshold){//Downgrade vote-importance if only a few votes have been cast.
$Rank 3.0 + ( ((array_sum($Votes)/$NumOfVotes) - 3.0) / ( ($VoteThreshold+1)-$NumOfVotes) );
} else {//Enough votes, so do real statistics
$Votes array_slice($Votes,floor($NumOfVotes*0.25),ceil($NumOfVotes*0.5),false);//Remove Low & High
$Rank array_sum($Votes)/ceil($NumOfVotes*0.5);//Set Rank to avarage of remaining vote-values
}

$Balance 0;
foreach($Votes as $Value){//Calculate "positive-/negative-vote count"
if($Value 3){
$Balance++;
} else if($Value 3){
$Balance--;
}
}
$Rank += ($Balance/ceil($NumOfVotes*0.5))*0.5;//Weighing for "positive-/negative-vote count", rather than actual voted values ( = max. ±0.5)
$Rank += $NumOfComments/$DaysOld/100;//Reward for many Comments per day
$Rank += $NumOfVotes/$DaysOld/200;//Reward for many Votes per day
$Rank += $NumOfDownloads/$DaysOld/400;//Reward for many Downloads per day

return round($Rank,2);
}
?>