AHEM: What Next?
With the 0.6 release out the door, AHEM is now a very capable Morabaraba engine, and is also reasonably usable. I now need to consider what to do next. There are three categories of endeavour:
Engine Enhancements
Improve the playing strength - there are still lots of possibilities to consider:
- Fine-tune evaluation weightings (which are a bit arbitrary at the moment) - would require some kind of automatic playoff tool to verify improvements
- Build an opening book using drop-out expansion - I think this would probably improve the quality of the first few moves significantly, given a few months' calculation
- Enhance the search using something like PVS
- Knowledge improvements would probably help significantly, but I really need some input from expert players
GUI Enhancements
While the GUI is nice for a quick game and certainly beats out the command line, it would be nice to add some advanced features:
- Take-back/forward
- Ability to maintain a database of saved games
- Resume saved games
- Maintain a database of interesting positions (problems etc)
- Visual position setup
- Proper help, including rules & how to use the program's features
- Ability to have computer play both sides, or none
- Display more stats from the search
- Ability to support other engines
- Create your own themes
Expansion
It would be good to broaden the number of things which AHEM enables. In particular:
- Provide support for Sesotho Morabaraba
- Provide support for Nine Men's Morris
- Allow play-by-web (the fabled AJAX UI I keep going on about)
- Get the Free Internet Morabaraba Server implemented
So I still have plenty of ideas to keep me busy, and it doesn't look like an enormous community of free-software programmers is springing up to help the process (well, I'm not really surprised). What will I actually work on? I guess it depends on the mood that I'm in when I sit down at the keyboard. Do you have a preference? Do you really want a particular feature in the next version? Post a comment here, and include your email address so that I can contact you.