/*************************************************************************/
/*                  G.R.U.D.G.E                                          */
/*************************************************************************/

I apologize for the poor formatting and rushed nature of this document...

grudge is an adventure game for x-windows, that renders an isometric 3-d 
integer world in real time via bitmaps. The game renders in color if you
have a display that can handle at least 256 colors.

at the current time, a driver is complete, but the game lacks any
kind of real objects, maps,  or an objective.

it is on on this ftp site as more of a Demo of what it can do than anything
 else, so that future interest in grudge may grow.

 I am searching for competent programmers as well as people to contribute
 bitmaps and game play ideas. contact me at via mail to 
kholland@cs.cornell.edu if you are interested.

as of march 7 1994, I have only compiled grudge on suns (the local machines)
, but since it is written in ansi it should theoretically compile on almost
 any machine running UNIX and X-windows.

HOW TO COMPILE

the newer versions of grudge includes a file name ConfigMake in the top level
directory. This file *should* make grudge *easier* to compile as well as
compatible with more systems.

So in order to compile the game, you must look in this file and change the 
values to the corresponding ones on your system.

the most important values to change are the directories - if grudge cannot 
find your directories - it will die. 

step by step -

	the first thing you may want to change is the size and face of the
text font to something that is more readable to you (I'm the kinda guy that
goes for 6x10) - choose this value from the local fonts available. you may
easily find out/ choose your fonts by run xselfont (if available) or by
running xlsfonts

	I do not recommend changing the item font name and cursor font name
unless the default values conflict with something local (I sincerely doubt 
they will....)

	next you must change the font dir value. This choice is heavily 
dependent on how your local system is set up. If there is a directory on your
system in which you may place publicly contributed fonts, set this value to
the name of that directory. If your system admins are like mine, and there is
no public space for fonts and such, or they are very stingy with that space 
(you should definitely ask them first) then you will need to set this value to
your own private font directory, just be sure that it is already made before 
attempting to compile and run the game.

	the next value to change is the lib dir - if you are have a general
area in which you keep lib files for things like games, then i recommend 
moving the lib directory there and setting the value to that location - 
this directory is very important - this is where grudge gets its runtime
data, and in future releases, the lib file may be separated from the the
release becuase of shear size. 

	you should now set the bin dir according to the guidelines similiar to
those above - if there is a publicly available one and your sys admin agrees
then set it to that value, otherwise set it to you local bin dir, or make a 
new one. (of course you could be the kind of guy that likes to place 
executables all over the place and I'm not going to stop you...) 

	you should set the CC variable to the local ansi compatible c compiler
I would very much like to hear about any errors resulting from the compiliation
of this program on computers other than suns 

	if for some strange reason your system has weird excutable names for
xmkmf ( x make makefile ) and the make command, you will need to set the next
two variables. This usually is not neccessary

	if your system uses pcf fonts for X instead of snf found, then
you need to uncomment the #define statment

	this *should* be all you need to change, again I appreciate all mail
concerning errors and problems with grudge

now type
	xmkmf
	make World

a succesful compilation *should* happen, the fonts should be placed in the
font dir and the binary in the bin dir. check the values that you have 
assigned in the ConfigMake file first if you have any problems. If you continue
to have problems, mail me and I will try to help you thru the proccess.


HOW TO RUN

	you must make sure that you xset your font path to the the font dir
that you set in the ConfigMake file, otherwise the program chokes. then 
just type grudge (if the bin dir you specified is on your path, then its no
problem, otherwise go to the bin dir and type ./grudge), if you wish to
enter DM mode (only players get their turns, all players have dm powers) then
give grudge the command line argument "-dm"

	you may have multiple players in the same game - just type the name
of the terminals that you wish to have grudge start up on and that terminal
is added as a player in the game


HOW TO PLAY 

	I haven't changed the startup message for a while so those commands
that appear when you enter are now no longer accessible unless you are in
dm mode. so Ignore them just for now.....

	Now - you need to know your keys - many thanks to kjetil homme for
this one - the keys can be set via your Xdefault file - A sample default
which works wonderfully for the suns over here is available in the lib 
directory. it is pretty self explanatory. 
	
	If you would just like to get down to business (well... theres nothing
really to do yet...) type '?' for help ( not yet implemented use key below)
	
	default keys - (hmm... looks like an qwerty keyboard)
	
	t	move forward
	r	move forward left
	y	move forward right
	f	move left
	h	move right
	v	move back left
	n	move back right
	b 	move back

	d	rotate left 
	j	rotate right
	
	T	interact forward
	R	interact forward left
	Y	interact forward right
	F	interact left
	H	interact right
	V	interact back left
	N	interact back right
	B	interact back

	'	enter parser mode (allows you to type out text commands)
	a	enter aggressive mode
	i	enter interact as default mode
	u	enter use as default mode
	. 	repeat last parser command

	I	interact with first object in inventory
	U 	use first object in inventory
	e 	equip first object in inventory
	< 	shift items up in inventory
	> 	shift items down in inventory
	l	shift items right in inventory
	k 	shift items left in inventory
	
	,	pickup item from floor
	/ 	drop item on floor
	c	view next container upwards ( or your own if already on floor)
	

	if you would like to go into dm mode, enter the parser mode and
type "dm 34" then all those commands that popped up on the screen before will
be instantly available to you - I am still in the process of writing docs for
those commands ( as well as improving and debugging them) - but if you would
like to know how to use them *really* quickly drop me an email.

	grudge is supposed to be flexible, and suppose to allow a high degree
of interactiion - so it is modeled on a psuedo - object oriented structure.
so get use to the keys and then find yourself one of those teleporter objects
on the starting map - the grey one goes to Xeon and the yellow one to another 
sample map. face it and then use the interact key - it will prompt you in
the text window about whether or not you would like to be transported to 
the destination it has been set for- type y for yes n for no....and voila-
your there (or not there if you type n) now go find a door and open it in
the same manner. try this - enter dm mode by typing dm 34 in parser mode
now type get bomb - again voila - you have a bomb in your inventory, now
type 'U' (or whatever your use in inventory key is) - and wait a few seconds.
Hopefully this will serve as a demo of how flexible grudge can be made to be. 
spells will be defined to be objects on your person - or in a book that you 
can use and interact with. you can have objects that you can configure by
interacting with them etc.....
  - as an aside - one of my current favorites - type 'mput 1f enemy' (you must
enter the parser mode to do this - the default key is the apostrophe) - then
move to someplace safe - now type 'get pyro_cart' , and 'get BG101'- put the
BG101 in to the first position of your inventory (by using the item shift keys)
, and interact with it ('I'), now equip it ('e') and enter use mode ('u') now 
find something (actually - they should find you) and press the interact key in
its general direction and FRY it.....

	again - I'm looking for a few good programmers to help me get the rest
of grudge off the ground - the driver and handlers that have already been made
are fairly solid an rarely segfault, but I would Love to have maps and objects
and such - a small doc file for how objects react and can be programmed 
is contained in the lib dir in the docs directory - I am always open to
suggestions about how to improve this interface (and I am particularily open
to c - code )

	I hope you find grudge in this demo version to be at least amusing
and I hope it peaks your interest in the future of this game
	

-karl holland (kholland@cs.cornell.edu)