It sounds like you're thinking of action triggers as being attached to
the sector? Any thoughts on being able to also have actions associated
with any vobject (as in my email last night)?
(Observe, action triggers could easily span sectors if they were
contained in a seperate child vobject. It might actually be a useful
way to organize game resources, to have sectors containing content to
be distributed accross several little servers, then have the Actions
vobject shared by those sectors hosted on a different server delegating
the actions to software doing game logic.)
On Dec 12, 2005, at 1:00 AM, Peter Amstutz wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
So, in order for Ter'Angreal (the VOS Browser) to be able to
reconfigure itself for new applications, I see a few of fundamental
operations that are required: binding keys to actions, binding mouse
events to actions, and having the ability to overlay application
specific information onto the 3D window (to display health, scores,
inventory, toolbox etc).
I'm going to discuss input in this email.
An action in this case is an abstract input trigger. The browser
would provide a mapping from key, mouse or possibly other events to
VOS messages that are then sent from the browser to some Vobject.
When visiting a new world-app, the browser would receive a list of
possible actions and suggested key and mouse bindings. A game might
provide actions for "shoot" and "jump". A constructive world may
provide a rich variety of commands for creating, manipulating and
retrieving information about objects. The user would be able to
change those bindings to suit their preferences (or keyboard layout),
of course.
Now, one way of acomplishing this might be through an embedding
scripting language like Javascript. I think that having client-side
scripting is going to eventually be necessary, but I think we can get
a lot out of a simpler "dumb terminal" approach.
We will need some sophistication in specifying input events that can
be intercepted. For mouse commands especially: in addition to mouse
movement and button presses, we also want to capture mouseovers for 3D
objects, click-and-drag events, and mapping a click to a specific
polygon and even the 2D coordinates of the texture point the user hit.
It may be useful to provide a direct implementation of contextual
menus (if several actions are bound to the same mouse button, than pop
up a menu) and so on and so forth.
We will also need a way of specifying the destination of the event (a
"shoot" action would probably go to our avatar, but a "press button"
action would go to whatever is in front of us. For mouse events, we
want to specify what is underneath the mouse pointer, and so forth.
To try and make this a little more concrete, here's a couple examples.
First, an actions are saved on the local client using named message
blocks:
<messageblock name="shoot">
<message to="$(avatar)"
method="myapp:fire-gun" />
</messageblock>
<messageblock name="select-object">
<message to="$(object-under-pointer)"
method="myapp:you-are-selected">
<pointerpos>$(pointer-coordinates)</pointerpos>
</messageblock>
Then, a message to the client is sent:
<message to="vip://client/browser"
method="describe-actions">
<action>select-object</action>
<pointer>click1</pointer>
<bindto>select-object</bindto>
<action>shoot</action>
<key>spacebar</key>
<bindto>shoot</bindto>
</message>
The <pointer> or <key> fields specify a default binding, which can be
changed locally by the user.
As you may have noticed above, outgoing messages will have
substitution parameters. This gives flexibility in specifying the
destination for messages as well as filling in various event details
as message fields.
One feature of this system is that it is abstract enough that it would
be relatively simple at some point in the future to replace simple
"send this message" bindings with script fragments to perform more
complex actions on the client side.
[ Peter Amstutz ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED]
]
[Lead Programmer][Interreality Project][Virtual Reality for the
Internet]
[ VOS: Next Generation Internet Communication][
http://interreality.org ]
[ http://interreality.org/~tetron ][ pgpkey: pgpkeys.mit.edu
18C21DF7 ]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFDnRH5aeHUyhjCHfcRAsc4AKCnGJbc0+WRJWbe41PLi/NoYYvNmgCfSip6
PX5sN3QwdoNWjkSK0pY6/O4=
=o/tq
-----END PGP SIGNATURE-----
_______________________________________________
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
--
Reed Hedges
http://intterreality.org/~reed
AIM: ReedHedges
_______________________________________________
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d