The General FPGA-based board game machine, a prototype

Made by Antti Karttunen, sometimes around August 2005

Here is how it (still, in 2008) looks like:




Another view. Note the important function of those two cardboard cups.




And seen straight from the top, showing the old Mefisto chess computer led/reed-relay-matrix that is underneath the exchangeable plywood board:




The optoisolator-board, component side and the mirror-image of the solderside. Click the images to see the full size images. (Sorry for the quality, I used a scanner of the local library as my "camera".)




The optoisolator-board, the solderside, not mirrored. Click the link to see the full size image. (You wouldn't hire me for my soldering skills, would you?)




A lightweight spaceship initialized with magnets, ready for Life-simulation:




Some photos of a Life-simulation run in a darkened room (but not of that spaceship):






Addendum October 20 2009.

Recently I have been asked more details about this project. First, there is no other documentation as contained here, i.e. no papers or such, as this has been very unofficial "my own hobby only" type of thing. However, there were more ideas, that I haven't so far implemented. That Conway's Life-game is just a first simple demonstration/test program for checking that all the connections (leds and reed-relays, etc.) work. My real purpose was that I could have coded various kind of board games, like Chess, Xiangqi, Shoogi, Amazons, Nine Men's Morris, Peralikatuma, Reversi (Othello), Five in a Row (Gomoku), Hasami shoogi, etc. to the FPGA-board (not necessarily fitting there at the same time, thus requiring some "reconfigurable computing"), and then I had had different boards made from plywood (or acrylic plastic), that I could have swapped onto the top of led/reed-relay matrix, according to the game played. (That is, a different board for Chess than for Nine-men Morris or Xiangqi.) The enclosing wooden box is so large because I intended eventually to enlarge the board to 10x10 squares, as many of the above games require a larger than 8x8 square. Also, I intended to replace those monochrome red leds with three-colour leds, for able to display more information, like is needed for some of the games.

And moreover, I could have used some microcontroller/ordinary processor instead of that FPGA-board, or used a larger FPGA.

It's an interesting question what kind of a game would be especially suited for FPGA-implementation. As far as I see it, there are certain challenges to implement efficiently Alpha-beta pruning in the FPGA, for the most board games. (I could be wrong, this is just my first impression. Maybe it's easy as ...)

(Musings continued October 21 2009): Especially interesting would be a game where the machine would not use any ordinary game-tree searching algorithm at all (like Alpha-beta pruning or other Minimax kind of thing), but would use a neural network to determine its own moves, or a similar construction easily parallelizable into the FPGA-level of granularity.

Links

Antti Karttunen
E-mail, before substitution: his-firstname.his-surname@gmail.com


All the images in this directory

Verilog-sources for the board control and Life-simulation
See especially:
life1.v (The source for the top module)
mefi8x8a.v (The source for board multiplexing etc. via the optoisolator board)
Report summary by Xilinx WebPack
Some images of the Mephisto components, with vintage 74HC-series chips. (Note that the schema for the board presented (lauta1skema.jpg) is not of the eventual circuit I used. E.g. I don't need 74HC238, because I do the multiplexing in the FPGA, requiring five output-lines more from the user-extension port).
My main page