
AI Ladder, 0.5
Moderators: hoijui, Moderators
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Anyway, very little is going to change without some active botrunners 

- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Hey hoijui, just saw there are looooaddd of commits from you to springheadless over the last few days. Cool!
Re: AI Ladder, 0.5
:D
thanks.. but well.. its really nothing compared to what you did in the same time on the AI Ladder, good work there! also, part of my commits are actually from aegis, he jsut gave em to me for committing (the big stubs adjustment commit eg).
am currently working on the Java AI Interface more again
thanks.. but well.. its really nothing compared to what you did in the same time on the AI Ladder, good work there! also, part of my commits are actually from aegis, he jsut gave em to me for committing (the big stubs adjustment commit eg).
am currently working on the Java AI Interface more again
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Just for info, aegis and I are working on getting the botrunners running on his cluster at the moment, and there are lots of bugs that need fixing in the botrunner code
so the springgrid git master repository is rather unstable at the moment
I'll update this thread once it's stabilized, with what's changed/fixed.


- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
aegis and I got a couple of botrunners working on aegis' cluster.
There are a bunch of bugfixes and feature enhancements in springgrid git master from that:
- replay filename is determined now by looking at infolog
- infolog is now uploaded, and available from the springgridstaging website
- we had to hack the name of the replay since it is wrong in infolog if spring crashes :-O
- a few stability enhancements to botrunner, some crash bug fixes
http://manageddreams.com/springgridstag ... results.py
There are a bunch of bugfixes and feature enhancements in springgrid git master from that:
- replay filename is determined now by looking at infolog
- infolog is now uploaded, and available from the springgridstaging website
- we had to hack the name of the replay since it is wrong in infolog if spring crashes :-O
- a few stability enhancements to botrunner, some crash bug fixes
http://manageddreams.com/springgridstag ... results.py
Re: AI Ladder, 0.5
out of curiousity, how hard would it be to implement something like "flashspam AI" or "rocket truck AI" or "comdrop AI" ?
or an AI that randomly picks between the three?
or an AI that randomly picks between the three?
Re: AI Ladder, 0.5
KaiserJ:
even doh this is totally the wrong thread for your question
...
it would be very easy (if what i think these AIs do is correct).
You can send a (Cheat-)Command to the AI callback to create a unit, then give a move command to the unit.
for hte switching, you could make an AI Option with a list item that lets you select between the three, though you could also make 3 different ones.
even doh this is totally the wrong thread for your question

it would be very easy (if what i think these AIs do is correct).
You can send a (Cheat-)Command to the AI callback to create a unit, then give a move command to the unit.
for hte switching, you could make an AI Option with a list item that lets you select between the three, though you could also make 3 different ones.
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
HughAI allows this. I assume others do too. At least , it's possible to create two workflows, one for flashspam, and one for rocket truck spam, and it can choose randomly between them.KaiserJ wrote:out of curiousity, how hard would it be to implement something like "flashspam AI" or "rocket truck AI" or "comdrop AI" ?
or an AI that randomly picks between the three?
comdrop would need a dedicated/specialized control module, which I would have to write, or you could write, or someone could write. In any case, that module doesn't exist in HughAI at this point

Re: AI Ladder, 0.5
NTai and XAI could do that too
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Updates to git/ staging websites
Spring grid
Reminder: Spring Grid is in charge of managing the match request queue for the botrunners, handing out requests to the botrunners, and storing the results. It is now separate from AILadder.
Changes:
Visible:
- search and replaced 'ailadder' replaced with 'springrid'
Under the hood:
- added 'mapexists' and 'modexists' methods to api_webservice
- added unique constraints to tables (in git only, not patched into tables on staging website yet)
- added non-null constraints to tables (in git only, not patched into tables on staging website yet)
aegis has two botrunners on his cluster that have been up since yesterday, and seem stable. He's got them in a try... except loop, so if they do crash, they should restart automatically again (and crash again most likely
but still, for now: they are up!)
http://manageddreams.com/springgridstag ... runners.py
AILadder
Reminder: AILadder no longer manages botrunners. Or maps, or mods. It just proxies requests about those through to the configured spring grid website, which you can now see at the bottom of each web-page.
AILadder manages handing requests to Spring Grid to pit ais in controlled battles each other, and interpret the results.
Changes:
Visible:
- added link to springgrid that is being used at the bottom of each page
- added viewconfig page ('View Global Configuration')
- added viewoptions page -> can create new AIOptions now
- league match scheduler takes into account league and ai options now:
-- only AIs with at least the same options as a league will play in that league
- added link to schedule matches to hte bottom of 'view request counts per league page'
- view request counts per league page now show both the request counts and the finished counts
- match scheduler migrated to use springgrid, and works again now
Under the hood:
- added unique constraints to tables (in git only, not patched into tables on staging website yet)
- added non-null constraints to tables (in git only, not patched into tables on staging website yet)
http://manageddreams.com/ailaddergrid/s ... malldivide
Addendum:
- ok, results of those matches are in:
-- both KAIK and RAI completed their matches successfully
-- KAIK beat RAI consistently
- need some more AIs really, otherwise it's not really interesting :-D
- candidate AIs:
-- E323AI .... but need to be able to distinguish between 'cheating' and 'non-cheating' AIs otherwise it's not really fair.
-- Java AIs
-- add functionality so AI devs can register AIs themselves
Spring grid
Reminder: Spring Grid is in charge of managing the match request queue for the botrunners, handing out requests to the botrunners, and storing the results. It is now separate from AILadder.
Changes:
Visible:
- search and replaced 'ailadder' replaced with 'springrid'
Under the hood:
- added 'mapexists' and 'modexists' methods to api_webservice
- added unique constraints to tables (in git only, not patched into tables on staging website yet)
- added non-null constraints to tables (in git only, not patched into tables on staging website yet)
aegis has two botrunners on his cluster that have been up since yesterday, and seem stable. He's got them in a try... except loop, so if they do crash, they should restart automatically again (and crash again most likely

