|04/10/2008 02:35:28 questions for bot developers|
Not much talk in this forum about bot development, so I thought that I would ask a few questions to open up discussion. I have been working on a bot named ai_KumaBot in my spare time for the last couple weeks. It's written in Java, based on the Zapp reference implementation, but pretty much everything is replaced at this point except the Eliza class.
1. How many other people are working on bots, and is there a listing of bots somewhere?
2. Which maps are people using to test their bots? I've been using "Aruba" (just because the terrain is simple and games are fast, although the bias towards the first player is very annoying) and "One on One" (although I need to write a better pathfinding algorithm to avoid those lakes). Are people writing their bots to work on any map, or are people tailoring their strategies to specific maps?
3. I would like to find some bots to spar with mine. The bot isn't much of a challenge for humans, but ZappBrannigan and PuzzleBot are easily defeated on those 2 maps. New opponents will help me improve my code. Unfortunately, I can't keep the bot running 24/7, but I could arrange to have it up at certain times next week. Anyone interested?
|04/10/2008 15:16:22 questions for bot developers|
Pluto and I wrote SmileyBot. It has been offline for some time now while I have been focusing on other things, but I would not mind turning it on at some point to let you test your bot against it. How about tonight or tomorrow night, 10pm EST? Just invite SmileyBot to a game and hopefully I'll remember to check it. It only plays Botanic Troubles, the most balanced standard map imo, right now, although I did try it on Aruba and it played pretty miserably. It also only plays unrated games and games with no pro units. So please only invite under those conditions. Once I get a more general strategy algorithm going and once it can manage capturing the first few bases on its own, then I'll open it up to play any map with any units. I don't think Eliza support for Pro units is complete yet though (e.g. handling: jet moves once then again, battleship attacks once then again, etc.)
There is no listing of bots, although maybe one can be started up in this thread. I know ai_David also exists and I've seen a few others floating around. If you go to http://weewar.com/api1/users/all and search for "ai_", you can find the bots that have signed into weewar (manually) in the last seven days.
SmileyBot is also written in Java, based on the original Zapp implementation, and most of the classes have been changed likewise. If you're interested in a pathfinding algorithm, I can share mine, although it is very very much more bulkier and messier than it should be. I'm sure there are better ones out there - just search for java implementations of Dijkstra's Shortest Path Algorithm and adapt one to your needs.
This message was edited 1 time. Last update was at 04/10/2008 15:16:39
|04/10/2008 18:26:36 Re:questions for bot developers|
I have created ai_DavidBot (and ai_David, which is the same but used for testing). It is written in java based on ZappBrannigan but as we all have done, major written/re-written most of the code. It can play in any map with or without pro-units. Feel free to set up games to play against it. I do not keep it running all the time, but once I see a game started I will probably leave it running.
In no way is it complete, as I am continuously working on the algorithm. As far as I know ai_SmileyBot can beat it, but it beats all other bots(though I would like a rematch sometime).
I am happy to send the code to whoever wants it though I must warn you that it is not very well written.
|04/10/2008 19:01:12 Re:questions for bot developers|
Eliza can handle the extra moves. What it can not do is tell you how many moves/attacks are left.
Eliza is also limited in other ways, can not tell if there is a "peace" offer, or to offer it.
Can not easily tell if by how much a unit was repaired.
|05/10/2008 05:33:07 Re:questions for bot developers|
I added a section on the wiki for listing bots, please list yours there:
I'm the author of ai_PuzzleBot. Sorry he's not any better.
ai_PuzzleBot is written in pure Python without looking at Zapp's source code. It's built solely from the API documentation.
It's not intended to be smart/good. He's just a handful of heuristics and I probably made them worse than they used to be. He plays on every map currently (only unrated games).
He cannot lose on one map, though.
|05/10/2008 11:09:18 Re:questions for bot developers|
he'd lose on that map if heavy inf could attack subs in harbors.
or as discussed in hte original thread to allow hovers and jetboats to attack subs in harbors.
|07/10/2008 02:47:29 Re:questions for bot developers|
Thanks to everyone who replied to my post. I forgot to mention that ai_KumaBot will also only play non-pro, unrated games.
@spadequack: sorry, but I was offline this weekend and couldn't keep my bot running, so I couldn't set up a game with SmileyBot. Would you be able to turn it on tomorrow (Tuesday) night? I am in PST so I guess you are on the east coast? Is SmileyBot still only configured for Botanic Troubles, or would it also accept a game on One on One? Also, thanks for offering to share your code, but I'm trying to learn by trial-and-error as a challenge to myself so I'm staying away from other people's code even though I'm sure that I would learn from the strategies others have already written.
@DavidL: KumaBot accidentally declined your bot's invitation. I started another game on the One on One map, but it looks like you took your bot down.
@Mattie: I meant no disrespect to you or PuzzleBot in my original post. The profile for PuzzleBot is quite clear in stating it's objectives, so I know that combat is not what it was designed for.
|07/10/2008 13:04:33 Re:questions for bot developers|
|Sure, I think SmileyBot can probably handle the One on One map. I'll check later and will get back to you.|
|08/10/2008 02:37:52 Re:questions for bot developers|
Unfortunately, I've got to turn off ai_KumaBot for the rest of the evening. I'll start it back up tomorrow.
@DavidL: The game between ai_KumaBot and ai_DavidBot is quite the slugfest even after 33 rounds.
@spadequack: KumaBot isn't quite ready for Botanical Troubles yet. I tried playing a game on that map against Zapp and my bot got stuck on those peninsulas. I need to fix my movement algorithm before we play that map. Hopefully soon...
|15/10/2008 14:26:35 Re:questions for bot developers|
ai_shedali; I'm working on pathfinding at the moment so not accepting invites to avoid keeping people waiting!
When I'm done I'll try leaving it running on the home computer so you can invite it.
Has anyone got advice about path finding algorithms?
|15/10/2008 15:34:38 Re:questions for bot developers|
i basically used code that i had written a while back that implemented dijkstra's shortest path algorithm: http://en.wikipedia.org/wiki/Dijkstra_algorithm it may not be the fastest, cleanest, or most elegant way - transforming the weewarmap into a graph - but it works.
This message was edited 1 time. Last update was at 15/10/2008 15:34:57