FreeChain - A strategy game of nuclear proportions http://www.users.ecs.soton.ac.uk/~prb/projects/freechain ======================================================== Objective --------- FreeChain is a port of the Atari ST game "Chain Reaction", originally by Stephen Taylor and Colin Whitehead. It is a multi-player strategy game in which players take it in turns to add atoms to the board, causing reactions. If a player loses all of their atoms, they are out of the game. The last player standing wins. Rules ----- FreeChain is played on a rectangular grid of cells. On their turn, a player may place an atom either in an empty cell, or in a cell already containing atoms they own. Each cell has a maximum safe number of atoms it can hold; when this is exceeded, it explodes in a burst of criticality, spreading one atom to all adjacent cells. If opposing atoms were in those cells, they are captured by the player. If those cells are now over their own safe limits, they will explode. This can cause some rather impressive chain reactions. Most cells, in the middle of the grid, can safely hold three atoms. Edge cells can hold two, and corner cells can only hold one. The ncurses interface will remind you of which cells are on the threshold of exploding by displaying them slightly brighter than the others. Controls (ncurses interface) ---------------------------- When you start FreeChain, it will prompt for some game settings. A default is shown in [square brackets], which you can accept by just pressing enter. There are six colours available, and you must have at least two players. If you want to not use a colour, enter a single space, then press enter; for a computer player, enter 'C'. The grid size can be changed if you want to experiment, or only have a very small terminal. Each row of the grid requires two terminal lines, plus one overall. Atoms are placed by the cursor. The cursor is moved either with the arrow keys, or the standard vi/nethack 'hjkl' keys. To place an atom, press either space or enter. To quit, press 'q'. (Known bug: you can't quit while the computer is playing; to end an all-computer game early, you have to ^C.) To the right of the game grid is the list of players. The currently moving player is highlighted, and eliminated players are dimmed. Next to each player is a count of their atoms on the board; but having more atoms doesn't mean that you're winning! If your terminal supports it, you can also place atoms with the mouse. Clicking once positions the cursor, and clicking again in the same place actually commits to placing the atom there. Terminals don't give very accurate mouse feedback, and I found this less frustrating than the tendancy to place atoms in adjacent squares to the one I meant. (If you really want mouse control, help write a GTK+ interface. :) ) Building -------- Use 'make', then run 'freechain'. You might want to poke about in the Makefile if you have an unusual setup. FreeChain requires a C99 compiler and a "modern" ('90s) POSIX environment with nanosleep() and ncurses. Any even vaguely modern Linux or BSD should manage, as does MacOS X. Windows with Cygwin should work if you can convince Cygwin to install the ncurses library headers. Contributors ------------ The abstract game logic, AI abstraction, and ncurses interface (the first public releases) are by Philip Boulain. Want to help out? FreeChain could do with a graphical interface, e.g. GTK+ or SDL, and there's plenty of room for dabbling with AI. Or go to the other extreme and port it to something small, like a PDA. :) Send patches to lionsphil@zepler.net. License ------- FreeChain is licensed under the GNU GPL version 2. See LICENSE.txt for details.