http://manageddreams.com/springgridstag ... runners.py
AILadder
Reminder: AILadder no longer manages botrunners. Or maps, or mods. It just proxies requests about those through to the configured spring grid website, which you can now see at the bottom of each web-page.
AILadder manages handing requests to Spring Grid to pit ais in controlled battles each other, and interpret the results.
Changes:
Visible:
- added link to springgrid that is being used at the bottom of each page
- added viewconfig page ('View Global Configuration')
- added viewoptions page -> can create new AIOptions now
- league match scheduler takes into account league and ai options now:
-- only AIs with at least the same options as a league will play in that league
- added link to schedule matches to hte bottom of 'view request counts per league page'
- view request counts per league page now show both the request counts and the finished counts
- match scheduler migrated to use springgrid, and works again now
Under the hood:
- added unique constraints to tables (in git only, not patched into tables on staging website yet)
- added non-null constraints to tables (in git only, not patched into tables on staging website yet)
http://manageddreams.com/ailaddergrid/s ... malldivide
Addendum:
- ok, results of those matches are in:
-- both KAIK and RAI completed their matches successfully
-- KAIK beat RAI consistently
- need some more AIs really, otherwise it's not really interesting :-D
- candidate AIs:
-- E323AI .... but need to be able to distinguish between 'cheating' and 'non-cheating' AIs otherwise it's not really fair.
-- Java AIs
-- add functionality so AI devs can register AIs themselves
Last edited by hughperkins on 26 Oct 2009, 05:22, edited 1 time in total.
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Well, there is a sticky here:aegis wrote:where can I get the other AIs?
http://springrts.com/phpbb/viewtopic.php?f=15&t=19583
Hmmm, doesn't seem terribly 'sticky' any more.... but it exists.
Edit, by the way, to schedule matches:
- go to http://manageddreams.com/ailaddergrid
- login (admin/admin)
- go to 'Coniguration' | 'View AIs'
- for each AI that you want to participate in the current leagues, click on it, and add the 'operationalai' option (this is to distinguish them from the various nullais available)
- go to 'Runner' | 'View request counts per league' (need to rename that really...)
- select 'ba704 on comet catcher' or 'ba704 on smalldivide', and 'reload'
- at the bottom of the form, click on 'click here to schedule matches'
The match scheduling doesn't use multicall, so it makes one xmlrpc request per match, so it thinks about it for a while, but it gets there in the end, and if it times out, just F5 until it finishes completely.
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
You know, someone could create a site, or a client app, that pumps through a series of requests like:
... and that would provide runs/doesn't run data that could feed into something for this thread:
http://springrts.com/phpbb/viewtopic.php?f=12&t=20546
Edit: most likely, a site, and the site can provide:
- a webpage to run any new AIs through (needs authentication etc)
- a downloadable xml file that contains a list of working mod/map/ai combinations (that the lobby could use)
- a webpage that shows for each ai (selectable from a dropdown for example), the maps and mods that work for it
Code: Select all
for each ai:
for each mod:
for each map:
for i in xrange(5):
play( ai vs itself, mod, map)
http://springrts.com/phpbb/viewtopic.php?f=12&t=20546
Edit: most likely, a site, and the site can provide:
- a webpage to run any new AIs through (needs authentication etc)
- a downloadable xml file that contains a list of working mod/map/ai combinations (that the lobby could use)
- a webpage that shows for each ai (selectable from a dropdown for example), the maps and mods that work for it
Re: AI Ladder, 0.5
I was suggesting you do a similar thing with springgrid when I said to focus on making a really good interface for running matches 

- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Yes.... Hmm, we should probably think about splitting this thread into two: this thread stays AILadder, and we create a new thread for SpringGrid. Not sure where to put the thread though. In AI? Development? Somewhere else?
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
*bump to prevent forum burial*