Admittedly, my ideas get less and less “crazy” as time goes on. Idea #4 (Chess clock) was actually a pretty good one, if I do say so myself. Same with this one. More evolution than revolution.
Every single contest and multi-player game consists of a collection of discrete battles. Each battle is an isolated point in an AI’s portfolio, but there’s no common thread to tie them together. The AI starts out each match with a very limited set of information, and has a short life span in which to learn and adapt. All the real learning and adaptation must be done manually by the coder outside of the arena.
Wouldn’t it be cool if AIs could store information about the matches they’ve played for future reference? Imagine an AI that can recognize a starting board layout and learn from what worked and didn’t work the last time it was in a similar situation. Picture an AI that recognizes when it is pitted against its nemesis and behaves (and even trash talks) appropriately.
Helmet. So, at last we meet for the first time for the last time.
Provide the following information as input at the beginning of a match:
Game engine VersionNumber My UserId, AgentId, LeagueNum, CurrentRank Opponent(s) UserId, AgentId, LeagueNum, CurrentRank Path to DataFile
Then, at the end of the match, provide a “cleanup” opportunity for each AI (if not crashed) to write final information to DataFile. You should probably state a maximum size for DataFile in the game specification, and some kind of consequence if that size is exceeded (i.e. lose the match, and / or discard the modifications and revert to the compliant file.)
If this is implemented, it would be very beneficial to be able to download (and maybe even upload) the DataFile from the IDE so that you can debug / tweak behavior.
This opens up the possibility of some interesting meta gaming opportunities. For example, perhaps you could let each AI read its DataFile and size up the arena and its opponent(s) and then give it some options about starting parameters. What position do you want to start in? Maybe even character / weapon selection?