Sunday, August 17, 2008

The final * (week 10-11 status report)

Countdown? Cut? Straw? Fantasy? You fill it in.

So, it seems I missed a week. Sorry. I don't think it really makes a difference now, there's only two days left anyway. What is the state? Well, I have a working AI for the Risk ruleset. It's a bit mediocre, but it will provide some opposition. I might tweak it a bit the next few hours, but I'm mostly done with it.

Let's see what it does... It will expand into neutral territory, it will move its troops to protect the borders of the empire, reinforce where needed and it will attack without hesitation. The last one is a bit of a problem, as it doesn't really pick its target really well. I might take another look at.

I've had some problems with playtesting though. tpclient-pywx kept crashing my X server at seemingly random times. Sometimes I could play a few turns, sometimes it'd crash three times during one turn. I ran tpserver-cpp and daneel-ai in a detached screen session and reconnected each time, but I assure you it's not really pleasant. I'm not sure what the bug is, it's probably something in X.org or it might be in kwin 4.1 or who knows where. I don't have time to figure it out now. Also, this only seems to happen with Risk. I blame wormholes bending my computer's space-time-continuum or something.

What else... I should probably take a look at Colonization orders now that they should work again, and I could help out the other students. A battle against vi1985's AI or helping ezod with his singleplayer wizard looks good to me. I suppose I should also make another human player play against my bot to see what they think. And I have to write a load of docs.

I'd also like to make a video to show off daneel-ai, and to better analyze what it is doing - reading through megabytes of log files isn't the fun way to do that. However, Starmapper seems not to cooperate with Risk (or the other way around), so that'll have to wait for a while.

So, time to finish the last small things, and that concludes GSoC 2008. *epic music*

Tuesday, August 5, 2008

Slippery slight slowdown (week 9 status report)

I didn't do a whole lot this week. I'm not sure why or how. Lots of other stuff to do, mostly. As an example, I completely forgot to participate in round 2 of Summer of Code, and looking back to it, it seemed like it had fun problems. :( Oh well.

I started the week by investigating the new rulesets a bit.
I started by reading Tigris & Euphrates, but I gave up after a while. Usually, I enjoy a good boardgame, but I never played this one before and I didn't really feel like reading through the rules. I should really have another try at it because nuleren has done a lot of work on it and it's probably a lot of fun, but it's a bit too much effort for me at the moment I think, I can still focus on other things. Sorry nuleren!
After that, I tried Dronesec. I miserably failed at getting it to run. Perhaps I'm just spoiled by the easiness of tpserver-cpp, but tpserver-py and the whole structure of setting up Dronesec was a bit annoying. Can't blame anyone for that, of course. On his blog, JLafont said he was going to make the whole thing a bit more usable, so I'll try again in a short while. It might be that the error I got was something different though, I should see about that.
So I mostly focused on Risk. First thing was to figure out how those wormholes work, and I talked a bit with vi1985 and jphr about it and we have it figured out now. I didn't really use them though, because I already had a system with probe orders set up and I want to keep at least one example of probe orders in my system for those wanting to learn the technique.
I also created a few more constraints to use in Risk, one to represent the armies on a planet and one for the amount of recruitable armies.

Now all that remains is to actually create a Risk AI. It's really strange how my inspiration runs dry on that task. It's probably because I don't have enough experience with the game itself though, and playing a match against oneself quickly becomes boring and tedious in switching the interfaces. Chicken and egg, much? Well, small steps I suppose, and make it incrementally better.