Here’s an entertaining failure case in my late-game pathfinding AI. As I’ve mentioned, after a certain point, the AI switches from a straight minimax strategy (carefully considering its moves vs. possible counter-moves) to a Djikstra’s Algorithm pathfinder with limited minimax elements. Which is to say, it tries to find ways to rearrange its own pieces to create clear paths to park its highest-priority pieces. Continue reading Emergent Behavior
As I mentioned yesterday, one of the weaknesses of a work-to-schedule AI approach, with an exponentially growing search space, is that you can easily spend most of your time on an analysis that never ends up getting used. After all, if at each search depth you take more time than all of the previous depths put together, there’s no point starting a search in the whole second half of your allotted time. Continue reading Satisfaction Part 2
If I recently taught my AI to despair, then currently I’m teaching it satisfaction.
See, a planning AI is often about look-ahead. The more turns in the future it can consider, the smarter its answer is apt to be. But, of course, that takes time – exponentially increasing time, in fact. So, how far ahead can you afford to look, and still finish on a tolerable schedule? Continue reading You Get What You Need
Yesterday, at long last, I put my AI into its own separate thread. It all went very smoothly, but then again I’d been thinking for a while before I started typing. Typing is never the hard part. Continue reading Plates are now Spinning
I alluded yesterday to a problem with the way my AI ranked moves. In fact, it’s a problem with the way the whole game is scored. See, I took the rule where each side finishes parking its pieces “as if the opponent’s pieces were non-existent” and got it into my head as “as if the other pieces were non-existent.” This is one of those easier-said-than-done kind of distinctions! The latter is simply the total shortest-path distance of each piece from its destination. Easy-peasy. The real rule takes planning, which means more AI work. Continue reading 7/11
I seem to have taught my game AI the meaning of despair.
Take a look at this board position, for example. With four turns left in the game, any human player would move the 4 of stars aside, and take the 5 of suns three spaces towards home. What did mine do instead? Go ahead and take a look. Continue reading Unsportsmanlike Conduct
I’m back, and as promised I’ve been putting some more work into the Salta game. The latest version is now up on its own page, which will house update links and the comment thread from here on. Thanks again to everybody who has so far spent time with my ramshackle pre-alpha game. Continue reading Version 0.3.1 Posted
I’ve gone and written a whole new planner for the endgame mode of my Salta AI. Before, it was already abandoning minimax search in the endgame, to achieve more search depth. But it was still basically just trying to optimize against a static evaluator. This only worked to actually get pieces all the way to their destinations if the moves that got them there were within the search tree, and it was fairly easy for that not to be the case for a number of pieces. Continue reading Sealing the Deal
I spent my project time yesterday cleaning up the interface for my Salta program, but the real action came by surprise at the end of the day. Surfing for any records from the heyday of the game (I was curious about those newspaper puzzles, which I have yet to turn up), I found this article from the seemingly now-defunct Abstract Games Magazine.
Cool, the author actually turned up a rulebook from 1902!
Crap, the rulebook proves that Bell and Schmittberger were wrong. Continue reading Apocrypha Now
This is what game design looks like sometimes, when you have the luxury of also being able to program. That is a luxury I didn’t have yet last week, when I set out to discover just how rusty I really was. The answer: pretty darn rusty at first, but very quickly much less so. That was discouraging before it was very encouraging. There’s probably a message there about the correct response to discouragement. Continue reading Program Jumps