iMaze - version 1.3
                             February 1996

                          by Hans-Ulrich Kiel
                          and Joerg Czeranski
                            at TU Clausthal


                       join the iMaze community
                             and have fun!



Copyright
=========

Copyright (c) 1993-1996 by Hans-Ulrich Kiel and Joerg Czeranski

Permission is granted to any individual or institution to use or copy
iMaze so long that it is not sold for profit and that this copyright
notice is retained. The source code of iMaze may ONLY be distributed
in its original, unmodified state.

Contributions and enhancements to iMaze will be appreciated,
and should be sent to us.


What is iMaze?
==============

iMaze is a multi-player network action game for TCP/IP with 3D graphics
under X11/XView and Motif.

It has successfully broken down the local FORTRAN lessons.

Other features include:
- sophisticated, reliable network protocol, works even with SLIP connections
  via modem
- windows can be freely scaled to avoid speed drawbacks due to poor display
  performance
- modular, portable source code
- scores
- extensive documentation (german)

After hours of testing, dueling and enjoying MidiMaze 2 on the Atari ST we
decided that it wouldn't be such a bad idea to write something similar for
Unix. "iMaze" means "Internet Maze" and by a strange coincidence it is also
a substring of "MidiMaze".

For those whom fate has denied the pleasures of MidiMaze we should add the
following:

You run through a labyrinth and shoot everything that is round without being
hit by other round anythings.
Of course anything round is one of the following:
- other players playing over the net
- computer controlled ninjas
- deadly shots (except your own)

We even managed to have this work be accepted as our "Softwarepraktikum"
(some kind of term project every computer science student in Clausthal has
to do).

If you wonder what Clausthal is: it is that little town just between Berlin
and Bonn with no girls, bad weather, slow Internet connectivity and weird
people willing to devote their time to stupid computer games.


Supported systems
=================

iMaze was tested successfully on the following systems:

SunOS 4.1.3, OpenWindows
SunOS 5.5, OpenWindows
SunOS 5.5, Motif
Linux Slackware, OpenWindows
Ultrix 4.4, Motif
HP-UX 9.05, Motif
DEC OSF/1 3.2C, Motif
AIX 4.1.4, Motif
FreeBSD 2.1, OpenWindows
SGI Irix v5.3, Motif
Sinix 5.41, Motif, GNU-make

You may be able to compile it with another OS, if you have the XView
library or the Motif library.

It should run with any graphics hardware including black and white and
grayscale X displays.

Sound is only implemented for Linux, FreeBSD and SunOS with OpenWindows
and (analog) joystick support only for Linux and FreeBSD.
The Linux joystick support was written for the joystick kernel module 0.7.3.


What do you get?
================

If you don't have "imaze1.3.tar.Z" yet, get it now from
ftp.tu-clausthal.de:/pub/unix/games/imaze (while this README waits for you).

Uncompress it and un-tar it, it will create the directory "imaze".

The directory "imaze" contains this README and a sample Xdefaults file.
The directory "imaze/source" contains the sources and the Makefile.
The directory "imaze/man6" contains the man pages.
The directory "imaze/cat6" contains the cat-man pages.
The directory "imaze/labs" contains some demo labyrinths.

Sound files and german documentation for version 1.0 (which HUK is very
fond of) are also available on ftp.tu-clausthal.de but they're not included
in "imaze1.3.tar.Z".


How to compile?
===============

For OpenWindows systems $OPENWINHOME needs to be defined as /usr/openwin,
/usr/local/openwin or wherever your OpenWindows stuff resides.

Then type "cd imaze/source".

You may want to define the default server host as:
DEFINES=-DDEFAULT_SERVER='"host.name"' in the Makefile. Otherwise the
default is to connect to the iMaze server in Clausthal.

If you use the sound, you may set the sound directory as:
DEFINES=-DDEFAULT_SOUND_DIR='"/sound/dir"' in the Makefile.

Choose the appropriate definitions in the first section of the Makefile.

Type "make" to get an overview of the supported platforms.
Then type "make <system>".


How to start?
=============

First start the server "imazesrv", then the clients "imaze"/"ninja".
See the man pages for details.


The rules of the game
=====================

Aim:
Run through the labyrinth and shoot the other players without being shot
yourself.

Doors:
Colored walls are doors. Some doors can be passed through in one direction
only.

Shots:
You can only shoot forward. If you shoot again, your previous shot dies.
The shot dies also, if it hits a player, a wall or a door.

