Welcome to the OGHAM mud system.
--------------------------------

OGHAM (Oh God, Here's Another Mud) was written by me because I wanted
to see if I could write a mud. Simple as that. Since it seems to work
rather well I decided to distribute it. If you have ever seen the code
for the NUTS talker system you may recognize some things. That is because I 
wrote NUTS and decided to reuse some of the functions and all the networking 
code - why reinvent the wheel?
	I have tried to keep the main code (main.c) as small as possible rather
than make it bloated and slow like some other systems I could mention but
still include all the important features. I also decided to go for a 
"hardwired" mud - ie all the objects, rooms etc are coded in rather than
being defined in data files. This approach has 1 big disadvantage - ie if
you wish to change something you must recompile, but 1 VERY big advantage -
POWER! In code you can make your objects, rooms etc as powerfull or intelligent
as you like - very difficult if an object is defined purely as data. The only
data files used are those used to store user data. Admittedly code is used
in LPmuds which are very flexible , but they use a non standard object C, 
can be very slow (due to the mudlib being interpreted) and are are prone 
to using up horrendous amounts of memory and having memory leaks all over 
the place. OGHAM is very frugal with the amount of memory it uses.


User modifications
------------------

Since this is PD you can do what you like with it. However if you modify the
main server code (main.c) in any way can you make sure this fact is known in
the version string (use "1.5.0 modified by Fred" or something). I don't really 
want people mailing me and saying "well in so-and-so mud it doesn't work 
the same" etc... If you distribute the code leave my copyright pertaining to 
the original source in the header in main.c and make sure you mention the code
is hacked since similarly I don't want people coming back to me moaning that 
some hacked version of the code they've got is a complete load of **** and 
crashes as soon as anyone sneezes and blaming me for it.
Thanks.


Compiling
---------
Compiling is done using the simple makefile provided. Not all dependancies
are included in the file so you may need to remove a .o file to make
it recompile sometimes but it keeps the makefile simple. Read the file
DOCS/compiling for some hints and tips.
	Once compiled just type "ogmud" to start the mud which as is sets itself 
up on port 5500. You don't need a '&' because it automatically forks and 
puts itself in the background. The PORT macro is in "defs.h" if you 
wish to change the port number. 
	Log in as "fred", password "test" and you will have god status.

To get an idea of how things work look through the rooms and objects code.
I have set up a castle with 21 rooms in it and there are a number of 
objects defined (but not all "loaded" at run time). To see a list of
the objects when in the game type "masters". To load the actual object 
type "clone <object name>" where the object name can be abbreviated. 

Anyway - thats the introduction over, now go and read all the stuff in 
the "DOCS" directory.

Neil Robertson  (neil@realtime.demon.co.uk)
October 1994
