I’ve had this idea for a long time and I’ve said it many times on the chat but I thought I’d post it here so it might have a chance of being implemented.
I like the Tron AI game a lot, its simplicity is a quality in my eyes and its an opportunity to practice the classical minimax algorithm. However I feel like there is one major flaw on Tron: the randomness of the spawns leads to a high amount of ties. Which makes a lot of games useless for the purposes of ranking.
Take a 1v1 game for example. A typical scenario is I spawn in a corner you destroy me, the spawns are swapped and I destroy you. No information is gained on the relative strength of the AIs.
Here is an example where I start with 30% of the map according to my Voronoi evaluation, and I lose to the boss of silver league when I’m ranked 9th in Legend at the moment.
I would suggest making the spawns fairer by spawning everyone with a reasonable “Voronoi share” of the map. For example in a 1v1 game instead of the current random spawns, spawn in a loop while(voronoi of any player<0.45) which would mean having at least 45% of the initial map. For 1v2s maybe you could spawn players with no less than 27% of the map. And for 1v3s 20%.
I think that such a system could make the ranking a lot quicker and more accurate.
I wholly agree with your post, but also compelled to play a bit of devil’s advocate. You can still gain a lot of information if your bot manages to win under unfavorable conditions where others wouldn’t.
I ran some tests between different versions of my AI, my best version and 3 older ones. Here is the data:
V18.6 vs V15:
Random spawns: Rounds: 2089 P0: 63.0685% of wins ± 0.746656% and 67% draws.
1% maximum Voronoi difference: Rounds: 2076 P0: 69.2919% of wins ± 0.715878% and 46% draws.
V18.6 vs V11:
Random spawns: Rounds: 821 P0: 68.4531% of wins ± 1.1468% and 57% draws.
1% maximum Voronoi difference: Rounds: 2517 P0: 80.8304% of wins ± 0.554802% and 30% draws.
V18.6 vs V3:
Random spawns: Rounds: 400 P0: 79% of wins ± 1.44005% and 42% draws.
1% maximum Voronoi difference: Rounds: 2441 P0: 88.7751% of wins ± 0.451792% and 17% draws.
where a round is defined as 2 games with swapped spawns and the percentage of wins is for games, not rounds, so a draw is a win and a loss. The error bar on the percentage of wins is given by some approximate formulas I found online on the bernouilli distribution.
I believe this shows that the random spawns create a significant increase in the amount of draws, lowering the winning percentage of the better AI. If we look at the V18.6 vs V3 data, 79% wins vs 89% wins is the chess equivalent of 130 elo points. The same goes for V18.6 vs V11 (121 elo points) and V18.6 vs V15 (60 elo points). I used this calculator for the win %/elo difference conversion.
This shows that random spawns favor the weaker side, lowering the elo difference between AIs which is undesirable for ranking purposes.
In these three cases the amount of draws goes up by ~25% points which leads to a loss of up to ~12.5% points on the win rate.
I think it would positively affect the rankings to make this change to fairer spawns, the ranking on that game has always felt very random to me and I hope this can contribute to fixing it.
If someone wants to run games to check my findings or just check the relative strength or their AIs here is the arena program I made and used (linux only).
The chess equivalent of random spawns is to play games with randomly missing chess pieces, swapping the board, and calling it fair. I could win against Magnus Carlsen if he spawned with 5 pawns and a knight.