With Lua becoming a thing on the viewer, having a way to directly communicate with a object or script would be nice.
We do have game_control, and others have suggested midi. It'd be nice if we just had a general purpose "send a object / script some data as part of a ingest" or "send the viewer a message".
For example, one of the major issues with RLV is that you have to "ask" the viewer in llOwnerSay, in which the viewer may or may not have RLV implementations. Asking it over a Script Message would be very useful.
Or if you want to control more than just 6 axises.
This provides a universal approach for developers to interface viewer side scripting with server side scripting.
For example, I tried using my leap motion controller in Second Life using the new game_control messages: https://www.youtube.com/watch?v=wsmbyWWvQG8
A problem I encountered is I am limited to 6 axises. Being able to specify (N) number of data entries would allow me to add information such as finger positions/rotations as well, instead of just the palm position.
Another example I did was a voice visualizer: https://www.youtube.com/watch?v=ytx-g2j-Y_Q
Again, the limit of 6 axises limits what can be done here, being able to stream 8-bit bytes would reduce bandwidth, as well as let me specify additional frequency bins.
This can very easily contain other types of user supplied information, such as midi notes, RLV commands, etc.
A channel UUID might be useful, but that can also just be the first argument as a signature or something.
I'm thinking along these lines:
{
ScriptMessage Medium ? NotTrusted Zerocoded
{
AgentData Single
{ AgentID LLUUID }
{ SessionID LLUUID }
}
{
MessageTarget Single
{ TargetType U8 } // 0 = Script, 1 = Object, etc
{ Target LLUUID }
}
{
MessageData Variable
{ Type U8 } // LSL Type
{ Data Variable 2 } // Binary data
}
}
default
{
state_entry()
{
llMessageViewer(llGetOwner(), ["Hello, world!", llGetKey()]);
}
viewer_message(key agent, list params)
{
}
}
IN theory, this can be extended to avatars, say like having a target of type avatar and sending it there to allow script to script communication.