View Single Post
  #3  
Unread 03-28-2017, 11:42 AM
Mindless Mindless is on FIRE! 5+ wins in a row!
Hall Of Fame Staff
HEBREW BANHAMMER
Join Date: May 2006
Posts: 6,586
Mentioned: 713 Post(s)
Tagged: 56 Thread(s)
Estimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 stars
Ranked Audio Record
3 Won / 1 Lost
Estimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 7.84/10 starsEstimated Skill in Text: 7.84/10 starsEstimated Skill in Text: 7.84/10 stars
Ranked Text Record
34 Won / 6 Lost
Exclusive Text Record
1 Won / 1 Lost
Default

Quote:
Originally Posted by Indianapolis Jones View Post
Pointless because you don't have the userbase to pull it off plus this isn't a game where raw mechanical skill, knowledge on the latest metas from balance patches and partying up vs solos take president over knowing who you're VSing. Theres a reason people here prefer to pre arrange battles\have 3 days notice from tourneys ect. Plus most people prefer to pick their opponents spontainiously to get themselves motivated rather than have ELO RNG dictate they face *insert name* For the tenth time this week because the site doesn't have the numbers to support an ELO MM.
Which ever way you want to slice it, it wont work.
I've actually been working on a system off and on in my spare time writing pseudo code to try and figure out a good way to do the ranking system and I think it addresses this problem.

My method involves assigning a points to users that they gain or lose according to whether they win or lose. How many points the winner takes from the loser ranges on factors from the difference in estimated skill level, current rank and w/l record. Basically it works by having a range of 0-N where N is the cap of the maximum amount of points that can be taken. A user facing another with a much lower skill level than them would gain nothing from the win but an increase in w/l. Basically it would nerf someone like @Bnas from doing his goofy shit and being able to crack the top 100 because at a certain point you gain nothing from battling people that much lower than you. Also, the more you do it the faster it nets you nothing because your w/l goes up. I'll post it below but it's unfinished and a mess at this point.

Keep in mind this is pseudocode (Written with p5.JavaScript syntax for the most part):

Code:
var maxEstimatedSkill = 10;
var ELOPoints = NumberOfRegisteredUsers;
var MaxEloChange = 32;
//W-L expressed as decimal
var winLoss = 0;
//I'm not sure how exactly to express a mathematical formula for determining exactly how to remove the number of points taken
var pointSubtraction;

var User1 = {
//All numbers in here are random. I didn't feel like writing some actual code in
//a spreadsheet to distribute the ELO points amongst the current user count
//(139,421) randomly and then sorting it. This should do well enough to express what
//I'm getting at.
    currentRank: 35,
    EstimatedSkill: 7,
    CurrentEloPoints: 15000,
    winLoss = 75.3
}

var User2 = {
    currentRank: 1000,
    EstimatedSkill: 7,
    CurrentEloPoints: 1200,
    winLoss = 25.2
}

function Battle() {
    
    Predict = {
    User1PredictionScore = user1.CurrentEloPoints + (user1.currentRank + user1.EstimatedSkill + user1.winLoss);
    User2PredictionScore = user2.CurrentEloPoints + (user2.currentRank + user2.EstimatedSkill + user2.winLoss);
      if (User1PredictionScore > User2PredictionScore) prediction = User1 wins;
      if (User2PredictionScore > User1PredictionScore) prediction = User2 wins;
      if (User1PredictionScore == User2PredictionScore) prediction = CoinFlip; //do nothing
    }
    
    DetermineWinner = {
    if (user1VoteTally > greater than user2VoteTally) {
    user1 wins} else { 
    user2 wins
     }
    }
    
    Winner = Result
    
    DetermineRankChange = {
    if Winner was predicted {
    ELOAdded = MaxEloChange - (pointSubtraction)
    }
    if Winner was not predicted {
    ELOAdded = UnderDogWin
    UnderDogWin() {
    //Determine the amount of points added to the winner based on the amount of difference between the two.
    //Probably by using the PredictionScore.
        }    
    }
    }
}
__________________
Quote:
Originally Posted by Krhyme Killz View Post
lol...hava nagila nigga
Reply With Quote
Unread 03-28-2017, 11:42 AM   #3
 
