(read post below)
Summary and Pseudo Code
I was just running some tests and dojo and I realized the votecall system is flawed. According to my investigation:
- Code: Select all
vcall timelimit -1
vcall timelimit -1
vcall timelimit -1
vcall timelimit -1
The vote call system grabs object of maps, for the sake of this example, we'll call it an array of maps. This array of maps is seemingly:
- Code: Select all
maps_to_vote($curmap,$limit) {
// returns an array of maps
return get_maps($curmaps+1,$limit)
}
Unfortunately, this array of maps that it returns is in the order in which the packs were loaded, no randomization.
A 'Live' Example
So say my maps are loaded:
- Code: Select all
map 1
map 2
map 3
map 4
map 5
map 6
map 7
map 8
map 9
map 10
the vote call comes up, map 4 is selected. At the end of this match, the maps that will be in the vote call will be:
- Code: Select all
map 5
map 6
map 7
map 8
map 9
Why Is This a Problem?
Some maps will be played less because they are loaded next to other more popular maps. This can send some people into a sort of 'strategy spiral', where they've built up many strategies on a few maps but refuse to play other maps where their strategies don't apply. This of course results in them getting their asses handed to them but players who have developed better strategies, leading them back to the popular maps where they feel safe.
A Proposed Solution
Randomizing the data object that's used as a pool on every vote call could alleviate the problem.