
Mercury and Colyseus Software Distribution 

Copyright (C) 2004-2005 Ashwin Bharambe (ashu@cs.cmu.edu)
              2004-2005 Jeffrey Pang    (jeffpang@cs.cmu.edu)
                   2004 Mukesh Agrawal  (mukesh@cs.cmu.edu)

http://www.cs.cmu.edu/~ashu/gamearch.html

-------------------------------------------------------------------------------

INTRODUCTION

This software package contains a snapshot of Colyseus and Mercury, an
architecture for distributed multiplayer games and a range-based DHT,
respectively. See the URL above for more information.


INSTALLATION

This software currently only compiles and runs on Linux x86. You must
use gcc 3.2-3.4 (we have only extensively tested gcc 3.2.2). In addition,
you need GNU make and perl >= 5.8.0.

(1) First, you must install the following development libraries and headers:

    * glibc >= 2.3.2 (with pthreads)
    * libgmp >= 4.1.2
    * zlib >= 1.1.4
    * XFree86 >= 4.2.0 or xorg equivalent (for the vizualizer)
    * SDL >= 1.2.4 (for the vizualizer)
    * SDL_image >= 1.2.2 (for the visualizer)

(2) Place Merc/ in your home directory.

(3) To compile the software, enter the Merc/ directory and type 'make'.
    If something fails, it is possible that we missed a dependency in
    the list above. Please let us know.

(4) Enter Merc/run/ and untar lib-5.8.0-i686-linux.tar.gz which will
    create Merc/run/lib/.

DEMO

To run a small demo which shows the model workload in action, take the 
following steps:
	
(1) Ensure that you can ssh into 'localhost' without a password using
    ssh version 1 (or version 2 if version 1 is disabled). E.G.,
    add your public key to ~/.ssh/authorized_keys and load it into
    ssh-agent (or have a key without a passphrase).

(2) Enter the Merc/demo/ directory.

(3) Run the modelgame.demo.sh script by typing 'sh modelgame.demo.sh'.

(4) If everything worked, you should see it starting up 4 nodes on the
    localhost and then it should run the vizualizer to show you the
    bots in action. Left-click to toggle between server views. Red dots
    are bots, blue dots are missiles, and the light-red boxes around each
    bot is its visible area. Maroon dots are replicated bots and yellow dots
    are the locations of bots on the other servers which are not
    replicated. Close the window to exit.

(5) When you exit the visualizer, the script should automatically kill all
    the running servers.
