>Glad you've stuck with us.
>
>I remember VRSpace (well, visiting the web page anyhow).  What became of
>that?  It looks like there's still some mailing list activity.

Oh yeah, VRSpace is still kicking as I understand.  I stopped working on it 
somewhere in 2004 so haven't really played much with it since then.   Its 
main guy Josip Almasi I believe has been making modifications to it.

In the intervening years I spent a lot of time programming in c# and I 
decided java didn't have what I needed to build the system I was looking for 
in VRSpace.  My take on things is that the VRML world basically had the 
right idea about how to build one of these virtual space system, but things 
got out of wack.  Ever read the "Living Worlds" document?, very cool, ahead 
of its time stuff.  However, they got too caught up in VRML itself.  First 
they build a nice standards 1.0 that let you set up a scene graph.  Then 
they add animation, events, prototypes, for nodes and an external api for 
interacting with the scene.  All very good, but they also added internal 
scripting languages, which is where they started to go off the deep end.  As 
far I understand it now, they have cut off support for the external api, and 
expect you to fully program all your nodes in javascript.  Say what?  
Basically they think VRML is everything, graphics, animation, all the 
underlying logic, networking, programming... way too much for someone 
building a VRML browser to be responsible for supporting.

But still the abstract concept of an object living in a space with events, 
properties, perhaps geometry is the right one.  Objects that can be 
discovered, reflected upon...  So I want to turn the VRML concept inside 
out.  Spaces (whether client side or server) are collections of special 
objects (VRObjects if you will) that are shared when the two spaces 
encounter each other (Client logs in for example).  These objects may or may 
not have geometry associated to them, but they do have attributes that can 
be queried, and events that can be registered for.  As an example, the most 
basic example of a VR chat system is:

Server - Chat object with method Say.
Client 2 - Merges with Server space, register a listener to Say method on 
chat object.
Client 1 - Merges with Server space, sees Chat object, calls Say with 
parameter ( "Hello World" )
Client 2 - Receives the Say call, and maybe displays it.

So why c#? basically they've got Serialization, Remoting, Attributes, and 
most importantly this notion of a ContextBoundObject, which together 
basically gives you a VRObject.  A CBO lets you intercept any calls to it 
from another CBO (whether residing in another virtual machine or the same) 
and handle them as you wish.  So in the above, "register a listener with 
Chat" and "receive the Say call" are handled transparently by intercepting 
the Say call and calling all the listeners.  The remoting handles all the 
object serialization and communications, but most importantly whether you 
are calling methods on a server object from the client 
(chatObject.Say("Hello World") or from server to server object, you program 
it the same way.   The fact that this method can be listened to at all, 
security etc. occurs by marking it up with attributes.

In terms of seeing objects though in a virtual space, its all handled as 
above.  You have classes called Transforms with associated objects 
VrmlFiles.  You detect a transform and vrmlfile when encountering the space, 
you read off the Transform's location, the VrmlFile's resource "blah.wrl" 
and tell your browser to create the associated nodes.  If you want to 
"script" a vrml node, you do it all by listening to the vrml nodes, and 
handling the events in the c# itself.  So the vrml file is slave to the c# 
class, not the other way around which would be more the VRML evolved.

So I know I am preaching to the choir here, which is why I think your 
project rocks.  My take on your stuff is that you have built the entire 
protocol, the serialization, the CBOs, reflection, the attributes/security 
yourself.  Very impressive.

>To be honest, I hate COM and our primary development platform has always
>been Linux, so it's not particularly high on the list of priorities.
>However, interoperability is going to be a strong focus of the next
>version, so some kind of COM binding may be down the road.  I'm actually
>more interested in being able to interoperate with .NET directly than
>trying to do .NET via COM.  The tricky part on Windows is that I also
>want to support compiling with cygwin/mingw, so we can't rely on tools
>that are only available with Visual Studio.
I hear you.  Yeah the only real reason for suggesting COM was for the 
interop with .Net.  I suppose then you could make yourself a managed c++ 
assembly which wraps your api, but watch out for combining .Net memory 
management with your code, yikes!  How about mono?

>Yes, we've been meaning to do that for a long time.  It's just a matter
>of developer time and resources.
Yeah, i remember the documentation sections on the widgets, etc.  Its a lot 
to ask for.

>These are all good ideas, and I'll incorporate them into the
>requirements document when I get a chance.
Awesome

>I used to play Hero Quest!  That game was great.  I still have a boxful
>of plastic orcs lying around here somewhere...
Yeah, HeroQuest, I thought if I made a demo boardgame it better be something 
that's actually fun to play.  Chess didn't cut it.  You just sent out a 
message about demo worlds.  I heartfully suggest the notion of a gamespace.  
You walk in, see little stations that let you run various games, get to 
start a game/join one, play, keeps track of your accomplishments, etc.  
That's basically what I am working on now.





>--
>[   Peter Amstutz  ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED] ]
>[Lead Programmer][Interreality Project][Virtual Reality for the Internet]
>[ VOS: Next Generation Internet Communication][ http://interreality.org ]
>[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]
>


><< signature.asc >>




>_______________________________________________
>vos-d mailing list
>vos-d@interreality.org
>http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d

_________________________________________________________________
Want a degree but can't afford to quit? Top school degrees online - in as 
fast as 1 year 
http://forms.nextag.com/goto.jsp?url=/serv/main/buyer/education.jsp?doSearch=n&tm=y&search=education_text_links_88_h288c&s=4079&p=5116


_______________________________________________
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d

Reply via email to