<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Good point -- lots and lots of examples more. But I think this is the
reason why people get the idea that the OpenSim API is "just" for
extending OpenSim, and not for developing applications... :-) The vast
majority of examples of using this API has the feel of server
extensions. (Technically, especially using OO libs, the difference
between extension and use is vague; but psychologically, people have a
hard time seeing, say, the Sun control module as an "application")<br>
<br>
<br>
Teravus Ovares wrote:
<blockquote
cite="mid:34cc66250809070713p3d0daee0h9f76ab163289aa4f@mail.gmail.com"
type="cite">
<div>I also thought it was prudent to mention that many flagship
features are implemented in the OpenSim API as a region module.</div>
<div> </div>
<div>Several notables;</div>
<div>Friends Module</div>
<div>Instant Messaging Module</div>
<div>Sun control Module</div>
<div>Asset Download module</div>
<div>Xfer Module</div>
<div>regular positional based chat module</div>
<div>IRC Bridge chat module</div>
<div>Map tile module</div>
<div>.. The list goes on.. </div>
<div>.. and on...</div>
<div>.. and on..</div>
<div> </div>
<div>Best Regards</div>
<div> </div>
<div>Teravus<br>
<br>
</div>
<div><span class="gmail_quote">On 9/7/08, <b class="gmail_sendername">Diva
Canto</b> <<a moz-do-not-send="true"
href="mailto:diva@metaverseink.com">diva@metaverseink.com</a>>
wrote:</span>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0px 0px 0px 0.8ex; padding-left: 1ex;">
<div text="#000000" bgcolor="#ffffff"><span class="q">Mike Deem
wrote:
<blockquote type="cite">
<div dir="ltr">
<div>Thanks Crista. </div>
<div> </div>
<div>I think there are two separate application models at work
here. </div>
<div> </div>
<div>What you describe is the API for extending the OpenSim
itself. I'm sure I'll have fun experimenting with it in the coming
weeks.</div>
</div>
</blockquote>
</span>This is a common misunderstanding. The OpenSim API is an API
for extending OpenSim, yes; as well as for *using* OpenSim: "rezzing"
objects inworld, linking them, unlinking them, moving them around,
copying them, creating agents, giving them an appearance, moving them
around, talking to agents, listening to them, etc etc etc -- everything
you do with the SL viewer and with libsl-based clients (and more) can
be done programatically on the backend using C#, dlls and the whole 9
yards, and bypassing inworld scripting altogether. I could, for
example, give you my DLL that implements traffic in regions, and it
will work out of the box in your regions after some initial manual
setup for resources -- that's the closest to an "application" you can
get for the time being. I will make that available one of these days as
an example of developing OpenSim applications.<span class="q"><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div> However, what I'm trying to understand are the kinds of
features that make creating large and complex things in world
easier. Usually you don't think of building and scripting in world as
creating an application, but isn't that pretty much what it is? At
least I find that thinking of it in those terms helps me start think
about how to make the task of building complex things easier.</div>
</div>
</blockquote>
</span>Yes, applications is a good name. OpenSim allows you program
them with backend modules. For large, complex things it's the best way
to go. The idea of creating applications with inworld scripting is
really cute, but only takes you so far, because the object model
exposed to scripts by the Linden viewer is very limiting. What Stefan
is talking about is way ahead; before going wild with imagining other
clients, I think it's worth looking at what is already there.<br>
<br>
I really encourage you and everyone to take a look at the OpenSim API.
For now, start with the SimpleExample code, even if it doesn't work. (I
heard that in some releases it is broken) Don't think of this API as
"just" a way to extend OpenSim. <br>
<br>
Have fun!
<div><span class="e" id="q_11c3cec1c92d9fef_5"><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div> For example, it should be possible to link a set of prims,
duplicate that set many times, and then make a change to a prim in the
set and have that change replicated, automatically, to all the
duplicates. Similarly, it should be possible to create a library of
script functions that can be used by many scripts, without manually
duplicating the script code over and over. You can think of these
things as part of an app model that supports reusable components,
something analogous to an assembly. Now you can start thinking about
how you would "reference" such a component for your build or how you
would distribute an updated version of the component.</div>
<div> </div>
<div>I wanted to know how others thought about the current "in
world" application model and how it might be evolved. Is any work going
on in that area?</div>
<div>
<div> </div>
</div>
<div> == Mike ==</div>
<div> </div>
<div class="gmail_quote">On Sat, Sep 6, 2008 at 7:19 PM, Diva
Canto <span dir="ltr"><<a moz-do-not-send="true"
onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:diva@metaverseink.com" target="_blank">diva@metaverseink.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0px 0px 0px 0.8ex; padding-left: 1ex;">
<div text="#000000" bgcolor="#ffffff">Hi Mike,<br>
<br>
OpenSim has a rudimentary application model, or even two: the one I'm
most familiar with are the region modules, and I think there's another
module system. They allow you to develop applications for the OpenSim
API. Developing for this API achieves everything you talk about -- or,
ahem, it will, once a few rough edges are taken care of. <br>
<br>
There's practically no documentation about this API, and about
application development with OpenSim, so at this point almost no one
knows about it. This is because both the API and the module systems are
still changing. You have to download the code and bravely browse
through it. In any case, the module system(s) in OpenSim is still not
as sophisticated as, say, a Tomcat webapp (there are no resources, for
example), but it is the beginning of what you are looking for.<br>
<br>
Crista<br>
<br>
<br>
Mike Deem wrote:
<blockquote type="cite">
<div>
<div>
<div dir="ltr">
<div>I've got a few thoughts about scripting and I would like
your feedback.<br>
<br>
But first, a bit of an introduction. I'm a professional software
developer with years of experience working on all kinds of distributed
applications. I became a SL resident, scripter, and builder in early
2006. I'm just beginning to get involved with OpenSim. This is a hobby
for me, it is unrelated to my work.<br>
<br>
For a while I've been thinking about "application models" for virtual
worlds. By "application model" I mean something that involves more than
simply scripting.<br>
<br>
A traditional application is a package of application code, shared
libraries, resources like images, etc. A platform's application model
defines the structure of these packages as well as things like the
security model, installation services, etc. To the user, an application
represents a consistent self-contained "user experience," usually with
a specific purpose.<br>
<br>
Of particular interest to me is the model for applications built <u>inside</u>
a virtual world.</div>
<div> </div>
<div>A build of any level of complexity could be thought of
as an application. For example: a building with door and window
scripts, an attachment with configuration scripts, a vehicle, a stage
with programed special effects for a product presentation, etc.<br>
<br>
SL offers a very rudimentary application model. You can put copies of
scripts in prims and you can link a limited number of prims together.
The platform also provides a security model and a number of other
services.<br>
<br>
However, the SL application model is missing a bunch of things. For
example we need a hierarchical prim model that supports any number of
prims and at region scale, a way to share and reuse script libraries, a
way to update things after they have been sold, given, or copied, etc.<br>
<br>
As the complexity of builds increase, the missing features become quite
restrictive. This limits the ability of content creators to produce
compelling user experiences. That limits the adoption of the platform
for commercial purposes.<br>
<br>
In addition, the SL script execution model is complex to implement
and requires a lot of computing resources. Specifically, treating
global script execution state as a persistent data store is
very problematic.<br>
<br>
I think we need something better. But I also think that making
something that is really better could require moving away from the SL
model in some fundamental ways.</div>
<div><br>
What do you think?</div>
<div> </div>
<div> == Mike ==</div>
</div>
</div>
</div>
<pre><hr size="4" width="90%">
_______________________________________________
Opensim-dev mailing list
<a moz-do-not-send="true"
onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a>
<a moz-do-not-send="true"
onclick="return top.js.OpenExtLink(window,event,this)"
href="https://lists.berlios.de/mailman/listinfo/opensim-dev"
target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a>
</pre>
</blockquote>
<br>
</div>
<br>
_______________________________________________<br>
Opensim-dev mailing list<br>
<a moz-do-not-send="true"
onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a><br>
<a moz-do-not-send="true"
onclick="return top.js.OpenExtLink(window,event,this)"
href="https://lists.berlios.de/mailman/listinfo/opensim-dev"
target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
<br>
</blockquote>
</div>
<br>
</div>
<pre><hr size="4" width="90%">
_______________________________________________
Opensim-dev mailing list
<a moz-do-not-send="true"
onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a>
<a moz-do-not-send="true"
onclick="return top.js.OpenExtLink(window,event,this)"
href="https://lists.berlios.de/mailman/listinfo/opensim-dev"
target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a>
</pre>
</blockquote>
<br>
</span></div>
</div>
<br>
_______________________________________________<br>
Opensim-dev mailing list<br>
<a moz-do-not-send="true"
onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
<a moz-do-not-send="true"
onclick="return top.js.OpenExtLink(window,event,this)"
href="https://lists.berlios.de/mailman/listinfo/opensim-dev"
target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
<br>
</blockquote>
</div>
<br>
<pre wrap="">
<hr size="4" width="90%">
_______________________________________________
Opensim-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a>
<a class="moz-txt-link-freetext" href="https://lists.berlios.de/mailman/listinfo/opensim-dev">https://lists.berlios.de/mailman/listinfo/opensim-dev</a>
</pre>
</blockquote>
<br>
</body>
</html>