<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>I think that it's a bloody brilliant concept.<BR>
 <BR>
I do, however feel that following the LL architecture '(LSL) scripts, attached to one object' would not be optimal, since LSL is inherently a very environment-intensive language (almost all commands do some minor interaction with the environment) and that every script can only (or mostly) influence one prim, makes it inefficient if it were remoted.<BR>
 <BR>
Compare instead, if the behaviour (aka script or code) was encapsulated with API calls and events that would set big sets of data transfers in motion, or only transfers 'on demand'<BR>
  * Wait until any Avatar comes within 3 meters of my Bounding Box, then give me All Avatars within 100 metres<BR>
  * Run thru all my objects, ask them if they need movement update within my frame, try to Move All these object groups to these locations, break on collision and report.<BR>
  * Don't send information about objects that nobody has tagged as 'interesting' (being subscribed to) - for example, if the object is only interested in avatar interactions, and is in a region with no clients attached.<BR>
  * Changes in all 'foreign objects' that are tagged as 'interesting' (subscribed to)<BR>
  * Create this object, consisting of these 25 prims, with these properties<BR>
 <BR>
This would be the whole EXE communicating for ALL its objects, with all regions where it currently has objects.<BR><BR>
If one has something like that (with the API tailored for big, sweeping, general updates) I think it could be well as effective an arch as the LL arch, minus the transfer hassle. Of course, you wouldn't do that for a piece of bling that should blink when another avatar is near, since that piece would do trivial work spread out over thousands of regions, but you might well do it for, say, a car.<BR><BR>I actually believe the communications could be made quite simple, but I'd suggest you start with something very specific and work your way from there.<BR>
 <BR>
But hell, DO IT! It's one of the things I've dreamt about. It's third-party extensibility in a box.<BR>
 <BR>
Best,<BR>
/Stefan<BR>
<BLOCKQUOTE>
<HR id=EC_stopSpelling>
Date: Thu, 20 Sep 2007 09:10:03 +0200<BR>From: tedd@konge.net<BR>To: opensim-dev@lists.berlios.de<BR>Subject: [Opensim-dev] ScriptEngine as stand-alone<BR><BR>
<META content="Microsoft SafeHTML" name=Generator>
<STYLE>
.ExternalClass EC_p.MsoNormal, .ExternalClass EC_li.MsoNormal, .ExternalClass EC_div.MsoNormal
{margin-bottom:.0001pt;font-size:12.0pt;font-family:'Times New Roman';}
.ExternalClass a:link, .ExternalClass EC_span.MsoHyperlink
{color:blue;text-decoration:underline;}
.ExternalClass a:visited, .ExternalClass EC_span.MsoHyperlinkFollowed
{color:purple;text-decoration:underline;}
.ExternalClass EC_span.EpostStil17
{font-family:Arial;color:windowtext;}
@page Section1
{size:595.3pt 841.9pt;}
.ExternalClass EC_div.Section1
{page:Section1;}

</STYLE>

<DIV class=EC_Section1>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Hi</SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> </SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I need to gather some views on something I’ve been thinking of for a while now.</SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I’m considering the benefits and drawbacks of moving the scriptengine to a separate .EXE, running as a daemon.</SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> </SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The advantage is that a script can be running on a different computer than the sim itself. This can be used to protect IP (source code) and to offload the actual server.</SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> </SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Protecting IP can be everything from someone wanting to stop untrusted servers from getting their code, to a company selling and hosting scripts (like a “script for rent”-company). Offloading the servers is anyway good since they will be quite busy with physics and stuff. If you want really complex scripts then you can run a cluster of machines.</SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> </SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Also a running script would not have to be moved between regions, it can just contact the next region as the avatar does.</SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> </SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> </SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Separating scriptengine from the sim would require a separation of LSL commands.</SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Any command that does not manipulate or gather information about the region or its objects/avs can be executed by the scriptengine. Any command that does so will have to communicate using some sort of network protocol, for example remoting.</SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> </SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I need inputs on how much traffic this would cause. Overhead? Advantages? Drawbacks? Showstoppers?</SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">What do you think?</SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> </SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Sincerely,</SPAN></FONT></P>
<P class=EC_MsoNormal><FONT face=Arial size=2><SPAN lang=EN-GB style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> Tedd</SPAN></FONT></P></DIV><BR>
<FONT size=2>No virus found in this outgoing message.<BR>Checked by AVG Free Edition.<BR>Version: 7.5.487 / Virus Database: 269.13.25/1018 - Release Date: 19.09.2007 15:59<BR></FONT><BR></BLOCKQUOTE></body>
</html>