Mindless Mindless is on FIRE! 5+ wins in a row!
Hall Of Fame Staff
HEBREW BANHAMMER
Estimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 starsEstimated Skill in Audio: 5.83/10 stars
Ranked Audio Record
3 Won / 1 Lost
Estimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 5.83/10 starsEstimated Skill in Text: 7.84/10 starsEstimated Skill in Text: 7.84/10 starsEstimated Skill in Text: 7.84/10 stars
Ranked Text Record
34 Won / 6 Lost
Exclusive Text Record
1 Won / 1 Lost
 
Join Date: May 2006
Voted: 95 audio / 718 text
Posts: 6,586
Mentioned: 713 Post(s)
Tagged: 56 Thread(s)


Default

Quote:
Originally Posted by Indianapolis Jones View Post
Pointless because you don't have the userbase to pull it off plus this isn't a game where raw mechanical skill, knowledge on the latest metas from balance patches and partying up vs solos take president over knowing who you're VSing. Theres a reason people here prefer to pre arrange battles\have 3 days notice from tourneys ect. Plus most people prefer to pick their opponents spontainiously to get themselves motivated rather than have ELO RNG dictate they face *insert name* For the tenth time this week because the site doesn't have the numbers to support an ELO MM.
Which ever way you want to slice it, it wont work.
I've actually been working on a system off and on in my spare time writing pseudo code to try and figure out a good way to do the ranking system and I think it addresses this problem.

My method involves assigning a points to users that they gain or lose according to whether they win or lose. How many points the winner takes from the loser ranges on factors from the difference in estimated skill level, current rank and w/l record. Basically it works by having a range of 0-N where N is the cap of the maximum amount of points that can be taken. A user facing another with a much lower skill level than them would gain nothing from the win but an increase in w/l. Basically it would nerf someone like @Bnas from doing his goofy shit and being able to crack the top 100 because at a certain point you gain nothing from battling people that much lower than you. Also, the more you do it the faster it nets you nothing because your w/l goes up. I'll post it below but it's unfinished and a mess at this point.

Keep in mind this is pseudocode (Written with p5.JavaScript syntax for the most part):

Code:
var maxEstimatedSkill = 10;
var ELOPoints = NumberOfRegisteredUsers;
var MaxEloChange = 32;
//W-L expressed as decimal
var winLoss = 0;
//I'm not sure how exactly to express a mathematical formula for determining exactly how to remove the number of points taken
var pointSubtraction;

var User1 = {
//All numbers in here are random. I didn't feel like writing some actual code in
//a spreadsheet to distribute the ELO points amongst the current user count
//(139,421) randomly and then sorting it. This should do well enough to express what
//I'm getting at.
    currentRank: 35,
    EstimatedSkill: 7,
    CurrentEloPoints: 15000,
    winLoss = 75.3
}

var User2 = {
    currentRank: 1000,
    EstimatedSkill: 7,
    CurrentEloPoints: 1200,
    winLoss = 25.2
}

function Battle() {
    
    Predict = {
    User1PredictionScore = user1.CurrentEloPoints + (user1.currentRank + user1.EstimatedSkill + user1.winLoss);
    User2PredictionScore = user2.CurrentEloPoints + (user2.currentRank + user2.EstimatedSkill + user2.winLoss);
      if (User1PredictionScore > User2PredictionScore) prediction = User1 wins;
      if (User2PredictionScore > User1PredictionScore) prediction = User2 wins;
      if (User1PredictionScore == User2PredictionScore) prediction = CoinFlip; //do nothing
    }
    
    DetermineWinner = {
    if (user1VoteTally > greater than user2VoteTally) {
    user1 wins} else { 
    user2 wins
     }
    }
    
    Winner = Result
    
    DetermineRankChange = {
    if Winner was predicted {
    ELOAdded = MaxEloChange - (pointSubtraction)
    }
    if Winner was not predicted {
    ELOAdded = UnderDogWin
    UnderDogWin() {
    //Determine the amount of points added to the winner based on the amount of difference between the two.
    //Probably by using the PredictionScore.
        }    
    }
    }
}
__________________
Quote:
Originally Posted by Krhyme Killz View Post
lol...hava nagila nigga
Offline   Reply With Quote