tessera
-------

v1.8a - 4/4/2002

'tessera' is a Connect-4 board game, created by Spyros Paraschis
'tessera' is the greek word for 'four'

Changes
-------
v1.8a - 4/4/2002
- tessera has been recompiled using Allegro v4.01. That should result 
  in better performance
- The AI has been tweaked to be a bit harder
v1.8 - 29/7/2001
- The main loop has been rewritten, to become more efficient and readable
- The so-called "virtual peg" has been changed to an arrow
- The pegs are now dropped in the game board, rather than appearing
  magically in-place
- Some background graphics have been changed
- The simplistic particle engine has been abandoned
- Other minor changes

v1.5 - 26/6/2001
- Changed the playing engine to the newest version (v3.7)
- Added a windowed mode
- Added a launcher tool to simplify setting initial options
- Dropped JGMod lib and used midi tracks for bgm
- Other minor changes

v1.0 - 29/5/2001
- Initial version


Overview
--------

I first played Connect-4 when I was 10 years old and I really liked it.
Sure, it is a very simple game, but is easy to learn, fast to play and
requires some strategic thinking.

If you don't know what Connect-4 is all about, it is a 2-player board
game, played on a 7x6 board. The players play in turn and drop pieces of
their own colour (usually red and yellow) from the top of a column of
the board. The pieces land on top of existing pieces, or on the bottom
of the column, if there is no other piece there. The winner is the one
who gets four pieces of his colour in a row, either horizontally,
vertically or diagonally.

One day I decided to make a computer version of Connect-4. The computer
playing algorithms that I came up with did not play a very challenging
game (AI programming is a terra incognita for me), so I searched around
the net and I found an already developed public domain algorithm by
Keith Pomakis. With this, 'tessera', my version of Connect-4, was born.

Installation
------------

To install 'tessera', you just have to unzip the tessera.zip archive in
a directory, as you probably have already done, since you are reading
this file. To run the game, run 'tessera.exe', or use the supplied
launcher tool (launcher.exe).


Command-line options
--------------------

You can either set command-line options yourself, or use the supplied
launcher tool:

nomusic - disables digital music

nosound - disables sound completely

windowed - activates windowed mode

320x240, 400x300, 512x384 - The optimal and default resolution for
'tessera' is 640x480 (15/16 bit colour). Use the above command line
options to force the game to appear in smaller resolutions, if it
runs too slow on your machine. Keep in mind that all the game does
to display these resolutions is to stretch the original bitmap, so
the graphics will appear rather crude.

noslide - makes the pegs instantly appear in their place in the game
board, rather than sliding them in.

nobounce - forces the pegs not to bounce, when they are dropped in the
game board.

nofront - force the game not to draw the front layer of the game board.
It might make the game faster on older systems.

osfriendly - forces the game to try to be friendlier to the os. Off by
default, since it is untested and I am not absolutely sure how to do this.


Interface - Playing
-------------------

The main menu allows you to select the players (the 1st player is called
"red player" and the second player is called "yellow player"). You can
choose for a player to be either controlled by a human or by the
computer. There are three computer levels ("10MHz cpu", "200MHz cpu",
"2GHz cpu"). The first first cpu player ("10MHz cpu") is almost
brain-dead, as Keith Pomakis states, describing his algorithm. The other
two cpu players provide quite challenging opponents. In the main menu
you can also choose which player is playing first (either "red",
"yellow" or "random"). Keep in mind that you can just choose to view a
game between two computer opponents and that you can use either the
keyboard or the mouse to make choices.

When you start the game, you see the main game board. To enter your move
(that is the column in which you will drop your piece), use the mouse
(left click) or the cursor keys and enter or space. To help you see
where your piece is going to fall, a small arrow appears on top of the
game board. The last peg that has been placed in the board in marked with
a small circle, to help the human players see where their opponent
has played. When the game ends, you can just restart the game with the
same settings by clicking on "reset", on the bottom-right of the screen,
or you can go back to the main menu by clicking on "Exit!", on the bottom-
left of the screen (or hitting ESC).


Credits
-------

To be honest, 'tessera' is just an interface for Keith Pomakis'
(pomakis@pobox.com) connect-n algorithm, so he certainly has to be given
credit for 'tessera'. Thanks Keith.

To create 'tessera', I used Shawn Hargreaves' excellent Allegro Library.
Allegro is a cross platform game library that has a huge feature list.
Visit Allegro's page at http://www.talula.demon.co.uk/allegro/

The classical music track (Chopin) has been collected from the net, while
the other two have been created using the Automated Composing System Version
by Tetsuji Katsuda ( http://www.asahi-net.or.jp/~HB9T-KTD/music/muse.html )

The human head 3D model was created by Anto Matkovic. The desktop PC model
was downloaded from 3D Cafe, but I do not know its creator.


Conclusion
----------
One final word of warning: 'tessera' runs perfectly on my pc (Win Me,
Celeron 600, 128MB RAM) but it's code if far from being optimized, so I
really don't know how it performs on older pc's.
Feel free to contact me for any comments or ideas

Spyros Paraschis
http://www.paraschis.gr