Previous Next Index Thread

Fwd: Re: Multi-User

-- [ From: Mr 'Zap' Andersson * EMC.Ver #2.5.02 ] --

2nd try; The supid dot-at-the-end-of-the-line bug ate my fine text!
------- FORWARD, Original message follows -------
Subject: Re: Multi-User

> Mike Wray writes:
> > If you're really into squeezing every last byte shouldn't you use the
fact
> > that the orientation axis 3-tuple OX OY OZ actually only has two degrees
of
> freedom?
> 
> Yes, good point.
> 
> > Then you'd have minimum 7 bytes, maximum 17.
> 
> And a 7-byte update is very good indeed.  I doubt we'll do too much better

Sigh. I wonder when this will sink in, but I'll give it Yet Another Stab! :-
)

With the engine/brain metaphor of virtual objects, you can put the network
boundary on the *optimum place*, bandwidth wise, and you can get the
smallest data possible!

Real life example: An avatar I wrote in Meme.

The mouse was decoded by the brain to be commands like "go forward speed 1",
"go forward speed 2", "go forward speed 3", "turn right turnspeed 1", "turn
right turnspeed 2..." e.t.c.

The brain had some heuristics so it wouldn't send too many packets, i.e.
mouse had to move more than so-and-so before a new packet was sent...

Only these "high level commands" (which if I really wanted to be squeezy,
could have limited to one byte, having the fwd/back motion speed in one
nybble and the turnspeed in another, although my actual code had somewhat
higher accuracy).

> > Something else to bear in mind is that user motion is typically being
driven
> > by a mouse. As long as you agree on an input control model you could
share
> the
> > model parameters and calculate the resulting user motion. 

With an engine/brain metaphor, you only have to agree on your own
engine/brain interface, which can be arbitrary small. It could be as small
as a packet arriving or not (0 bytes actual data, apart from object id's and
timestamp)
 
> This is the way some multi-player games work; they essentially send all
the
> input device information to the other end, and treat it as if each machine
> had two mice (one for each player).  Makes for a simple design.
> However, it does make a lot of assumptions about user-interface issues.

With an engine/brain metaphor you need no such assumptions, you write your
own "assumptions" on a per-object basis, and draw the "dividing line"
between decision making "brain" behavior and dumb acting-out "engine"
behavor where it fits!

The commands can be arbitrarily high-level, like "walk to the door and open
it" encoded as one byte.... you decide, when you write the object or avatar!

As in my avatar example, nothing forced the input device to be a mouse. And
this wasn't hardcoded to HAVE to be this way in ALL avatars, this was just
AN avatar - (which is just another virtual object). If you want to control
your avatar with ZORK like commands on a command line, well fine, write it
that way. If you want to control it with your VR-suit, fine, go ahead. But
be sure to write the message-optimization codes well, or you'll be thrown
off the chill hang-out's of the low-banders :-)

/Z
 
> -- 
>    Bernie Roehl
>    University of Waterloo Dept of Electrical and Computer Engineering
>    Mail: broehl@sunee.uwaterloo.ca    Voice:  (519) 888-4567 x 2607 [work]
>    URL: http://sunee.uwaterloo.ca/~broehl/bernie.html

--
------------------------------------------------------------------------
 It's my net ANNIVERSARY time! TEN years on the NET, THREE on the WEB
------------------------------------------------------------------------
Hakan "Zap" Andersson | http://www.lysator.liu.se/~zap | Q: 0x2b | ~0x2B
Job:  GCS Scandinavia | Fax:   +46 16 96014            | A: 42
zap@lysator.liu.se    | Voice: +46 16 96460            | "Whirled Peas"
------------------------------------------------------------------------
 > > GENIUS - Mechanical Design for AutoCAD - http://www.genius.de < <
------------------------------------------------------------------------
If I had a $ for everytime I said "told you so", I'd be a millionaire.
------------------------------------------------------------------------


--
------------------------------------------------------------------------
 It's my net ANNIVERSARY time! TEN years on the NET, THREE on the WEB
------------------------------------------------------------------------
Hakan "Zap" Andersson | http://www.lysator.liu.se/~zap | Q: 0x2b | ~0x2B
Job:  GCS Scandinavia | Fax:   +46 16 96014            | A: 42
zap@lysator.liu.se    | Voice: +46 16 96460            | "Whirled Peas"
------------------------------------------------------------------------
 > > GENIUS - Mechanical Design for AutoCAD - http://www.genius.de < <
------------------------------------------------------------------------
Never underestimate the bandwidth of a speeding truck full of DAT tapes.
------------------------------------------------------------------------

-------------------------------------------------------------------
*** Please send administrative requests to <majordomo@sdsc.edu> ***
-------------------------------------------------------------------