Subject: Inter-MOO communication III

From: Andrew Wilson <[email-masked]>
Date: Wed, 5 Aug 1992 05:44:26 -0700

Hi,

[email-masked] (Berry Kercheval) says:

>asb> How about making each VROOM a tv studio.  

>Not a bad idea, but how about letting each MOO choose an appropriate
>metaphor for their own VROOM?  Ideas might be TV Studio, a room full
>>of Crystal Balls or Palantiri, a terminal room where players can log
>into tinyMOO (the MOO within a MOO), a starship bridge with enormous
>viewscreens looking into other VROOMS, and so on.

Ok, it's good but we'll have to start thrashing out the details pretty soon.
Like:
	1) How do we connect MOO sites and pass information back and
	forth between MOOs.  We could use VPLAYERs because that approach
	would require the least amount of hacking of either LamdaCore
	or the MOO server.  Alternatively we could use something like the
	'remotemoo:eval("moocode")' command [[email-masked] (Ryan Daum)].

	2) Do we have a Vtopology with more than one VROOM (a bit complicated),
	or do we just have a single VROOM (easier to code, but less fun).

	3) What features should VROOMs have?  We should be able to 'say',
	'tell', 'whisper' and 'look' and have some mechanism to allow us
	to access information for these commands from the other connected
	MOOs.  What other features should VROOMs have?  VBOARDS perhaps?
	And if we're going to have a different analogy to the VROOM on each
	site (Studios, a Starship bridge, ordinary boring old rooms etc.)
	then how do we make the commands that one anaolgy recognises have
	a meaning in another analogy?

	4) (Yuk!)  What protocol do we use for passing messages between MOOs?
	Suppose we all implement a Vtopology, what it looks like on your
	own site is up to you of course, but the general idea is that there'd
	be more than one VROOM.  If Frederique says 'Hello.' in VROOM1 on GodNet
	then the occupants of all rooms connected to VROOM1 on all the other
	sites should be able to hear this, if your site's VROOM implementation
	permits this.

	GodNet would probably have to transmit something like:

		<ALL GodNet SAY VROOM1 Frederique 'Hello.'>

	the format's just made up but means roughly:

		To: ALL connected MOOs.
		From: GodNet
		Event Type: SAY
		Event Location: VROOM1
		Event First Parameter: Frederique
		Event Second Parameter: 'Hello'

	with that sort of information available any VROOM implementation
	should be able to do something useful.  Eventually, down in
	LambdaMOO's VROOM1, BigMac should 'hear':

		Frederique says, 'Hello.'

	This is just an example, what would the other 'messages' look like
	for commands like 'whisper' and 'look'.  Remember that 'whisper'
	will have to check that the person you're 'whispering' to is present
	in the same VROOM as you.  A command like 'look' will, at the very
	least have to request a list of other player's names from
	each MOO.

	For example, Frederique on GodNet types 'look'.  GodNet would send
	the message:

		<ALL GodNet REQUEST_PLAYER_NAMES VROOM1 26341>

	meaning:

		To: ALL connected MOOs
		From: GodNet
		Event Type: REQUEST_PLAYER_NAMES (send a list of the names
		of the players who're in this VROOM on your site).
		Event Location: VROOM1
		Event First Parameter: 26341 (Tag the returned information
		with this label so that GodNet knows which requesting
		verb to give the information to).

	and then the results would be returned from the other sites
	and collated by the 'look' verb.  So GodNet might recieve:

		<GodNet LamdaMOO DATA_PACKET 26341 BigMac yduJ Haakon>
		<GodNet DalMOO DAtA_PACKET 26341 Sammy>

	and would recognise the label 26341 on the data and be able to
	build a meaningful response for Frederique:

		This is one of the many VROOMs in the MOOniverse.
		Beware!  People are not what they seem.
		BigMac, yduJ, Haakon and Sammy are here.

	5)  What other ways are there of doing this?

Andrew Wilson