Jump to content

Fourth speech mode


Vixie Darkfury
 Share

You are about to reply to a thread that has been inactive for 3871 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Hey all,

I am having a problem with a building I'm working on. Some of the components are out of normal chat range of the controller, so I'm having to make all the relevant components "shout" so as to be heard by each other.

This seems needlessly laggy to me. Shouts carry 100m, which is like 125 times the volume of space for a normal chat.

It seems to me, a fourth chat mode that carried, say 50m, would come in very handy in these situations. Call it llYell(), for the sake of argument. A mode that carried 50m would only carry through about 15 times the volume of a normal chat.

It seems to me the potential difference in lag would make it worth the effort to code.

 

Vixie

Link to comment
Share on other sites

Well, there's always llRegionSay, which carries anywhere within the same region and is a standard way to communicate with objects sim-wide, and the even more useful llRegionSayTo, with which you can speak directly to any avatar or object anywhere in the same region.

Link to comment
Share on other sites

I don't understand your reasoning at all. "Shouts carry 100m, which is like 125 times the volume of space for a normal chat." What exactly do you mean by this? There is no space in SL except for a display area of your monitor :) All whispers or says or shouts are just inter-task messages inside a sim server. It takes a task exactly the same CPU time to send or to receive any one of them.

The only disadvantage of shout could be that as it carries further some objects may overhear what they are not supposed to hear but this is a matter of a correct communications protocol, which is entirely up to a programmer.

Link to comment
Share on other sites


Vixie Darkfury wrote:

Well, I knew about llRegionSay() but it seems even worse than shouting. I can't RegionSayTo cuz I'm talking to unknowns and in some cases multiple objects. So, it seemed to me a chat mode with an intermediate range was the solution.

This I don't understand.

llRegionSay() is absolutely less laggy than any one of llSay(), llWhisper() and llShout();

Which leads me to the conclusion that the communication channel is badly chosen and/or your listen filter is not set up right.

Link to comment
Share on other sites


Vixie Darkfury wrote:

Well, I knew about llRegionSay() but it seems even worse than shouting. I can't RegionSayTo cuz I'm talking to unknowns and in some cases multiple objects. So, it seemed to me a chat mode with an intermediate range was the solution.

 

Vixie

Not at all.  Especially if you choose a high negative channel, the load you are putting on the sim with llRegionSay is almost negligible.  When you're speaking to several distant objects at the same time, it is absolutely the best way to go.  And if they are all speaking to you, llRegionSayTo is even smarter.

 

 

Link to comment
Share on other sites

It's like this: when you or an object shouts, the shouts propagate through space (or whatever you want to call it on a sim) such that every other object within 100m that has a listen has to be checked to see if the listen applies. This creates lag. Normal speech propagates 20m, and so creates less lag. Since it propagates through a 3-d volume of space, and 100 is 5 times 20, it's going to propagate through a volume 125 (= 5^3) times as large as a normal llSay().

A 50m yell, if it existed, would propagate through a volume only 15.625 (= 2.5^3) times that of a normal llSay(). Thus, it would be only one-eighth as laggy, as far as the lag due to volume might be concerned.

I hope that explains it for you; I don't know how else to explain it.

 

Vixie

Link to comment
Share on other sites


Vixie Darkfury wrote:

It's like this: when you or an object shouts, the shouts propagate through space (or whatever you want to call it on a sim) such that every other object within 100m that has a listen has to be checked to see if the listen applies. 

This is true of course for all scripts that listen on the channel in question and has a filter that allows it to listen.

But if your set up allows a multitude of scripts to listen, your channel and filter is badly chosen

If you really want a 50 m yell the only way is to ask LL by opening a JIRA/Bug Tracker where you suggest it

Link to comment
Share on other sites

Vixie, this is not how the server works. Let's say you whisper a message. There are 2 objects, one at 7 meters from you and one at 15 meters and both have listens enabled. The first object would hear you but the second one would not because whisper carries only for 10m. Now, there are no sound waves in the server that could dissipate. When it got your typing it just broadcasts your message to all. So how does the second object know to not hear?

What happens is that an object in the sim receives ALL whispers, says or shouts regardless of distance. Once again it is just a broadcast message. Upon receipt it checks distance to you and if more than this specific sound mode limit, ignores the message. This takes less than a microsecond of CPU time... much less :)  This considered you would not decrease the CPU time (lag) by sound mode alone. The LL implemented 3 sound modes just for realism of communications between avatars I guess. No matter how many sound modes are there the server sends a message sim-wide; the receiving objects either discard it or not as is descried above.

Hmm.. forgot to mention that a "sound" mode is just a flag in the message. Prolly 2 bits. Like RegionSay is 0, Whisper is 1, Say is 2 and Shout is 3.

 

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 3871 days.

Please take a moment to consider if this thread is worth bumping.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...