Feature Creep

Salta board
I’ve stumbled into another graphic redesign of a classic strategy game. I lay the blame on Schmittberger’s New Rules for Classic Games. Based on the marketing blurbs, I expected the book to be all game variants, but that’s not exactly so. Schmittberger also gets into regional variations on folk games (which is what got me thinking again about International Checkers) as well as lesser-known games that can be played using classic game parts. It’s this last category where I found Salta.

Salta is a surprisingly constrained Halma family game. If you don’t know anything about boardgames, you’ve still heard of at least one Halma variant, which is so-called Chinese Checkers. The goal in Salta, as in all such games, is to jump over your opponent’s pieces and occupy their home spaces. Unlike most such games, though, the Salta pieces have specific home spaces for each piece. Simply filling your opponent’s field won’t do the trick: you have to re-construct their starting position piece for piece. The game was apparently quite a fad in Western Europe in the early 1900’s, with clubs, magazines, tournaments, and newspaper puzzles devoted to it.

It turns out that Salta is played on alternating squares of a 10×10 grid, just like International Checkers. All you need is pieces that you can tell apart. Okay, so I figured I’d print up some labels marked 1-15 for each color, and I’d be done. Hm, but my checkerboard is color-coded for pieces in the first four rows, and Salta uses three. So I’ll re-color it. But, if I’m going to re-color it, I could use the traditional Salta colors, which are red and green. Let’s find a picture of a vintage board:

Vintage Salta board
Image by Daniel Danzer
Used under the Creative Commons Attribution-NoDerivs 3.0 Unported license

Oh, wait. Although Schmittberger uses pieces marked 1-15 for his DIY version, the conventional board uses 1-5 of three different suits (starts, moons, and suns; one for each home row). Well, that certainly has more pizzazz. And, while I’m at it, I could mark the home spaces with the suit and rank of the piece that goes there…

You can see where all of this is going. By the time I was done (if I am even done), my spec to print up stickers numbered 1-15 had turned into a complete re-illustration of the board as well. Still, the project was fun, and it’s already up on the PoD site.

Salta on The Game Crafter.com

8 thoughts on “Feature Creep”

  1. Hi Tim

    I stumbled upon your site while I was searching for some kind of heuristic algorithm to evaluate the Salta game move. I must say that the design looks very impressive, you have done a great job. I am also working on to implement this old but fascinating game of the last century, otherwise I was really tempted to buy your version of the game.

    I was wondering if you could do me a favour by giving me some hints to evaluate the best move? I am struggling to get the evaluation function right. It works but its not quite right. I have adopted a non-traditional approach by using the functional programming language F# to implement the engine. I am using the minimax algorithm to look ahead moves.

    Any help will be very appreciated.

    Thanks

    Shahzad

  2. Wow, I’m really no expert at the game. If I were to attempt it, I’d probably just start with the naïve static evaluator based on total path distance of all pieces to their destination spaces (should be pretty fast, as it’s just the Manhattan distance in orthogonal representation [or, in the conventional representation, I think max(Δx,Δy)], so you’re not actually doing pathfinding). But I assume that’s the first thing that anyone would think of.

    1. Hi Tim

      Thanks for your reply. I really appreciate that. I am actually doing the path finding. After each move I calculate the shortest distance of each piece from their current position to destination location using the Dijkstra’s algorithm which works perfectly .

      Once the shortest distance is calculated I sum up the distances of stars, moons and suns. Then, if the total distance of stars is greater than the distances of moons and suns I give priority to star move first then moon and then sun. But, its not working correctly, may be there is some problem while I am calculating the score of the move. I’ll try again, but thanks for your help.

      Regards

      Shahzad

      1. Are you accounting for possible jumps in your path distances or something? I would have thought the minimax search would take care of that. But otherwise, I’m not sure I get why you’d need a graph search just to find distances on a grid.

      2. Wait, are you playing where the pieces have to occupy the corresponding piece’s starting space, or where they have to move seven rows forward (shifting left or right as needed)?

        The former is the rule according to Schmittberger (and I think Bell, before him), but I believe the latter is the original rule. Anyway, the difference completely reverses the destination order of the suits, so it sounds like you’re using the Schmittberger/Bell rules if you’re prioritizing stars.

        I only just untangled the issue myself, but the original rule reference I found claims to come from an actual 1902 rulebook. (http://chinesecheckers.vegard2.no/gering_salta.html)

        1. Hi Tim

          After a long delay, I am planning to resume the project and the first thing I just did is checked your website to see if you done some more development on the game. It looks like you have done quite a work since I last left a message.

          Your are right, I am using Schmittberger/Bell rules as I wasn’t sure about the originality of the rules. I’ll see If I manage to implement both rules. I am also planning to produce an xBox and Android versions of the game, may be for iPhone as well but not confirmed yet. Good luck with the further development. And keep in touch :)

          Regards

          Shahzad

          1. Cool. If you get it to market, just please remember me in the game credits if you find my work here useful. Let me know if you’re serious about iPhone, too. I’d started to think about trying an iPhone port as my next exercise, but I don’t want to step on your toes, not when I started this on account of your own project.

            Keep in mind, by the way, that if you include rule options it can require AI changes as well. For example, some versions allow jumping your own pieces, which actually seems to make the endgame much easier for the AI.

            Feel free to drop me an email (either at the contact address for the site, or the Salta playtest address) if you have any questions.

  3. Hi Tim

    I’ll for sure remember you in the game credits. But its a long way to go at the minute before the game is ready for the market, as I am doing too many things at the minute. I hope that soon I’ll be able to only concentrate on the the Salta game.

    I am seriously interested in the iPhone version of the game, but its not on my priority list at the minute, so don’t worry, you wont step on my toes.

    I am aware that adding the rule options would require toggling the A.I for the selected rule. But I think that is possible if we try to implement a general game playing engine. A brilliant example of a general game playing engine is Zillions of Game. Numerous strategy games are available on Zillions of game including working version of Salta available at http://www.zillions-of-games.com/cgi-bin/zilligames/submissions.cgi?do=show;id=784 with all of the variations implemented. You would need to download the zillions of game engine which is just $24. They are actually making use of S Expressions (http://en.wikipedia.org/wiki/S_expressions).

    All the games use just one engine, but A.I gets changed by using the S Expressions. I am not sure how they have implemented that, but its very good. I was impressed with the speed of the game while playing Salta. I hope you will like it :)

Leave a Reply

Your email address will not be published.