New Morabaraba Movegen Done
You should know that I'm probably going to bore you with Morabaraba-related blog entries for a little while, but the process will culminate in a really decent free Morabaraba engine. Today I have finished the new move generator. Although it's only had som limited ad-hoc testing, it understands all three phases of the game, and it fully-understands captures (including not shooting cows in mills). It also (here's where I get a bit smug) is pumping out a little over 10 million positions per second on my laptop (with CPU throttled as I'm on batteries). That's fast; roughly 6x the speed of AHEM v1. What is more, the way the new move generator works, making and unmaking moves is almost free, which will increase the speed advantage even more. Also, looking for interesting patterns in the eval is much easier with bitboards, so that will give another noticeable speed boost. I should also mention that I've been testing with GCC 3.4.4 on Cygwin with NO OPTIMISATION FLAGS whatsoever; I also plan to use a range of compilers and settings to find the ultimate optimisation; I have a feeling that this will scream on a 64 bit processor compiled by the Intel compiler with the EM64T optimisations. All told, I plan to be looking at something like 10x-20x as many nodes as AHEM v1 in the same period of time, in spite of having a smarter eval. That's got to be worth a ply or two in any position.
I haven't quite decided what to do next. It'll either be hooking the new engine into the AHEM v1 GUI so that it can actually play, or setting up some formal test tools for the movegen. I'm feeling quite revved up about it at the moment, so probably the former. I want this thing to get out there and tear apart some opposition. Now all I need is some opposition... unfortunately, for now, that means AHEM v1 is likely to take a beating!