Home | History | Annotate | Line # | Download | only in hack
      1  1.2  cgd $NetBSD: READ_ME,v 1.2 1995/03/23 08:29:12 cgd Exp $
      2  1.2  cgd 
      3  1.1  cgd Hack is a display oriented dungeons & dragons - like game.
      4  1.1  cgd Both display and command structure resemble rogue.
      5  1.1  cgd (For a game with the same structure but entirely different display -
      6  1.1  cgd a real cave instead of dull rectangles - try Quest)
      7  1.1  cgd 
      8  1.1  cgd Hack was originally written by Jay Fenlason (at lincolnsudbury:
      9  1.1  cgd  29 East St., Sudbury Mass., 01776) with help from
     10  1.1  cgd  Kenny Woodland, Mike Thome and Jon Payne.
     11  1.1  cgd Basically it was an implementation of Rogue, however, with 52+ instead of 26
     12  1.1  cgd  monster types.
     13  1.1  cgd The current version is more than thrice as large (with such new features as
     14  1.1  cgd  the dog, the long worms, the shops, etc.) and almost entirely rewritten
     15  1.1  cgd  (only the display routines are the original ones - I must rewrite these
     16  1.1  cgd  too one day; especially when you are blind strange things still happen).
     17  1.1  cgd 
     18  1.1  cgd Files for hack:
     19  1.1  cgd 	hack		The actual game
     20  1.1  cgd 	record		Top 100 list (just start with an empty file)
     21  1.1  cgd 	news		Tells about recent changes in hack, or bugs found ...
     22  1.1  cgd 			(Just start with no news file.)
     23  1.1  cgd 	data		Auxiliary file used by hack to give you the names
     24  1.1  cgd 			and sometimes some more information on the
     25  1.1  cgd 			objects and monsters.
     26  1.1  cgd 	help		Introductory information (no doubt outdated).
     27  1.1  cgd 	hh		Compactified version of help.
     28  1.1  cgd 	perm		An empty file used for locking purposes.
     29  1.1  cgd 	rumors		Texts for fortune cookies.
     30  1.1  cgd 			(Some of these contain information on the game,
     31  1.1  cgd 			others are just plain stupid. Additional rumors
     32  1.1  cgd 			are appreciated.)
     33  1.1  cgd 	hack.sh		A shell script.
     34  1.1  cgd 			(We have hack.sh in /usr/games/hack and
     35  1.1  cgd 			hack in /usr/games/lib/hackdir/hack and all the other
     36  1.1  cgd 			hack stuff in /usr/games/lib/hackdir - perhaps this
     37  1.1  cgd 			will make the script clear.
     38  1.1  cgd 			There is no need for you to use it.)
     39  1.1  cgd 	READ_ME		This file.
     40  1.1  cgd 	Original_READ_ME Jay Fenlason's READ_ME
     41  1.1  cgd 
     42  1.1  cgd System files used:
     43  1.1  cgd 	/etc/termcap	Used in conjunction with the environment variable
     44  1.1  cgd 			$TERM.
     45  1.1  cgd 	/bin/cat
     46  1.1  cgd 	/usr/ucb/more
     47  1.1  cgd 	/bin/sh		Used when $SHELL is undefined.
     48  1.1  cgd 
     49  1.1  cgd How to install hack:
     50  1.1  cgd 0. Compile the sources. Perhaps you should first look at the file config.h
     51  1.1  cgd    and define BSD if you are on a BSDtype system,
     52  1.1  cgd    define STUPID if your C-compiler chokes on complicated expressions.
     53  1.1  cgd    Make sure schar and uchar represent signed and unsigned types.
     54  1.1  cgd    If your C compiler doesnt allow initialization of bit fields
     55  1.1  cgd    change Bitfield. When config.h looks reasonable, say 'make'.
     56  1.1  cgd    (Perhaps you have to change TERMLIB in the makefile.)
     57  1.1  cgd 1. If it didnt exist already, introduce a loginname `play' .
     58  1.1  cgd 2. The program  hack  resides in a directory so that it is executable
     59  1.1  cgd    for everybody and is suid play:
     60  1.1  cgd 	---s--s--x  1 play	206848 Apr  3 00:17 hack
     61  1.1  cgd    Perhaps you wish to restrict playing to certain hours, or have games
     62  1.1  cgd    running under nice; in that case you might write a program play.c
     63  1.1  cgd    such that the program play is suid play and executable for everybody
     64  1.1  cgd    while all the games in /usr/games are readable or executable for
     65  1.1  cgd    play only; all the program play does is asking for the name of a game,
     66  1.1  cgd    checking that time-of-day and system load do not forbid playing,
     67  1.1  cgd    and then executing the game. Thus:
     68  1.1  cgd 	-r-sr-sr-x  1 play	 13312 May 24 12:52 play
     69  1.1  cgd 	---x------  1 play	206848 Apr  3 00:17 hack
     70  1.1  cgd    If you are worried about security you might let play do
     71  1.1  cgd    chroot("/usr/games") so that no player can get access to the rest
     72  1.1  cgd    of the system via shell escapes and the likes.
     73  1.1  cgd    If you #define SECURE in config.h then hack will not setuid(getuid())
     74  1.1  cgd    before executing a chdir(). Hack will always do setuid(getuid()) with
     75  1.1  cgd    a fork. If you do not define UNIX then hack will not fork.
     76  1.1  cgd 3. The rest of the stuff belonging to hack sits in a subdirectory hackdir
     77  1.1  cgd    (on our system /usr/games/lib/hackdir) with modes
     78  1.1  cgd 	drwx------  3 play	1024 Aug  9 09:03 hackdir
     79  1.1  cgd    Here all the temporary files will be created (with names like xlock.17
     80  1.1  cgd    or user.5).
     81  1.1  cgd 4. If you are not really short on file space, creating a subdirectory
     82  1.1  cgd    hackdir/save (modes again drwx------) will enable users to save their
     83  1.1  cgd    unfinished games.
     84  1.1  cgd 
     85  1.1  cgd The program hack is called
     86  1.1  cgd $ hack [-d hackdir] [maxnrofplayers]
     87  1.1  cgd (for playing) or
     88  1.1  cgd $ hack [-d hackdir] -s [listofusers | limit | all]
     89  1.1  cgd (for seeing part of the scorelist).
     90  1.1  cgd The shell file hack (in this kit called hack.sh) takes care of
     91  1.1  cgd calling hack with the right arguments.
     92  1.1  cgd 
     93  1.1  cgd Send complaints, bug reports, suggestions for improvements to
     94  1.1  cgd mcvax!aeb - in real life Andries Brouwer.
     95