Death:
After being shot, you are suspended from the game for 3 seconds and then
join in again at a random place.

Score:
You get 1 point for every shot enemy.


How to use the user client?
===========================

The XView client has three buttons:
"Open" opens a front view, a rear view, a map, a compass or a scores list.
"Properties" opens a properties window. You may activate scrollbars for
  the map there.
"Connect/Disconnect" connects/disconnects your client to/from the server.
"Pause/Resume" pauses/resumes the player.

The Motif client has four menus:
"File" only contains an "Exit" item.
"Window" is the same as the "Open" menu of the XView client.
"Server" contains "Connect" and "Disconnect".
"Game" allows pausing and resuming the player with the "Pause" and "Resume"
  items.

After connecting to the server, the front view and scores windows (or
whatever you configure in your ~/.Xdefaults file) open automatically.

For playing click on any of the client windows, so that it receives
keyboard input.

The cursor keys move the player, the spacebar and the shift
and alt keys are for shooting (remember: you have one shot only).
With ^S you pause your player, with ^Q you resume.

The main window will display a 3D view. If you are not in the game, the
main window is simply grey, if you have been shot, the lucky enemy and
his message is displayed.


How to create new labyrinths?
=============================

You can create your own labyrinths with "genlab".

Typing "./genlab" gives you the possible arguments.

Just play around with it. But you should at least specify "-v" for verbose
and "-s" for searching for a labyrinth without traps.

The values for -d and -D shouldn't be too high.


How to create new sounds?
=========================

The sound files use the Sun audio u-law 8000hz format. If you
have a microphone, you can record new sounds with the SunOS
audiotool.


Known bugs
==========

Often the ninjas just don't have an idea where to move. Just give them a
break, they're still kind of dumb. :-)

It is no bug, that you can't leave a one way door in the other direction,
even if you have just touched it.


Prior versions
==============

The version 1.0 was released in May 1994.

Solved bugs since 1.0:
- the server produced zombie processes
- the XView client complained about "embedding seal incorrect"
- the XView client sometimes omitted walls in the 3D display
- unused bits in the labyrinth files weren't set to zero by genlab

New features since 1.0:
- compatibility with HP-UX, Ultrix and maybe AIX
- logging of connections to the server
- sound for the XView client on SunOS and Linux
- joystick for the XView client on Linux
- man pages

The version 1.1 was released in July 1994.

Solved bugs since 1.1:
- problems with Solaris 2.x
- some of the 3D bugs were fixed

New features since 1.1:
- score
- X resources
- client doesn't terminate after disconnect,
  you can reconnect to same or other server
- 2 hours timeout for the ninja
- a message is sent to players that you kill

The version 1.2 was released in December 1994.

Solved bugs since 1.2:
- the server name was not configurable in the Makefile
- sometimes the client kill message was scrambled in the 3D display
- Linux sound didn't work properly

New features since 1.2:
- Motif support
- support for several new platforms
- pause button


Where to get iMaze from?
========================

The newest version is always available on ftp.tu-clausthal.de (139.174.2.10)
in the directory /pub/unix/games/imaze. You can fetch it via anonymous ftp,
fsp (port 21) or email to mail-server@ftp.tu-clausthal.de.


Credits
=======

Axel Buttchereit at the Institute for Computer Science of the TU Clausthal
  for guiding the project until version 1.0
Christian Perle at the TU Clausthal
  for designing the title picture of the documentation with POVray
Oliver Teuber at the FH Hannover
  for implementing sound on Linux and arranging MidiMaze sessions
Andreas Piefke at the TU Clausthal
  for allowing us to test sound and joystick support on his Linux machine
Gordon Berkley at Motorola Communications Israel Ltd., Tel Aviv
  for HP patches
Stefan Schwoon and Andre at the University of Hildesheim
  for working on enhancements
Ronald Kuehn at the TU Clausthal
  for the FreeBSD support
Ingo Macherius at the TU Clausthal
  for the Sinix support

and all beta testers and people who sent us bug reports.


How to contact us?
==================

The iMaze developers, Hans-Ulrich Kiel and Joerg Czeranski, can be reached
via email as:

imaze@tu-clausthal.de

Or put anything intended for us as a single archive (e.g. tar) via
anonymous ftp into /pub/unix/incoming on ftp.tu-clausthal.de.

There is also a WWW page available at
http://www.tu-clausthal.de/student/iMaze/