Post news RSS Rule based AI attempt

Clips Rule! Trying to get rule based AI working on OpenRA.

Posted by on

I made HackyAI scriptable a while ago in March (which is still sitting in OpenRA PR queue).

When I started programming AI, I soon grew tired of Lua scripting. The main reason is scripting isn't the right way to describe the situation the AI is in and how to react to it. I first thought it was Lua that was wrong but soon found out even Python wasn't the way to go. (I tried developing AI with Python, by using Python to Lua compiler)

Then I tried reinforcement learning. It took hours to train and the winning rate against the base line AI, which builds units and structures randomly (biased random, of course), wasn't satisfactory. The most critical flaw was that the size of the "state" was big, the file that holds what the AI has learned. The training result was 60MB. That's not good, the size of core OpenRA contents folder is only 85MB! (excluding music and movies). Another down side is that other mods can't benefit from it :(. Even if they can train the AI they have nothing to do with my mod's AI and the modders have to start from scratch.

Here's my third attempt, Rule based engine.

I heard it from Grey Goo AI development diary here: Youtube.com
They mention Clips so I now have it integrated into OpenRA as well. At the moment, the AI can only build a power plant xD, but I hope I can make it complex enough soon!

The downside is that rule based programming a very different discipline from OOP or scripting but if there's more gain, it should be worth the attempt.

Edit: It can now build Ore Refinery and not fall into low power because it can deduce power consumptions from the rules :)

clips

Comments
Templarfreak
Templarfreak

As I mentioned a couple of times now, you should really take a look at SCAIT and BWAPI AIs. Some of them are even open source, I believe, and most of them are pretty good. At the very least all the AIs that's been made by those guys are a ICCUP ranking C+ level human player, while some easily reach B+. That is more than sufficient I think, and a good starting place I'd feel too.

Reply Good karma Bad karma+2 votes
boolbada Author
boolbada

They are no good for me.
1. Script parts are useless, they define build orders and unit compositions.
2. Engine parts are useless, they rely on BWAPI and not in C#. Porting their meaning is just as difficult as writing from scratch.

Reply Good karma+2 votes
boolbada Author
boolbada

Of course, they provide me something to look at but they aren't starting points.

Reply Good karma+2 votes
Guest
Guest

This comment is currently awaiting admin approval, join now to view.

Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.