Hello There, Guest! Register



Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Server subdivisions
#1
Exclamation 
As probably most of us have noticed, the system doesn't splits the players equally, but put 20 on the 1st one and the rest on the 2nd (and so on).
I think this is a "big problem" (if you can call it this way) that deserves a thread.
If 21 players join a race, someone will be alone.
Would be better if the system splits players in half. or at least put 10 players on the 1st and the rest on the 2nd.
You have 26 players e.g. It's not an issue if the split isn't 13/13, but 10/16 split is surely better than 20/6 split.
Reply
#2
Yeah i too would like to see this. I dont exactly know how to ideally split it. However, something to do with score, fastest laps and incident points?

For example if 26 people register and 16 of those have <2 inc point average and the rest have >3. A 16 10 split to seperate the cleaner drivers from the rest might be nice.
SX Racing Youtube: bit.ly/SxRacing
Reply
#3
Agree, was just now on server two, 4 people in total, 1 did not join at all (I think) the other two dropped out right after they joined. So a race on my own Smile
Reply
#4
Yes this needs fixing.
Reply
#5
Ordered by skill points/safety rating, then split in half. Smile
Reply
#6
Hi everyone, first post here. Let me just first say I absolutely love this App! <3

Now to the problem at hand, I thought of a robust algorithm for fair splitting. Works for any tracks, any number of drivers, any number of servers, providing a 'fair' split, with top drivers in more packed server whenever possible, no servers at less than half grid, and of course mimimum number of servers is use!

Let's say you have
  • A track whose start grid can accomodate G drivers (for my example G=20)
  • A group of N ranked drivers (formy example N=12,18,25,...,64)
  • A number of servers S (for my example S=3)
Here's how it would work:
  1. If N>G*S: fill all servers (not enough servers for all the drivers!)
  2. If 0<N<=G: everyone on server 1
  3. If G<N<=1.5xG : split 50%/50% on servers: S1=S2= N/2 (with uneven N, favor highest split server)
  4. If 1.5xG<N : fill Server 1, rest is split between remaining servers as per rule 2&3&4 recursively
Exemples (G=20, S=3) with increasing number of drivers N:
Code:
N=12: S1=12 | S2=0  | S3=0  | rule2: all on S1
N=18: S1=18 | S2=0  | S3=0  | rule2: all on S1
N=25: S1=13 | S2=12 | S3=0  | rule3: 50/50 split on S1&S2 (round towards S1)
N=28: S1=14 | S2=14 | S3=0  | rule3: 50/50 split S1&S2
N=35: S1=20 | S2=15 | S3=0  | rule4: fill S1, 15 drivers remain, rule 2: all on S2
N=42: S1=20 | S2=11 | S3=11 | rule4: fill S1, 22 drivers remain, rule 3: 50/50 on S2&S3
N=49: S1=20 | S2=15 | S3=14 | rule4: fill S1, 21 drivers remain, rule 3: 50/50 on S2&S3 (round towards S2)
N=57: S1=20 | S2=20 | S3=17 | rule4: fill S1, 37 drivers remain, rule 4: fill S2, rule 2: all on S3
N=64: S1=20 | S2=20 | S3=20 | rule1: fill all (not enough servers)

I hope I am being clear!
As you can see, load is spread, so no secondary server is left with a handful of drivers. At the same time, higher splits are favored : Server 1 load is always high.

Any thoughts? I am willing to provide pseudo-code or actual tested code for this, in any language.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)