<!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">
I did not use inworld scripting for any of this. I used region modules.
All those vehicles you see in the video are instances of
SceneObjectGroup that are not being backed up in the DB. Their
positions are updated via changes to the AbsolutePosition property.<br>
<br>
OpenSim is just casually an application that looks like SL. In reality,
OpenSim is a framework -- a set of classes -- that can be used and
extended, just like OpenGL for example. So, if you know how to program
in C#, you can do a lot more interesting things directly on the server
via region modules (<a class="moz-txt-link-freetext" href="http://opensimulator.org/wiki/Region_Modules">http://opensimulator.org/wiki/Region_Modules</a>).<br>
<br>
Paul Fishwick wrote:
<blockquote cite="mid:491B0173.40505@cise.ufl.edu" type="cite">
<pre wrap="">Crista:
Diva Canto wrote:
</pre>
<blockquote type="cite">
<pre wrap="">I have written a region module that does traffic simulation. Here's a
video produced by my students:
<a class="moz-txt-link-freetext" href="http://uk.youtube.com/watch?v=kJNDcurLP1w">http://uk.youtube.com/watch?v=kJNDcurLP1w</a>
</pre>
</blockquote>
<pre wrap=""><!---->This very impressive and nice use of OpenSim along the lines of what I
was thinking about. For teaching discrete event simulation, the entire
messaging
passing approach seems to lend itself well to this (assuming FIFO
ordering on event queues for a region). For continuous simulation,
your vehicles appear to be updating position at a decent frequency.
Did you use llSetPos() and was there a delay or did you run flat-out
at whatever the server could muster?
For some reason, my simple test was not good, perhaps because I was
moving too short a distance during updates. I'll retry again later tonight.
</pre>
<blockquote type="cite">
<pre wrap="">That was back in late August; the opensim API has changed considerably
since then and I haven't had time to update my module yet. I didn't
use physics; it was all done with periodic updates to the objects'
state, just like in traditional simulation. It works pretty well, only
starting to break when there are more than 2 avatars in scene; the
breakage is because we have the server behind a home DSL, so packets
start getting lost.
</pre>
</blockquote>
<pre wrap=""><!---->Yes, I could see how too many updates could be a problem depending on
the server
and location of clients.
</pre>
<blockquote type="cite">
<pre wrap="">In general, for doing tradional simulations forget about using inworld
scripting. Even if the scripting engine was already working well,
which is not, that introduces a lot of unnecessary overhead.
</pre>
</blockquote>
<pre wrap=""><!---->I suppose I was wondering whether the overhead could be removed or
minimized for
running standalone servers (or at least, servers with no more than 1 or
2 avatars)...
</pre>
<blockquote type="cite">
<pre wrap="">Moreover, it also imposes a programming model that is an obstacle to
simulations (for example, not being able to hold references to objects
and having to interact with them via llSay functions).
</pre>
</blockquote>
<pre wrap=""><!---->Yes, having the option for direct referencing would be useful.
</pre>
<blockquote type="cite">
<pre wrap="">The opensim API, on the other hand, is a joy to work with (how many
times have I said this? :-)
</pre>
</blockquote>
<pre wrap=""><!---->
When you say the opensim API are you referring to LSL, the C# interface,
or something else?
I've been using LSL, but haven't seen any docs on the C# API yet.
-p
</pre>
<blockquote type="cite">
<pre wrap="">Diva / Crista
Paul Fishwick wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Justin Clark-Casey wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Yes, things are stored in memory with a regular flush to database that occurs every 15 seconds. However, I suspect that
objects with the physics attribute are not currently persisted (from a recent thread on opensim-dev).
</pre>
</blockquote>
<pre wrap="">I am curious as to whether it could become possible (in a standalone
server or
in a grid with only one person) to do continuous visual updates for moving
objects (physical or otherwise). I have tried a few experiments, such as a
continuously moving block using LSL (setpos) and after a few seconds, the
behavior becomes erratic (for example, the box shoots off somewhere or
disappears entirely from the region).
I realize that having fast moving visual objects does not lend itself
well to sharing
state, but there are some instances where one wishes to simply launch a
region
or grid and do more traditional simulation (as one might do in OpenGL)
whether
or not the object states are shared, or on the frequency of sharing. It
would be nice
to have this "standalone continuous object motion" as a switch-based or
deltatime-specified capability.
Thoughts?
-p
</pre>
<blockquote type="cite">
<blockquote type="cite">
<pre wrap=""> * Would it (or is it) useful to have some scripts run on the client
rather than the
server for less server loading? For example, could ODE run on the
client
</pre>
</blockquote>
<pre wrap="">I think that some minor stuff is done client side already (such as flexiprims). However, I suspect one runs into
difficulties when objects can affect each other, since you would have to start communicating all this information back
to the server and somehow synchronizing it with changes from other clients.
However, I am not an expert in this area.
</pre>
</blockquote>
<pre wrap="">
</pre>
</blockquote>
<pre wrap="">------------------------------------------------------------------------
_______________________________________________
Opensim-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Opensim-users@lists.berlios.de">Opensim-users@lists.berlios.de</a>
<a class="moz-txt-link-freetext" href="https://lists.berlios.de/mailman/listinfo/opensim-users">https://lists.berlios.de/mailman/listinfo/opensim-users</a>
</pre>
</blockquote>
<pre wrap=""><!---->
</pre>
</blockquote>
<br>
</body>
</html>