Re: [ogpx] Limits to interoperability of scripted objects
Morgaine <morgaine.dinova@googlemail.com> Tue, 10 November 2009 03:55 UTC
Return-Path: <morgaine.dinova@googlemail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix)
with ESMTP id A24CA3A6930 for <ogpx@core3.amsl.com>;
Mon, 9 Nov 2009 19:55:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.85
X-Spam-Level:
X-Spam-Status: No, score=-0.85 tagged_above=-999 required=5 tests=[AWL=-0.294,
BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, SARE_ADULT2=1.42]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com
[127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6O361fjQ6HK8 for
<ogpx@core3.amsl.com>; Mon, 9 Nov 2009 19:55:38 -0800 (PST)
Received: from mail-ew0-f207.google.com (mail-ew0-f207.google.com
[209.85.219.207]) by core3.amsl.com (Postfix) with ESMTP id 5A6183A685B for
<ogpx@ietf.org>; Mon, 9 Nov 2009 19:55:37 -0800 (PST)
Received: by ewy3 with SMTP id 3so3866693ewy.37 for <ogpx@ietf.org>;
Mon, 09 Nov 2009 19:56:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma;
h=domainkey-signature:mime-version:received:in-reply-to:references
:date:message-id:subject:from:to:content-type;
bh=EJNADJ7/c1zoFNp0XkFXI9G/YklS5CNEHY4GoT8AoIg=;
b=EKThE+dotLfTTgUWr0IPwcfqWvTLwBTvBK+AnMr02m6ywhorwB2Tm/0U0pPrJCIEHm
A3co6UYupayByJFqJiO5LTEcA66EqVA6VsAYmHPuZA1yxA/wdf+jd66Gzi8vQ5SY2pjM
hhxcjXH8JwbNT8K9GAa5FfdpxdlHDRkVmKIjk=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma;
h=mime-version:in-reply-to:references:date:message-id:subject:from:to
:content-type;
b=e+DvWKvFCK9AmqaN8oiu/B38lpnaCJu0dSWyGJKlefenjiEA79VfwPvTMU64170e4J
Hf8fHBdOkQ8O/X0n6m5Gt0gV9p5wEDDZ5zqxR0EEP4It1/jUWWm7ahI8n/VPt05GIbbP
boJ6m9Jgl/W6VsjOEcfazl24SSe+plt+0XDpI=
MIME-Version: 1.0
Received: by 10.216.89.11 with SMTP id b11mr152370wef.171.1257825361234;
Mon, 09 Nov 2009 19:56:01 -0800 (PST)
In-Reply-To: <f72742de0910270951x6b4536d8wef165e850ba16ef8@mail.gmail.com>
References: <e0b04bba0910262215td0cf125lb3129947e8f81891@mail.gmail.com>
<f72742de0910270951x6b4536d8wef165e850ba16ef8@mail.gmail.com>
Date: Tue, 10 Nov 2009 03:56:01 +0000
Message-ID: <e0b04bba0911091956j5edc4840pd5a32d98eff3776e@mail.gmail.com>
From: Morgaine <morgaine.dinova@googlemail.com>
To: ogpx@ietf.org
Content-Type: multipart/alternative; boundary=0016e6d643fad88f580477fc49c6
Subject: Re: [ogpx] Limits to interoperability of scripted objects
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>,
<mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>,
<mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Nov 2009 03:55:39 -0000
On Tue, Oct 27, 2009 at 4:51 PM, Joshua Bell <josh@lindenlab.com> wrote: > > * Your (3) (common scripting environment) is intriguing. Sun's Project > Wonderland uses Java (obviously...) as the common format, and (vastly > simplifying) all objects in the VW are Java objects. I'd love to learn more > from them about the challenges and successes. That said, at a protocol > level, I don't think we'd ever dictate a common environment, so going down > this road might turn into a de-facto common case of the content negotiation > (just as the Web technically allows for client-side scripting languages > other than Javascript, although they are used incredibly infrequently in > practice). > > * Client-side scripts are also intriguing. If I think about what this means > in practice, it's that the client is able to manipulate the state of objects > in-world. Well, duh - that's what editing and appearance tools do! So... > that capability (pun intended!) is a requirement at the protocol level, > although I don't think we've even brushed on how to define it yet. It would > be intriguing if the protocol were such that the client could expose a > DOM-like view of the world to local scripts to observe and mutate. > > > I like both of those ideas. I wonder if we could support them both in principle with minimal effort by providing a generic hook using script metadata. Let some attribute select between "region" (for scripts running in the current region as in SL), "avatar" (for HUD scripts that run in-world but don't need region events so they can be run in a separate load-balaced server pool), "home" (for scripts that always run in the agent's home region), and "client" (for client-side scripts or plugins). Further attributes could specify the language and maybe a startup argument list too. (These are just random ideas, not cohesive.) Thinking about the scripting languages themselves, presumably nobody would argue in favour of turning LSL into an interop standard given the poverty of its syntax, but even worse is the tortuous and complex semantic of its system calls which would be very problematic to standardize, or maybe impossible. The SL scripting environment has evolved in a way that isn't conducive to portability, not only because the implementation is closed and quite unique, but also because it's tied fairly strongly to a proprietary physics engine for events/simulation and to a rather esoteric communications model. These things conspire to make standardising around the SL scripting mechanism very unlikely. This gives us a solution to cross off the list, but unfortunately doesn't offer us anything in its place. Being realistic, forcing language commonality at this early stage is just not going to happen, so we might as well lubricate the protocol machinery to allow multiple scripting systems to be supported. Eventually a de-facto standard will emerge as happened with Javascript. Let people with more spare time than we have sort it out, and may the best idea win. :-) As lubrication, I think we should provide at the very least some generic and extensible metadata hooks in the protocol for this, otherwise the spec will be modified incompatibly outside of the standard to support the diverse scripting requirements of worlds, and then interop suffers. Morgaine. ========================================= On Tue, Oct 27, 2009 at 4:51 PM, Joshua Bell <josh@lindenlab.com> wrote: > Good analysis as usual, Morgaine! > > > On Mon, Oct 26, 2009 at 10:15 PM, Morgaine <morgaine.dinova@googlemail.com > > wrote: > >> Being pragmatic about the situation, if we wish to see interop of >> scripting in the relatively near future, we need to find an approach that is >> inherently interoperable. Here are some ideas that might be relevant to >> this end (these are alternatives, they don't all apply simultaneously): >> >> >> 1. Make script state transfer a deployment option: both source and >> destination regions have to allow script state transfer for it to happen. >> 2. Worlds running different scripting engine implementations do not >> transfer state and hence scripts are initialized on teleport. >> 3. Define a common scripting language and virtual machine environment >> --- ie. a web-like Javascript approach but for regions. >> 4. If script state continuity is desired on teleports between worlds >> running different script engines, let such scripts run client-side. >> >> > A few thoughts on the above: > > * Even though the Web appears to have given up on content negotiation over > HTTP, I'm still a fan and I think cross-system interop like this is a good > place for it. During Region-to-Region state transfer, you could imagine the > destination region advertising the script state types it accepts > (vendor/com.lindenlab.secondlife.lsl2mono, vendor/org.opensim.dotnetengine, > ...), and the source region delivering one tagged with appropriate type. I > would imagine we'll need similar logic for static content as well - articles > of clothing could have have "prim" or "mesh" based versions, and regions may > prefer one type to another. (Although it would be more likely to have both > available on the region, and have content negotiation occur on the > region->viewer resource transfer.) > > * Given the desire for "tourist" models (using the term loosely - I "live" > on my home grid, but like to visit other grids), it doesn't seem like > there's a one-size-fits-all approach (since region-to-region teleports in my > home grid and region-to-region teleports between grids utilize the same > protocol). So... this is definitely part of the protocol's mandate to sort > out. > > * Combining the above two points, it implies that attachments will have to > cope with moving from areas where they have scripts running to scripts not > running (if the code/state is not compatible with the hosting region). > Fortunately, we have precedent for that. :) > > * Infinity and I very briefly hand-waved about whether "portable" content > (primarily, attachments to avatars) should even be executed within the > region domain. Perhaps they should be executing in the agent domain? That's > a radical departure from how SL or OpenSim work today. (If you squint your > eyes and partition the current services, at least.) - at any rate, today > there is no script execution outside of a region. It's an intriguing idea, > but by no means complete - how such fine grained state might be updated > between domains, for example. Vehicles come to mind as another case, and > those have no clear "home base" for script execution. I suspect this is not > tractable for the first iteration of VWRAP, but I don't want to dismiss it. > > * Your (3) (common scripting environment) is intriguing. Sun's Project > Wonderland uses Java (obviously...) as the common format, and (vastly > simplifying) all objects in the VW are Java objects. I'd love to learn more > from them about the challenges and successes. That said, at a protocol > level, I don't think we'd ever dictate a common environment, so going down > this road might turn into a de-facto common case of the content negotiation > (just as the Web technically allows for client-side scripting languages > other than Javascript, although they are used incredibly infrequently in > practice). > > * Client-side scripts are also intriguing. If I think about what this means > in practice, it's that the client is able to manipulate the state of objects > in-world. Well, duh - that's what editing and appearance tools do! So... > that capability (pun intended!) is a requirement at the protocol level, > although I don't think we've even brushed on how to define it yet. It would > be intriguing if the protocol were such that the client could expose a > DOM-like view of the world to local scripts to observe and mutate. > > > _______________________________________________ > ogpx mailing list > ogpx@ietf.org > https://www.ietf.org/mailman/listinfo/ogpx > >
- [ogpx] Limits to interoperability of scripted obj… Morgaine
- Re: [ogpx] Limits to interoperability of scripted… Joshua Bell
- Re: [ogpx] Limits to interoperability of scripted… Morgaine
- Re: [ogpx] Limits to interoperability of scripted… Lawson English
- Re: [ogpx] Limits to interoperability of scripted… Joshua Bell
- Re: [ogpx] Limits to interoperability of scripted… Carlo Wood
- [ogpx] Synchronization of gestures (was: Limits t… Carlo Wood
- Re: [ogpx] Limits to interoperability of scripted… Morgaine
- Re: [ogpx] Synchronization of gestures (was: Limi… Carlo Wood
- Re: [ogpx] Synchronization of gestures (was: Limi… Han Sontse
- Re: [ogpx] Synchronization of gestures (was: Limi… Carlo Wood
- Re: [ogpx] Synchronization of gestures (was: Limi… Carlo Wood
- Re: [ogpx] Synchronization of gestures Lawson English
- Re: [ogpx] Synchronization of gestures Carlo Wood
- Re: [ogpx] Synchronization of gestures (was: Limi… Nexii Malthus
- Re: [ogpx] Synchronization of gestures (was: Limi… Carlo Wood