Thursday, August 4, 2016

Simple Senet needs a new maintainer

Years ago, I discovered the board game Senet, possibly the oldest board game we know of, dating back to ancient Egypt. It's a simple game, something like the modern board game Sorry if you combined it with another board game, Chutes and Ladders.

The exact rules of Senet are possibly lost to history, but others have deduced how to play. Senet has a simple board layout of 30 consecutive squares, although every Senet board arranges the board into three rows of ten squares. Because the squares are consecutive, you traverse them in a sort of "reverse S" configuration:
1 2 3 4 5 6 7 8 9 10
20 19 18 17 16 15 14 13 12 11
21 22 23 24 25 26 27 28 29 30
I've highlighted a few important squares: You start with white and black game pieces alternating on the first row, then proceed proceed around the board in the "reverse S" pattern. Things get interesting starting at square 26. According to some versions of the rules, you must stop each piece at this square before you can move them off the board, and you can't even do that until all your pieces are past either square 15 or square 11 (depending on which rules you use.)

After square 26, if you land on square 27, your piece "dies" and is "resurrected" at square 15. If you land on square 28, you need to throw an exact "3" to move that piece off the board. If you land on square 29, you need to throw an exact "2" to move that piece off the board. Most boards have special markings on these squares.

You can't have more than one piece on any square. And instead of a standard 6-sided die, you make your "throws" by tossing four flat sticks, black on one side and white on the other. Basically, you toss four coins, heads or tails. The "throw" is the number of white sides shown (or number of heads, if you use coins). If no white sides (or heads) then the "throw" is a "6" and you get to go again.

With only these simple rules, Senet is a fun game to play. But it's hard to find people to play Senet with. Several years ago, I had an idea to write a version of Senet that I could play against. Sure, there are a few free Senet games out there, but they either aren't open source software or they are written in a programming language I'm not familiar with. And because not everyone agrees on the rules, every implementation of Senet has its own rules.

I wrote Simple Senet to implement a rule set that I preferred, with an eye to creating a modular rule set that you could configure to your own preferences. As an experiment to see which play style would perform better, I wrote my first version of Simple Senet as a simulator, where one side plays a defensive game, the other plays an aggressive game. Because it was an experiment, I wrote it with ncurses, so it ran at the console.

I haven't touched this program in several years. I think it would be great for someone else to pick up this interesting project and implement it in GNOME. Use a module rules system so you can configure the game play in the Settings. And most importantly, make it turn-based with the option to play against a computer (either defensive or offensive).

If you're interested in becoming the maintainer for this program, let me know. You can either send me an email or post a comment below.
image: Wikimedia (cc)

No comments:

Post a Comment