ggzwrap(1)

NAME

ggzwrap - GGZ Gaming Zone game client wrapper

SYNOPSIS

ggzwrap [OPTION...] --exec=GAME

DESCRIPTION

This wrapper takes the place of a game client, and relays the control messages between the game and the invoking instance, which is a GGZ core client. One task is to manage different file descriptors than the ones which are normally used. The GGZ clients do currently communicate using a socket which is passed in the environment variable GGZSOCKET, usually being fd 53 on the client side, so a call to:

ggzwrap --fdin=$GGZSOCKET --fdout=$GGZSOCKET --exec=gameclient

would be equivalent to calling the client directly. However, there are games which communicate using the standard input/output facilities, so they need a redirection like:

ggzwrap --fdin=0 --fdout=1 --exec=gameclient

The GGZ game Muehle uses ggzwrap to demonstrate that game clients do not necessarily need to use any GGZ libraries. The downside is that a lot of game client functionality will not be available. Game clients which want to make use of the wrapper must add a command similar to the one above into the file ggz.modules.

OPTIONS

--fdin=FD
    File descriptor on which the game expects its input.

--fdout=FD
    File descriptor to which the game writes its output.

--convert
    This option automatically converts strings from network format to host format (more correctly, from libggz's easysock format to the normal null-terminated one) for the game server, and back in the other direction. This will be needed for most games.

--exec=GAME
    The game client to launch as a child process.

ENVIRONMENT VARIABLES

GGZMODE
    Set by a GGZ core client to tell games they're running in GGZ mode.

GGZSOCKET
    File descriptor for the connection to the invoking GGZ core client.

AUTHORS

The GGZ Development Team <ggz-dev@mail.ggzgamingzone.org>

SEE ALSO

shadowbridge(6), ggz.modules(5), ggz(7)