-- [ 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> *** -------------------------------------------------------------------