key0-96/
key0-96/doc/key/
key0-96/doc/key/credits/
key0-96/doc/key/developers/
key0-96/doc/key/developers/resources/
key0-96/setup/caves/
key0-96/setup/help/
key0-96/setup/ruins/
key0-96/src/
key0-96/src/commands/
key0-96/src/events/
key0-96/src/hack/
key0-96/src/sql/
key0-96/src/swing/
key0-96/src/talker/forest/
key0-96/src/talker/objects/
key0-96/src/terminals/
                  Key is Copyright (C) 1996-1998 by
            Paul Mclachlan, Jason Crane, and George Wright
                    v0.9 beta 6th October, 1998


I guess I should write a little bit about what makes Key so cool.


    o   Key is written in Java.  It was going to be the first talker
		written in Java, and it would have been, if I'd been happy
		at leaving it as just a talker.  But noooo... I had to go
		and do everything else thats in this file.  But being in Java
		does mean that you can run the talker in Windoze, if you
		must, or at least that we don't have to worry about different
		types of unix. ;)  It's also all object-oriented, and some
		of the new features of 1.1 (which key really pre-dates, so
		it doesn't use them yet), such as reflection, promise some
		great advantages for sections of the program.  Besides, Java
		is cool.
	
	o	Key has a proper telnet protocol implementation.  It works
		out client terminal types and window sizes, and cool stuff
		like that.  This bit is fairly pluggable, if anyone is
		looking for an implementation of a telnet server in Java...
	
	o	The system is very powerful, allowing you to set arbitrary
		properties for players or commands online, or set up
		new ranks or groups, pretty much however you want.  For
		example, if someone's title is annoying you, you can just

			set ~someone.title ""
		
		to clear it.  If you want to change what "say" outputs
		_online_, you can, with something like:

			set /commandsets/base/say.broadcast "%o mumbles '%m'"

		Which would instantly change everyones says to be like:

			subtle mumbles 'hey, man!'

		If I want to give an individual person, for example, the
		trace command, I don't have to rely on any hard coded
		rank, I can literally instantiate it just for them.

			instant commands.Trace trace
		(will return something like 'made new /players/subtle/trace')

		and then:
			
			shift ~me/trace ~someone.commands

		and they instantly have the new command available.  (actually,
		you'd need to initialise their command list "set #someone.commands
		CommandList" first, or it wouldn't work.  but you get the idea)
		
	o	Because it's OO, you can create very specialised rooms - rooms
		that people can't leave, or rooms where you can't see who is
		in them, or rooms which will disconnect anyone who walks in -
		all online, just by writing the code and dynamically loading it
		into the system.  Eventually, people will be able to write their
		own java code, compile it, and ftp it up into key, so they can
		create their own special objects, just like a MOO, but without
		the annoying programming language.  (ie, they can use Java),
	
	o	We have plans for adding graphics to rooms, and sounds as well,
		mainly for when we write our own applet with which to connect.
		The modular 'interactive connection' design, however, will permit
		it still to remain backward compatible with telnet sessions, for
		those people still stuck on Amiga's with 1200 baud modems. (hell,
		where do you think I started out?  not that I'm bitter).
	
	o	And finally, it 'almost' implements everything that is in EW.
		Which is really quite a bit.  It took us forever to write the
		code for all those finnicky commands, but its down now.

I don't expect you to use Key out of the box.  It's not really for out of
the box admins.  It's for people who want to write their own talker/mud/moo,
but want to skip the 2 years development work just getting something 'usable'
and cool.  Key is well designed if a little rough around the edges - it
will make a good 'starting point' for making a unique talker.  Anything is
better than taking a stock standard copy of PG-96, surely. ;)  (No offence,
Mike. ;)