This sounds like a good start towards making things fair.
I wonder if it wouldn’t be even fairer to break ties by the number of cells each player lost by, rather than score? The score seems to measure mostly hitting obstacles, invalid commands, and stuff like that, while measuring how close a bot got to winning seems to fit in better with a racing game?
Given the current rules of the scoring system, it is likely that the player with the higher score avoided the most obstacles, used the most powerups and inputted the least invalid commands and thus won by the largest margin.
As such we currently have no plans to explicitly use the cell count as part of the winning criteria in the event of a tie. Should results after the first tournament indicate a flaw with the scoring system for tie breaking we will look into this suggestion further.
Winning is about speed, so using something other than speed (lets call it efficiency) to break ties for me is a better measure of a bot because it forces some more tact into our choices. In the case of this year’s challenge, efficiency is a bit harder to get right than pure speed (they are slightly different in my tests).
Just my thoughts on the distance VS score scenario
I would personally much prefer a tie-break metric that is much more aligned with how well you won. I think that @Malman’s suggestion of first looking at who had the biggest lead is a good one.
@KyleMc, you’re right that the score (at this point) is likely to correlate with the winner, but it does result in some weird behaviour. For example, a bot that’s currently losing a round using its oil will get it more points, but that is an objectively bad move in terms of winning the race. Since it gets more points this would make it a good move in terms of winning the tournament overall.
I guess I’m mostly just worried that we’ll run into a situation like last year, where the scoring mechanism became the core mechanic of the game. I’d rather the winner of the racing game be the bot that managed to go the fastest, not the bot that managed to get the most arbitrary points.
Biggest lead is great, I also thought of this initially, but there is some cases where this is troublesome.
There are cases where two choices traveled has equal distance traveled, but one path hit 4 instances of mud and merely accelerated over the problem. The other turned and had a clear road. maybe hitting 1 mud, picking up a oil and using that oil. Ignoring score and focusing on distance says that these two plays are essentially “even”.
In this scenario we have a 4 Mud path VS a 1 Mud with oil pickup and usage looking exactly the same.
This is a large concern to me.
When looking at score:
Choice 1: -12 points
Choice 2: +5 Points
This is my only real concern with ignoring score completely. Cases like above
But balance could be found,.
@WillieTheron - a bot that travels over 4 mud might go the same distance in that round as a bot that goes over 1, but the next round its acceleration will be cut and it will take a few rounds to accelerate up to speed again, making it end up slower overall!
I definitely agree with @justin.worthe that bots should focus on winning the race and not gaining score. And this is as one of the first people last year to use the fact that winning on score beat winning by combat.
If the developers are intent on using score though, maybe a good compromise would be to add, say 20 points to the score for each cell the bot travels forward. That way the main advantage would still come from going fast, but the other things the developers want counted will still be counted.
Assuming a max speed of 9 over 3 rounds distance traveled is identical for going straight and turning downwards.
Straight route = -6 score
Turning down = +12 score AND I can use 2 Oil powerups in the same move so the influence is +20… (ignoring an extra oil)
In both cases total x traveled would be 26, Bit we have one route hitting double mud, and another taking a better route, This better Route is well reflected in score.
I do agree that speed should be the ultimate factor, and a great balance could be to grant players a score bonus equal to their lead.
(if they win by 50 x, they should get 50 points). So if the one bot clowns around, its still reflected in score.
But I also feel we cannot completely chuck out score because of cases like the above.
Also, if you do win, the leading bot generally messes with the score of the second one, because of Oil. So I still feel score protects the lead bots.
Speed should be the main factor, but score cannot be completely ignored
I rather add lead to score than to make lead king. Even though I have a score bot I spent some time on these cases. I feel they matter.
I like this option. It does seem logical against a bot only picking up score and not attempting to win.
Last year, I built a killer bot but score killed me in the end so I had to change strategy, I’m sure if score wasn’t a factor last year, I would have been in a better position.
It looks like we might not be making changes to the game-runner for local running. Basically what we will be doing is instantiating the game runner, engine and bots twice with different game config files in our cloud functions. We believe this should also be fairly easy to do locally without us making code changes to the game runner for it.