Jump to content

Need some braniac input here!


TimUSA

Recommended Posts

I run a gaming site for a yacht racing simulator. http://vsk-ayc.totalh.com We use a unique scoring system we call a Bonus High Point System to generate the base points for our individual races and series results. it looks something like this:

 

Base Points = [bS]

1st = 50pts

2nd = 47pts

3rd = 44.3pts

4th = 42pts

5th = 40pts

6th = 38pts

7th = (50 - finish position - 6) or 37

*each position after is calculated the same way.

 

These base points are then used to calculate ladder points which I accomplish by using a factor for each race type.

 

Ad Hoc Race

Ladder Points = [bS]*1

 

Match Race

Ladder Points = [bS]*2

 

Club Fleet Race

Ladder Points = [bS]*6

 

Championship Race

Ladder Points = [bS]*8

 

The problem with this system is that it does not reward the best sailor, it rewards the most active player. I need to be able to reward a combination of both! I have tried just averaging the points, but this allows someone who say has only raced 3 races to be ranked higher then someone who has raced 200.

 

So my question is this. Given the know factors that i have [bS], the race type multiplier, ladder points, and number of races, what are your thoughts on how I could best achieve my goal of rewarding the best sailor. btw here is the code i use to generate the ladder results:

 

global $settings;

$query = 	"SELECT pts_table.skipperName, sum(pts_table.fleetPoints) as SumfleetPoints, smf_members.ID_MEMBER, thm.value AS country
		FROM pts_table
		LEFT JOIN smf_members ON pts_table.skipperName = smf_members.realName
		LEFT JOIN smf_themes AS thm ON (thm.ID_MEMBER = smf_members.ID_MEMBER AND thm.ID_THEME = 1 AND thm.variable = 'country')
		WHERE pts_table.fleetPoints> 0 
		GROUP BY pts_table.skipperName 
		ORDER BY SumfleetPoints DESC;";
$result = mysql_query($query);
if(mysql_num_rows($result))
{
echo'
  <table class = "bordercolor" cellSpacing="1" cellPadding="1" width="100%" border="0">
    <tr class ="catbg">
      <td width = "100%">Fleet Race Ladder:</td>
    <tr>
  </table><br>
  <table class = "bordercolor" cellSpacing="1" cellPadding="1" width="100%" border="0">
    <tr class ="catbg4">
    	<td width = "5%"></td>
      	<td width = "70%">Skipper Name:</td>
      	<td width = "25%">Ladder Points:</td>
    </tr>
  </table>';
$x = 1;
  while($row = mysql_fetch_row($result))
  {
  echo'
  <table class = "bordercolor" cellSpacing="1" cellPadding="1" width="100%" border="0">
    <tr>
    	<td width = "5%" class = "catbg2"><img src="' . $settings['default_images_url'] . '/flags/' . $row[3] . '.png" /></td>
      	<td width = "70%" class = "titlebg">' . $x++ . ': ' . $row[0] . '</td><br>
      	<td width = "25%" class = "catbg2">' . $row[1] . '</td><br>
    </tr>
  </table>';
  }
}

Link to comment
Share on other sites

Calculate the difference between ranks in percentage...

 

The difference in points between 1st and 2nd is 6%. 2nd and 3rd is ~6%. In most point-type situations, the difference is much greater, sometimes exponential between placements.

 

The difference in points between 1st and 7th is 26%. This is not very rewarding for the first place finisher.

 

Perhaps a better point algorithm could be based on time completed to time expected for given course. This would reward a racer more on individual performance than placement.

 

I could come up with an algorithm for you to try out, but i really don't know enough about the game to help beyond this.

Link to comment
Share on other sites

TimUSA,

 

You might try some sort of percentage combo made up of your total score and your average score, where your average score makes up 80% and your total score makes up 20% of the overall score.

 

Otherwise, you might try something using a standard deviation of the number of races participated in or something along those lines.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.