Tag Archives: AI

Emergent Behavior

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

Satisfaction Part 2

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

You Get What You Need

stopwatchIf 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

7/11

End scoring demoI 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

Sealing the Deal

PathfindingI’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

Apocrypha Now

ArticleI 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

Program Jumps

Some C code for Salta AI
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