[Opensim-dev] MetaEntities (was Re: SOG and scripting)

Sean Dague sdague at gmail.com
Wed Sep 3 12:19:33 UTC 2008


Stefan Andersson wrote:
> It warms my heart to hear somebody actually sharing and building on our initial vision. :D
>  
> As I think I've stated on several occasions; the initial idea was that the base scenario would be a scene-less application (a self-assembled region, if you will) where each connected client had their own 3D application GUI, using the viewer protocol merely as a terminal protocol to interact with that application, and that sharing a common coordinated 'desktop' in the form of a Scene would be one domain of specialized applications, of which an SL-like region with objects behaving in a certain way was yet another layer of specialization.
> Hence the name 'IClientViewAPI' - the interface that is an API for the application to easily interact with a Client _View_ (see the MVC pattern) - it's actually supposed to work the other way around than from what most people would think.
>  
> The first two example projects 'SimpleApp' and 'SimpleApp2' demonstrated this; SimpleApp did not have a scene, it consisted of an application (a peer to OpenSim.exe) you could interact with (a simple application that interfaced with connected IClientViewAPI's directly); SimpeApp2 demonstrated how you would subclass application, scenes, objects and IClientAPI's to create a totally custom world.
>  
> These two apps have since then been taken out of the tree as they didn't keep up with core development.
> This said, we at Tribal Media still use this approach; we subclass scenes and objects when we want them to behave in some fundamentally different way, instead of reconfiguring generic objects. The Tribal One [1] concept was built from the ground up for us to be able to realize things like the Third-Party Web API and http ViewPorts.
>  
> There's still so much to explore. :D

So this fits really well into some code I'm now trying to refactor and
get in (I had an intern this summer that did some great things).  We did
a project this summer that didn't go the whole route as SimpleApp, but
did a hybrid approach.  We called it MetaEntities for lack of anything
better.

Basically, making it easy to add objects to the Scene which aren't
database backed.  They are fully controlled by code in a Region Module.
 They exist along side the normal databacked entities in the region, and
flow down the same network path, but make it easy to keep them from
getting backed up.

I'm hoping that this kind of approach fits well with what others are
thinking.  In the base case we didn't modify any of the Scene internals,
but did find a lot of places where some cleanup would make this kind of
approach *a lot* easier.

It seems to make more sense to me to be able to allow SOG & MetaEntities
to coexist, and subclass the ME, as those will be code generated, where
as SOG remains user generated.  For people that only want code
generated, the path will be really clear to do that.  For people that
only want user generated, nothing much changes.  For those trying to
make the 2 coexist, it provides a nice model to do that.

We've also got a sample in world content management system that uses
this which I intend to put into tree as a region module as a demo of how
to do such a hybrid approach using meta entities as projection overlays
for the existing scene.

	-Sean

-- 
Sean Dague / Neas Bade
sdague at gmail.com
http://dague.net


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20080903/b0b5f381/attachment-0001.pgp>


More information about the Opensim-dev mailing list