Where to start on bot AI??

Started by
5 comments, last by Klotus 20 years, 8 months ago
Since this is my first time attempting to program an AI for a bot I wanted to know in your opinion(s), what are some of the areas I should focus on first. I have familiarized myself with some AI techniques such as reinforcement learning, adaptive learning, etc… but there are just too many variations, which leads to much complexity. If you can list some of the techniques to your opinion(s) by name I will do the rest of the research for implementation. Thanks in advance. [edited by - Klotus on August 6, 2003 2:51:24 PM]
Advertisement
for starters, i would stear well clear of the techniques you meantioned (reinforcement learning, etc...); at least for now. the reason being, you currently cannot set the arena program to batch run lots of fights in a row (you have to manually start each fight, and sit through it...there is no "fast forward" option. furthermore, there is virtually no way (well a there are some things you can do...) to extract useful information about the performance of your ai from the arena program. all the techniques you mentioned rely on being able to: 1) run many iterations of the ai on the training data. 2) have access to information about the performance of the bot (some can get away with minimal info, but for most you need extremely tailored types of info). it seems like most of the bots i''ve seen (including my own) so far use some form of finite state machine.
this is where i''d focus my research: different fsm architectures (heirarchical, layered, probabilistic, fuzzy, etc...).

things could change, though, as soon as we get more capabilities from the arena!



A headache, ancillary; an hourglass auxiliary.

"something witty, blah, blah, blah"
--That One Witty Guy (remember? that one dude?)


------------------------------------------------------- A headache, ancillary; an hourglass auxiliary."something witty, blah, blah, blah" --That One Witty Guy (remember? that one dude?)(author of DustBot)
Thanks for the suggestion on using a finite state machine; I will have to whip out my Computability and Automata book from my college days to freshen up on the subject. I am still fascinated with building a bot that can learn from its mistakes based on a reward system, so I will keep this in the back of my mind while I work on the state machine.
quote:Original post by drreagan
you currently cannot set the arena program to batch run lots of fights in a row (you have to manually start each fight, and sit through it...there is no "fast forward" option.


Actually the Launch Pad (Clicky) utility I created will now let you autostart and run multiple matches in a row, though since the arena doesn't output the winner I'm not sure that it would do you any good unless you just want to condition your bot against another bot.

You still have the issue of having to sit through each match though as they are run in real time.

- Timothy

[edited by - slepyii on August 6, 2003 3:51:44 PM]
Actually, my thought was to somehow persist the behaviours that are taken and there responses (based on rewards) to disk, then load them back into the bot at the beginning of each match. I am just trying to get the bot to figure out which fighting styles yield the most positive results.
quote:Original post by Klotus
Actually, my thought was to somehow persist the behaviours that are taken and there responses (based on rewards) to disk, then load them back into the bot at the beginning of each match. I am just trying to get the bot to figure out which fighting styles yield the most positive results.


the problem with this approach is that you don''t get enough feedback from the arena to figure out what the consequences of each of your bot''s actions are. you don''t even know if you hit the enemy with a fired shot, there is no way of logging who won the match (even if your bot''s health > 0 doesn''t mean you won, the time could have run out and the enemy could have had more health), and currently it''s rather difficult to tell *for certain* that your bot has collided with an obstacle.

good luck though.


A headache, ancillary; an hourglass auxiliary.

"something witty, blah, blah, blah"
--That One Witty Guy (remember? that one dude?)


------------------------------------------------------- A headache, ancillary; an hourglass auxiliary."something witty, blah, blah, blah" --That One Witty Guy (remember? that one dude?)(author of DustBot)
I see your point about getting enough information about certain situations, hopefully in the future the arena game will release this type of information to the bot.

This topic is closed to new replies.

Advertisement