Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > c4fdc836186bf40d652628cee38e9f07 > files > 15

libggz-client2-0.0.6-2mdk.ppc.rpm

The GGZ Gaming Zone - Release 0.0.6
===================================

Welcome to the GGZ Gaming Zone, a multiuser networked gaming
environment.  This project is still in the development phase, and as
such may have some bugs.  It may not even compile or run on your
machine (although we do our best to make sure it does).  If you are
interested in assisting with development or in writing a module for
your favorite game, please let us know at ggz-dev@lists.sourceforge.net

The server currently supports thirteen different game types, including
spades, tic-tac-toe, chess, reversi, and others.  Players can create
accounts, login, and play games in any one of multiple game rooms.
Sometimes they can even watch other players.
More game servers are available in experimental state or as part of
other projects.


Downloading
===========
You can always download the latest released version of GGZ from our
homepage at http://ggz.sourceforge.net, or for the absolute bleeding
edge you can check out the sources via anonymous CVS (instructions are
at the aforementioned homepage).  GGZ is comprised of several
components, each of which is packaged separately for maximum
flexibility.  The components are:

- The libggz library

  This is a library of common function calls for client/server
  communication and utily functions.  It is distributed in source form
  as libggz-X.X.X.tar.gz, where X.X.X is the version number.  The
  easysock library has been merged into libggz.

- Common client libraries

  This is the set of libraries common to all clients.  The source is
  available as ggz-client-libs-X.X.X.tar.gz where X.X.X is the
  version number.

- GGZ client

  This is the core client program that lets you log into a GGZ server,
  chat with friends, move between rooms and launch tables (the actual
  games are distributed separately).  It is our goal to provide
  frontends for all environments.  We currently have a Gtk+ client, a
  KDE client, and a simple text-only client.  These are available as
  ggz-YYY-client-X.X.X.tar.gz where YYY is one of kde, gtk, or txt,
  and X.X.X is the version number.

- GGZ game client modules

  To make it easy to add more games without having to recompile GGZ,
  we distribute games as modules.  Each frontend (kde, gtk, etc) has
  separate modules, but you can mix and match as you like.  Every GGZ
  module should work with every GGZ client (within reason.  You can't
  expect X-based games to work on a text console, of course).  The
  games are distributed as ggz-YYY-games-X.X.X.tar.gz where YYY is kde
  or gtk (no text-specific games yet), and X.X.X is the version number.

- The GGZ server

  This is the software for setting up and managing a GGZ server
  installation, including the server game modules.  Note that if you
  only want to play games on an existing server, you do not need to
  download this.  The GGZ server is distributed as
  ggz-server-X.X.X.tar.gz where X.X.X is the version number.

- Additional software

  If you want to experience everything of GGZ, try this out.
  The current additional packages are grubby (our chat bot), available
  as ggz-grubby-X.X.X.tar.gz, and various utilities, ggz-utils.X.X.X.
  For the very bleeding edge, some more (not distributed) software
  can be found in the playground CVS module.

- Documentation
  A whole bunch of documentation, including the GGZ hosting guide and
  the GGZ development guide, as well as information on the various games
  and the project itself can be found in ggz-docs-X.X.X.



Compiling and Installing
========================
For more detailed instructions on configuring and installing each
of GGZ components, please read the INSTALL file in each of the
respective source directories.  For an overview of the installation
process, please read the QuickStart.GGZ file.


Using ggz-config to manage client game modules
==============================================

The ggz-config utility, installed as part of ggz-client-libs, allows
you to manage the client game module installed on your system.  It
takes information from a module description file (distributed with
each game module) and stores it in a global configuration file.  All
GGZ client frontends share this file to determine what game modules
are available.

ggz-config also allows client and game developers to automatically
configure pathnames for executable files, data files and so forth
without requiring direct access to the ggz-client-libs sources.


ggz-config Game Module Install
------------------------------
Most game modules will call ggz-config automatically from their
install scripts.  The syntax for calling ggz-config to install a game
module manually is:

       ggz-config --install --modfile=<module desc file>

Some additional options may also be specified:

	--force         Allows the installation information to overwrite
			existing information of the same game version.

	--destdir       Typically used during package builds, this causes
			the installation information to go to a
			ggz.modules file in a temporary build
			directory, as specified by the DESTDIR environment variable.

ggz-config Game Module Uninstall 
--------------------------------
When a game module is removed, ggz-config should be run to remove the
game's information from the ggz.modules file.  The preferred method of
removing the module is to use the original module description file
like this:


	 ggz-config --remove --modfile=<module desc file>

In the event that the original module description file no longer
exists, the game module information can be removed manually using the
following options:

	--modname=NAME		Specify the Name entry for the module
	--modauthor=AUTHOR	Specify the Author entry for the module
	--modui=<fe code>	Specify the frontend code for the module



Basic ggz-config Queries
------------------------
The pathname query features can be used to query the pathnames that
are compiled into the ggz-client-libs on a particular system.  These
include the following locations:

	--configdir	Query location of configuration directory
	--gamedir	Query location of game modules directory
	--datadir	Query location of game data storage directory

Finally, the --version option of ggz-config can be used to check that the
currently installed version of ggz-client-libs is sufficient for correct
compilation/installation of the client or game.

ggz-config will print the requested pathname(s) or version to standard
output where it can easily be parsed by a shell script.

Game Module Description File Format
-----------------------------------
The preferred method of installing a game module's launch information
into the ggz.modules file is by using a module description file
(commonly named module.dsc).  The command line method of installing
information is not yet documented (and may eventually be removed).

A module.dsc file should be formatted as follows:

  # Comment lines are ignored
  [ModuleInfo]
  Author = Author Name
  CommandLine = /pathname/to/executable/ggz.game
  Frontend = <fe code>
  Homepage = http://host.domain/location/
  Name = <game name>
  ProtocolEngine = <protocol engine>
  ProrocolVersion = <protocol version>
  Version = <game module version>

The current <fe code>s which are understood are 'gtk' and 'kde' and
should describe the native environment for this game.  This field is
simply to give the various GGZ clients an idea of what toolkit a game
was compiled with.  All game clients should always work with any
client frontend (assuming the user has the required GUI environment
installed).

The <game name> should match the game name as used by the ggzd server.
The actual displayed name for the game will be set by the server.

The prorocol engine and version must match those of the game module
server.  This insures that game clients, which may be of different
versions will properly work with the game server.

The <game module version> is used internally to identify which game
version to be used.  This allows multiple clients to be installed as
long as their game version is different - obviously (or perhaps not)
these would need to have different CommandLine entries.


Running
=======
You must have access to a running server for the client to be of any
use to you.  The server does not have to be running on your machine,
however, if you have no (or slow!) network access, you may want to run
both the client and the server locally.  If you choose to install the
GGZ server, you may launch it simply by running the command 'ggzd'
This will start the server listening on port of 5688.
You can find a list of GGZ servers on our homepage.

The command to launch the client will vary, depending on the
particular flavor you have installed.  For example, the Gtk+ client is
started by running 'ggz-gtk', whereas the KDE client is started by
running 'kggz'.  Once the client is running you should be able to log
into a running GGZ server and begin playing! (Provided you have
installed some games as well).


Bugs
====
Bugs in our code?  Never! :)  But if you do happen to find one, you
can report it at http://sourceforge.net/bugs/?group_id=1325 or feel
free to contact us at the email address below.


Please let us know if you have any problems, comments, feedback. etc.


Enjoy!
--The GGZ Development Team
<ggz-dev@lists.sourceforge.net>