                            Open Carcassonne
                              Version 0.9.0
                                
                        Evert Glebbeek (eglebbk@dds.nl)
                              April 18, 2005
                             
0) ABOUT
1) DISCLAIMER AND LICENSE
2) INSTALLING THE GAME
   a. building from sources
   b. installing a binary distribution
3) PLAYING
   a. getting started
   b. starting a game
   c. game rules
4) IN CLOSING
5) CREDITS

0. ABOUT
========
Open Carcassonne is a computer version of the board game Carcassonne by 999 
games. It currently supports network and hot-seat multiplayer games using the
base tileset and some expansion tiles (final version will support all).

1. DISCLAIMER AND LICENSE
=========================
This program is distributed as is. No warranties are made, expressed or implied,
that this program is fit for any particular purpose. Neither the author, nor
the distributor will take responsibility for any damage that may result from
the abuse, use, or inability to use this software, including, but not limited
to, loss of data, profits, time or sanity, even if they have been informed of
the possibility of such damage.
By running this software on your computer you accept the terms of this
agreement, regardless of whether or not you bothered to read it.

Permission to distribute the game binary, sources and datafiles is granted,
provided that this readme file is also included. Do not distribute modified
sources or binaries build from modified sources.

This game is based on a board game published by 999 Games. Neither this 
software nor its author are in any way associated with 999 Games. This software
is not associated with the official computer version of the game.

2. INSTALLING THE GAME
======================
To install the game, you have several options, depending on your system setup.
You can choose to install the complete game using a Windows installer and
download the game data and binary or source code separately.

a. building from sources
------------------------
The build process should be fully automated for DOS, Windows and Linux. It
may require more work on other platforms.

To build the game you will need to have the following tools installed and
working on your system:

   * The GNU C Compiler (gcc).
   * GNU make. If you have gcc, you probably already have this.
   * A recent version of the Allegro programming library (4.2.0 or better).

The following tools are optional:
   * The libnet network Allegro add-on library.
   * The GNU fileutils package, in particular the rm utility (needed by the
     clean, distclean and veryclean makefile targets).
   * GNU Bash, GNU grep and sed (needed by the depend makefile target).

All of these are free tools available from the Internet. If you wish to use
another compiler (e.g. MSVC), you should be able to compile the sources with
a few adjustments (if any). If you experience problems compiling the code for
other compilers feel free to submit a patch to make it compile, but I can't
actively support all of them.

The gcc compiler should be available in most Linux distributions and on most 
other UNIX systems. For other systems (DOS, Windows), you'll need to get a gcc 
port for your system:

DOS: get DJGPP from              http://www.delorie.com/
Windows: I'd advice MinGW from   http://www.mingw.org/

Allegro is available from several locations, most notably the Allegro community
site, http://www.allegro.cc/, or directly from SourceForge, 
http://alleg.sourceforge.net/. Consult the Allegro documentation and the files
section of Allegro.cc for help on setting it up for your system.

Libnet can be found at http://libnet.sourceforge.net/. Alternatively, a
modified version of libnet comes with the source archive: go to the
Carcassonne/src/libnet directory and run make there.

If your system is configured properly, then all you should have to do is
extract the source code to the same directory where you extracted the game
data files. The source code is in a UNIX-style .tar.gz archive, which is
also recognized by WinZIP.
Extracting the source code will create the directories Carcassonne/src 
containing the game sources, Carcassonne/include containing the header files 
and Carcassonne/obj where the object files will go. It will also create 
Carcassonne/Makefile and Carcassonne/makefile.dep. If you do not have this 
last file, or if you have run make veryclean at some point, you can regenerate 
it by running `make depend' from the Carcassonne/ directory.

With the source code extracted, go to the Carcassonne/ directory and run `make' 
or `gmake' from the command line. Make will try to detect what system you are 
running by checking against some environment variables: if DJGPP is set, it 
will assume a DOS environment. If MINGDIR is set, it will assume a 
Windows/MinGW environment. If neither of these are set, a UNIX like 
environment is assumed. Check these variables if you are in doubt.
If you're using Linux or UNIX, you way wish to set the CPU environment variable
to your CPU to generate code for it. On my Linux box, it's set automatically,
but you may wish to make sure.

From the Carcassone directory, run the following commands from a terminal 
(replace / by \ for DOS and Windows):

 cd src/libnet
 make
 cd ../..
 make

b. installing a binary distribution
-----------------------------------
Compared to installing a source distribution, this should be easy go. 
If you pick the Windows installer, all you have to do is run it and it will
setup the game properly.
If you downloaded binary and data separately, simply unzip them to the same 
directory. Done.
There are a few subtleties though.

The Windows version requires the Allegro 4.2 DLL to be installed on your 
system. If you want, you can check if a newer version is available at the
files section on allegro.cc.

The Linux binary also requires the Allegro shared .so library, amongst other
things. If you have Allegro installed and working, this should be no problem. 
If this binary doesn't work, you can always compile the sources.

3. PLAYING
==========

a. getting started
------------------
The Carcassonne executable and configuration files are named 
differently on different platforms:

           Executable:             Config file:
DOS:         carcass.exe            carcass.cfg
Windows:     wcarcass.exe           carcass.ini
Linux:       carcass                .carcassrc or /etc/carcassrc

Under Linux, the file .carcassrc will be looked for in the directory pointed to
by the HOME environment variable, or the current directory if HOME is not set
for some reason.
If .carcassrc cannot be found in either location, but the file /etc/carcassrc
exists, it will be used to read global settings. New settings will be saved in
.carcassrc.
Run `carcass -help' to see a list of command line options. CAUTION: not all of
these may work properly. 
Simply start the program without any arguments to begin play.

b. starting a game
------------------
From the main menu, you can start playing immediately by choosing New game.
You can then choose to play a local game, where all players play on the same
computer, or a network game.
For a local game, you can check which players are in the game by marking the
check box next to their name. Press Start to begin play.
For a network game, you have two options. 
Create Network Game starts a game server. You will need to enter a nickname and
choose the type of network. This should normally be Winsock in Windows and 
Berkely Sockets in UNIX. You will be taken to the game options screen and be 
notified when players connect. Press start to begin play.
Join Network Game starts a game client. You will need to enter a nickname, the
game server's network IP address and choose a type of network as above. You 
will be taken to the game options screen. The game starts when the server hits
start.

During play, use the arrow keys to scroll the map. Page Up and Page Down rotate
the current tile. Optionally, you can use the right mouse button to rotate the
tile clockwise.
You can send chat messages using the enter key, place a tile or end your turn.
Turns end automatically if you place a new man on the map.
Escape exits the game. If the server exits, all clients exit as well.

c. game rules
-------------
Grab a copy from the game box and read those. I may explain the rules here
later.

4. IN CLOSING
=============
The game is, as yet, incomplete. Expect more complete features to appear in the
next release. Since this is a work in progress, the game may have bugs. If you
encounter any, please let me know so that I can try to fix them. If you have
other suggestions or ideas, let me know as well.

5. CREDITS
==========
Although I did the programming on this game, it could not have been made 
without the help of others. If you feel you are uncredited without cause feel
free to drop a line!
Thanks go to:

Code:
-----
Shawn Hargreaves and everyone who contributed to the Allegro library
George Foot for creating the libnet network library

Graphics:
---------
Paul Friedel for doing most of the graphics and brain storming sessions

Play testing and feedback:
--------------------------
Gerben Schooneveldt
Lydwin van Rooyen
Michael Verhoek
Paul Friedel
Yan Grange
