I need to figure out how to turn this into an openAI gym so I can train my DQN on it. I just finished running the code from Deep Reinforcement Learning - Hands on for Pong, and it's pretty cool...
I get that the idea is to have an ever-improving champion, and I like the idea, but it's not going to work out that way in practice. The best way to defeat the current champion will be to exploit it in some way, which will usually lead to irregular, but very specific, behaviour of the challenger.
Then, when challenger becomes the champion it's behaviour will be useless and the next challenger will either beat it easily, or will do the same and the cycle will repeat.
To protect against this, the challenger should have to beat all previous champions, not just the current champion.
I’ve never actually seen such a competition where all previous champions must be defeated. Sounds like a much more robust system- any examples of such?
World records in sporting events work this way. Perhaps it is obvious, but I consider it similar. The one diffrenece is of course that they don't compete directly as in this case.
I think you're probably right--but it's worth noting that it depends on the "space of tank behaviors". It's an open question whether there exists a tank that "strongly dominates" other tank strategies.
One way to deal with this could be to have a system similar to ELO in chess, so each tank gets a ranking. This is compromise between having to defeat "champion level tanks", and having to defeat champion level tanks more often than not!
In my limited experience with other programming games, it is rare for one AI to defeat another AI 100% of the time. So for a submitter, the claim their own red tank is stronger than the blue tank should be qualified with a 3 out of 4 wins or similar criteria.
The game physics look very inspired by Robocode[1]. Great work! I wonder if months of work could yield similar results to what was seen there, with neural networks and dodging and prediction of enemies.
20 comments
[ 3.0 ms ] story [ 62.7 ms ] threadhttps://github.com/huangyz0918/TankLogo/blob/master/README.m...
http://www.tacticalneuronics.com/content/aiw3dnew.asp
Then, when challenger becomes the champion it's behaviour will be useless and the next challenger will either beat it easily, or will do the same and the cycle will repeat.
To protect against this, the challenger should have to beat all previous champions, not just the current champion.
[1] https://en.wikipedia.org/wiki/Timsort
One way to deal with this could be to have a system similar to ELO in chess, so each tank gets a ranking. This is compromise between having to defeat "champion level tanks", and having to defeat champion level tanks more often than not!
1. https://robocode.sf.net
https://en.wikipedia.org/wiki/RoboWar
Corewar is still the granddaddy of them all though, as has already been pointed out here.
At one time, there was a huge list of programming games posted on the 'net. This was a good idea and should be revived.