Tuesday, July 8, 2008

Back to action (week 5-ish status report)

Last week, I didn't manage to do a lot, again. I had a weekend away with a couple of friends, and then a small week off to prepare next year of student's organization. I managed to put in a few hours of work but I was so tired I didn't get a lot farther. Yesterday, I got back on track. I made my tests run, which is an impressive step forwards, and today I started on a basic parser. The parser can currently handle rules in "head normal form". The step to readable rules theoretically only exists of simple rewriting: from

ship(1) \ moving(10) <=> attacking(10)
to
ship/1 \ moving/1 <=> _var_0_0 == '1' and _var_1_0 == '10' | attacking(10)
with the latter being the head normal form (the form you have to write rules in right now). I'm not going to bother with that right now though, it's non-critical and low risk.

For the remaining of next week, I'll try to externalize the rules and functions to separate the bot framework and its logic. This will allow multiple instances of the bot to run with different "personalities". Keeping midterm evaluation in mind, this seems like an excellent goal as it basically finishes the rough framework and splits the task in 2 subtasks. I also need to search for a few hours to find a picture of myself that the internet can see. Horrible task.

Also worth mentioning is that I'm done with taking loads of time off the project. For now, I'll be able to work 10 or so hours a day. That's about what I did in a whole week the last few weeks. So productivity should lie a bit higher from now on. Hooray!

2 comments:

mithro said...

So how long till we see an AI which actually does something (even if it doesn't make a good opponent)?

I think this should be an important goal. An AI engine which can parse rules is usless to us if it can't actually do something in the game.

Iwanowitch said...

Just now noticed your comment, sorry. Well, the current obstacle is that the system is a bit slow (see next post), but I'm working on that. Only once I can handle loads of rules at acceptable speed, I can create some more interesting behavior. Having good rules you cannot execute in time before the turn ends isn't really that useful.

I also need to work a tadbit more on my rule representation. Mainly, I need to add types. That would make it possible to add lists to constraints, and that makes all sorts of selection strategies possible. I've got basic ideas on how to do this.

Anyway, more behavior in a week, tops. Perhaps not in time for midterm, but not too long after it.