Abstract Games Generator
|
Just over twenty years ago in England, when I was working for ICL (International Computers Ltd), on the Perq in Reading, there was a contractor called Alan Sutcliffe working on a related project. Alan dabbled a bit in computer art, graphics and music. |
He also wrote a monthly games/puzzles/diversions column called "Patterns" for PCW (Personal Computer World), one of the computer magazines of that period, and he'd been asked to review Winning Ways For Your Mathematical Plays (Vol 1) by Berlekamp, Conway and Guy, and Volume 2.
He bought a copy of them both into the office. They were wonderful. I just had to have my own copies and that was the real start of my addiction to various abstract games. In researching this post, I see there is now a Volume 3, that came out last year, and that's just gone straight to my Amazon wish list. (Update: It looks like the two original volumes have been reworked into four new volumes, with volume 4 still to come. Volumes 1 and 2 look a tad thinner than the originals, and $39 is a little expensive for a 171 page paperback. I think I wait to see these in person, before I decide whether I want to buy them all again).
About that time, I started thinking about writing a program that could automatically generate a game board for any game you specified. It would know what the rules of the game were (i.e. the legal moves), and would know when the game had been won, lost or drawn. With some basic alpha-beta pruning routines, it would be able to play a poor attempt if you didn't have another human to play against.
I wrote some quick notes down on a piece of paper. I still have it. I dug it out last night. Here's what I wrote:
OUTLINE=RECTANGLE/WIDTH:HEIGHT.
= SQUARE.
= NONE.
BORDER=YES/border:board.
= NO.
GRID=YES/numberx:numbery
=NO.
SHADING=YES/BLACK
=YES/GRAY :CHECQUER,EVEN.
GREY :CHECKER,ODD.
= NO.
PIECES=CIRCLE/BLACK:n1,n2,n3,n4.
/WHITE:n1,n2,n3,n4.
/GRAY:n1,n2,n3,n4,n5.
GREY
=CROSS.
I'm having trouble remembering exactly what I meant in a couple of cases. Note this was before I learnt about BNF grammars. Also nowadays, if I was devising a spec. template for games, I'd use XML syntax to do it.
Since writing that, I've not gone ahead and implemented anything. Twenty years on and I suspect I'm not going to find the time to do it, so a couple of years ago, I started looking around to see if there was any freely available software that could do something like this. I came across XBoard and Winboard, but those are only for Chess.
The closest I came was EGGG by Jon Orwant, when he was at the MIT Media lab, but when I sent Jon email asking if he was interested in releasing this as open source, he mentioned that it's not really ready for public consumption.
So I'm still looking. If others have any pointers, I'd be very interested.
Another Update: Looks like we might have a winner. In reading the documentation for gtkboard, that was mentioned in a comment, it pointed me to Zillions of Games, (a universal gaming engine for Windows). I'll be downloading the demo version of that tonight and trying it out.
( Nov 11 2004, 01:54:36 AM PST ) [Listen] Permalink Comments [2]











