Simulator User Group/Transcripts/2012.04.10

Simulator_User_Group
Prev 2012.04.06	Next 2012.04.13
== List of Speakers ==
Andrew Linden 	Ashiri Sands 	Draconis Neurocam
Fancy Detector	Flip Idlemind 	Ima Mechanique
Imaze Rhiano 	Kallista Destiny	Kelly Linden
Nalates Urriah	Qie Niangao 	Quenemue Cyberstar
Rex Cronon 	Simon Linden 	Slee Mayo
Vincent Nacon 	Yuzuru Jewell 	
== Transcript ==
[12:00] Vincent Nacon: to get all the details
[12:00] Meeter: Welcome to the Server User Group
[12:00] Rex Cronon: hello everybody
[12:00] Vincent Nacon: heya
[12:01] Andrew Linden: Hello
[12:01] Rex Cronon: hi vincenct
[12:01] Rex Cronon: hi andrew
[12:02] Andrew Linden: Ok so news...
[12:02] Andrew Linden: I'm still working on the pathfinding beta.
[12:02] Andrew Linden: We expect to deploy an update to that beta channel today or tomorrow.
[12:02] Andrew Linden: We've fixed a few crash bugs and other smaller issues
[12:03] Andrew Linden: but there is still a lot of known small bugs
[12:03] Fancy Detector: Kelly Linden has arrived!
[12:03] Andrew Linden: most of which can be fixed rather quickly.
[12:03] Andrew Linden: One problem I've had is we've decided to try to make the script errors more verbose
[12:04] Andrew Linden: rather than have the new stuff fail silently
[12:04] Andrew Linden: and we've added some restrictions to setting an object dynamic
[12:05] Andrew Linden: in particular, objects that are included in the computation of the navmesh can't be set dynamic, or moved via script
[12:05] Rex Cronon: for a scripter would be very helpfull if there was an event named error(integer id, string value)...
[12:06] Andrew Linden: but some of the script errors are incorrect. They might say, "can't enable physics on this object becuase the resource costs are too high"
[12:06] Andrew Linden: when in fact it is failing for being part of the navmesh, or being an AI character that uses it
[12:06] Vincent Nacon: but rex, some error would stop script all together.
[12:06] Rex Cronon: u add a finally block...
[12:07] Vincent Nacon: unless it's a script that can pick up error from the same prim as other scripts are in
[12:07] Andrew Linden: anyway, that's the stuff I've beein fighting with, trying to clean up how the script error text is generated and making it more correct
[12:07] Andrew Linden: That's all the news I've got.
[12:08] Simon Linden: The release news is here: http://community.secondlife.com/t5/Second-Life-Server/Deploys-for-the-week-of-2012-04-09/m-p/1477509#M4948
[12:08] Flip Idlemind: What makes an object "included in the computation of the navmesh"? (In other words, will random people in a sim be able to stop me from moving my objects)
[12:08] Simon Linden: This morning the maintenance RC code was promoted to the main server regions
[12:09] Andrew Linden: Flip, you have to either: own the object, or have modify rights -- to be able to include/ignore the object for navmesh computation
[12:09] Simon Linden: The RC branches are going to get the same code as well
[12:10] Simon Linden: I _believe_ we're going to raise the fly height limit on some of the RC branches tomorrow as well
[12:10] Flip Idlemind: So the llGetAgentList maint-server wasn't ready then? T_T
[12:10] Simon Linden: Right Flip, that set of changes hasn't passed QA yet
[12:11] Simon Linden: We're aiming for next week, but it still has some work to be done before it's ready
[12:12] Andrew Linden: Ok, I guess the table is open.
[12:12] Slee Mayo: when will the script editor update the new functions as far as them turning red in the script? i keep thinking i didn't spell them right when they don't turn red
[12:12] Simon Linden: fwiw the information on the forum post earlier about the releases and ban heights doesn't look 100% accurate to me ... I'll check it out later, but I'm confused about the way those are explainded
[12:12] Vincent Nacon: would like to talk about pathfinding but I'll wait if someone got questions
[12:13] Andrew Linden: Slee, that work is in the pathfinding beta viewer
[12:13] Andrew Linden: so whenever that gets merged into the main codebase
[12:13] Kallista Destiny: Speaking of errors, Have you considered using the Unix concept of errno, where that are an (extensable) set of known lsl errors with an integer value, and an associated text? This would allow an error condition to happen whi an errno and perhaps an indication of linenumber.
[12:13] Quenemue Cyberstar: i just tried llCastRay today and that didnt turn red even.
[12:13] Andrew Linden: probably... less than a month (I"m guessing)
[12:14] Andrew Linden: Hrm... maybe I should try to submit a patch for the syntax highlighting.
[12:15] Andrew Linden: to the main codebase. I'll ask some of the viewer devs to see what they think.
[12:15] Slee Mayo: it's not a problem, i just keep thinking i'm not spelling it right and have to open wiki
[12:16] Quenemue Cyberstar: yeah not biggie. just visual nuisance :D
[12:16] Ima Mechanique: there's more than one viewer dev? :-)
[12:16] Andrew Linden: Kallista, I have thought about an integer error number for the "popups" we send to the viewer. It would be nice to get something like that in place.
[12:16] Vincent Nacon: yeah
[12:17] Andrew Linden: Kelly, have we considered using integer error values for LSL errors?
[12:17] Andrew Linden: Hrm... I thought Kelly was here.
[12:17] Kallista Destiny: He was
[12:17] Flip Idlemind: His body is here
[12:17] Vincent Nacon: and still there
[12:17] Ima Mechanique: his avatar is, difficult to miss it
[12:17] Simon Linden: He's AFK
[12:18] Vincent Nacon: silly bling-tard :)
[12:18] Imaze Rhiano: ya.. she avatar is tonight blingy
[12:18] Simon Linden: I don't think we've considered an overhaul for LSL errors like that
[12:18] Kallista Destiny: #nclude <lslerrno.h>
[12:18] Andrew Linden: Ah I see him. I didn't recognize his avatar.
[12:18] Simon Linden: It usually falls into that "changes to language design are really hard" category
[12:18] Rex Cronon: the problem is that if your script generates an error, it can't hear it on the error channel
[12:19] Kallista Destiny: well hopefully you have a set of know errors, that could be enumerated.
[12:19] Imaze Rhiano: I like more about Rex's idea about error event - it is following more LSL "spirit"
[12:20] Kallista Destiny: with that as a starting base almost anything could be donw, The problem is that scripts donlt have a way of detecting errors.
[12:20] Simon Linden: Right, I can imagine a growing set of pre-defined errors that would give better information about what went wrong
[12:20] Kallista Destiny: and THAT could be fed into the error event
[12:21] Rex Cronon: besides with an error event there would be no bacward compatibility problems
[12:21] Simon Linden: Yes, it seems like that's really the basic problem - scripts could use better error handling and information about failures
[12:21] Kelly Linden: Sorry Andrew. We haven't really discussed integers for error values in a general sense for LSL errors.
[12:21] Ima Mechanique: I'm not sure how an error event would be useful, it's not like an exception where it would be triggered instantly on a problem. Like any other event it would have to wait its turn
[12:22] Kallista Destiny: although it becomes difficult to communicate, where the error came from.
[12:22] Rex Cronon: an temp solution might be to allow a script to hear itself on the error channel
[12:22] Kelly Linden: The problem with errors in LSL is the inability to interrupt a script besides flat out stopping it, and the corresponding in ability to recover or resume.
[12:22] Andrew Linden: right, the error event is handled, but only after the script gets around to it
[12:23] Flip Idlemind: And if, after the error, the script is capable of getting around to it
[12:23] Rex Cronon: using try and catch?
[12:23] Andrew Linden: however, I don't think we've got line:column number info available
[12:23] Kelly Linden: So most error handling differs by function and is related to how the function works - something that triggers an event can pass an error code to that event, things that return directly should if possible have a defined error return.
[12:23] Ima Mechanique: this is something C# would have solved to some extent
[12:23] Kelly Linden: But it has to match type which makes things difficult.
[12:24] Kallista Destiny: having a Ready-for-error (integer) call would be helful to the script to know where the error came from. error( integer Where, integer errno);
[12:24] Kallista Destiny: { }
[12:24] Kelly Linden: the problem with error events is that they can't interrupt the current event
[12:24] Imaze Rhiano: Ima ... ya.... C# would have solved lot's of problems... * SNIFF *
[12:24] Kelly Linden: which leads to really unintuitive and plain bad behavior
[12:25] Kelly Linden: the event currently being processed would continue to run and finish despite an error having occured.
[12:25] Kelly Linden: It would be possible to make error events take precedence and always fire 'next' but that doesn't get around the above.
[12:26] Kallista Destiny: can't pop up to the error and then back down?
[12:26] Flip Idlemind: I like the try, except idea...but I bet there's some reason why it won't work?
[12:27] Kelly Linden: I'm not confident in the LSO runtime to be able to handle try/except safely
[12:27] Kelly Linden: no kallista - that just isn't how LSL works and would require a massive rewriting of the core script system
[12:28] Ima Mechanique: hehe stop developing for the LSO runtime ;-) freeze it and only do new stuff in Mono
[12:28] Kallista Destiny: OK... <snaps fingers>
[12:28] Simon Linden: Sounds good to me :)
[12:28] Andrew Linden: so we're back to: "If only we could stop supporting the LSO"
[12:28] Kelly Linden: Even only in Mono it is a significant amount of work.
[12:28] Ima Mechanique: freeze both and finsih the C# :-D
[12:29] Kelly Linden: And would require a lot of re-writing the core script system, since most of this scheduling happens in the C++ simulator code.
[12:29] Qie Niangao: Yeah, I was gonna say: It's no gimme... I'm not sure this is really worth the overhead, let alone the dev time.
[12:29] Vincent Nacon: don't think it is
[12:29] Kallista Destiny: Clearly it's not a Gimme, perhaps just a consideration for C# if and when.
[12:29] Vincent Nacon: ....untill LL is running dangerously low on income source.. ;)
[12:29] Flip Idlemind: The solution to all these problems is simple, all you need is infinite time and resources
[12:30] Flip Idlemind: ...Work on getting that!
[12:30] Ima Mechanique: lol
[12:30] Qie Niangao: where resources includes sim memory for scripts.
[12:30] Meeter: Timecheck : User Group is half over
[12:32] Quenemue Cyberstar: hmm.. everyone went quiet :O.
[12:32] Andrew Linden: Anybody have a topic?
[12:32] Vincent Nacon: well ok, I got one for pathfinding
[12:32] Andrew Linden: I was meditating about infinite resources.
[12:32] Kallista Destiny: we're thinking, canlt you smell the smoke?
[12:32] Imaze Rhiano: megaprims, border crossing, umm....
[12:33] Flip Idlemind: I was told by someone that SVC-7743 would be a lot of work. And, while I don't doubt them, I'm curious, would it be a lot of work?
[12:33] JIRA-helper: http://jira.secondlife.com/browse/SVC-7743
[#SVC-7743] Better Administrative Control over who can Speak on Voice
[12:33] Simon Linden: sit targets on AVs?
[12:33] Vincent Nacon: before making a JIRA request... is it possible to have mixed goals or even more than one?
[12:34] Andrew Linden: I seem to recall saying that the biggest part of better voice controls would probably be the viewer UI
[12:34] Rex Cronon: that would affect only what u hear
[12:34] Flip Idlemind: Would it be super difficult to actually get it to work, Vivox-wise?
[12:35] Andrew Linden: No, I don't think so. Vivox provides a decent control interface.
[12:35] Rex Cronon: it would very useful for an administrator to control who can speak during a concert/conference
[12:35] Qie Niangao: maybe screw the viewer UI and make a script interface instead.
[12:36] Vincent Nacon: Andrew: before making a JIRA request... is it possible to have mixed goals or even more than one?
[12:36] Vincent Nacon: for pathfinding, sorry
[12:36] Andrew Linden: ? mixed goals? Oh...
[12:37] Andrew Linden: no, the AI characters can only have one goal at a time
[12:37] Flip Idlemind: I'm thinking it could work similar to the Avatar Sounds feature, where you can disable voice for everyone but group members (speaking only, I would still want everyone to hear)
[12:37] Andrew Linden: but they can follow a set of target points in succession
[12:37] Rex Cronon: u mean something like: if u can't go to this avatar go to the next?
[12:37] Vincent Nacon: that's not good
[12:37] Flip Idlemind: Speaking of, I have another open JIRA about that: SVC-7790
[12:37] JIRA-helper: http://jira.secondlife.com/browse/SVC-7790
[#SVC-7790] "Avatar Sounds" feature fails to disable all scripted sounds
[12:37] Andrew Linden: or your LSL script can update the AI character's destination
[12:38] Ima Mechanique: can you evade one agent while chasing another?
[12:38] Vincent Nacon: I mean what about event when one is chasing A while trying to avoid B
[12:38] Andrew Linden: No, only one behavior at a time, so either it would chase one avatar, or flee another
[12:38] Simon Linden: That one is on our list to look at, Flip
[12:38] Vincent Nacon: then its "AI" if you will, gonna appear dumb
[12:38] Flip Idlemind: Coolio
[12:38] Vincent Nacon: or blind in one goals
[12:38] Andrew Linden: evade is more general, I think, in that it can evade any nearby avatar? not sure
[12:39] Vincent Nacon: while chasing other?
[12:39] Andrew Linden: No, the AI can't chase and evade at the same time
[12:40] Vincent Nacon: there goes so many list of games out the window
[12:40] Object: Hello, Avatar!
[12:40] Andrew Linden: the character "behaviors" rely fundamentally on some C++ code that provides the "details"
[12:41] Rex Cronon: can't u add another script that looks for a specific key and if close to it resets the pathfinding script?
[12:41] Andrew Linden: so for simultaneous "chase A and evadeB" or "chase A and avoid everyone else", new fresh C++ code would have to be written
[12:41] Vincent Nacon: well I was gonna suggest make them stackable
[12:41] Andrew Linden: also, I think we're relying mostly on some existing Havok behaviors, or slightly modified ones
[12:42] Nalates Urriah: Are we going to be able to adjust X & Y Rotation?
[12:42] Vincent Nacon: with a integer return value on each call to cancel later on
[12:42] Andrew Linden: something new and fancy would require some derived C++ classes with some overrides and custom data
[12:42] Vincent Nacon: yeah
[12:43] Andrew Linden: You can already tweak the character's rotation a little bit...
[12:43] Andrew Linden: there is a notion of a "horizontal" character
[12:44] Andrew Linden: which basically collides like a capsule (cylinder with hemisphers on the end) rotated so that its symmetrical axis is more or less along the X-axis (forward)
[12:44] Nalates Urriah: ? Is that recent? Oh... no, I wanted to be able ti tlt forward on start and bank in turns
[12:44] Andrew Linden: a horizontal character can pitch up and down
[12:44] Andrew Linden: but can't "roll"
[12:44] Nalates Urriah: I'll try htat
[12:45] Andrew Linden: so, it can climb a hill or descend stairs
[12:45] Andrew Linden: but you might get odd behavior at single steps, and along narrow paths
[12:45] Andrew Linden: if you make the horizontal character too long
[12:46] Andrew Linden: If you want to make AI characters that are less likely to accidentally get stuck at a tricky spot in the navmesh, avoid using horizontal characters
[12:47] Andrew Linden: also, horizontal characters are slightly more expensive (in CPU cycles) than vertical characters
[12:47] Nalates Urriah: Basically, we have no control over the X&Y rotation?
[12:47] Andrew Linden: so if your region is happy with 50 or more vertical characters running around, it might run slower if they were all big horizontal creatures
[12:48] Nalates Urriah: Other than Hor or Vert char
[12:48] Andrew Linden: right, the vertical AI character only rotates about the vertical axis (Z-axis)
[12:49] Nalates Urriah: Any chance that will chage?
[12:49] Andrew Linden: and the horizontal one rotates first about the Z-axis, and then tries to compute the best pitch (rotation about local Y-axis)
[12:49] Andrew Linden: and then it moves up or down if its nose or tail is penetrating an object
[12:49] Andrew Linden: probably not Nalates, at least not for a long while
[12:50] Andrew Linden: the horizontal character is already a little sketchy
[12:50] Vincent Nacon: Andrew, do you think it's possible to have pathfinding event return a list of "waypoint" position once it made a path before it move to the target?
[12:51] Andrew Linden: Vincent, yes probably.
[12:51] Vincent Nacon: so scripter could intercept the waypoint to tune in some details
[12:51] Andrew Linden: I believe the character knows all the waypoints at any one time (in memory somewhere)
[12:51] Andrew Linden: but those points can change
[12:52] Vincent Nacon: yeah
[12:52] Andrew Linden: should an obstacle show up
[12:52] Rex Cronon: u can add an lsl event that updates each time the waypoint lis updates?
[12:52] Vincent Nacon: but something like it could at least try avoiding some position while it made a new goal to chase one
[12:52] Andrew Linden: that is, an obstacle that actually cuts the navmesh (a static object, like a wall)
[12:54] Andrew Linden: Dunno about that LSL event idea Rex. Falcon might have a better idea of how hard it would be to make something like that.
[12:55] Vincent Nacon: btw, excuse me for asking but how's the progress with deformer mesh coming along? I missed the mesh meeting yestorday
[12:55] Rex Cronon: or something else that lets the script know the waypoints list changed
[12:55] Meeter: Timecheck : User Group is almost over
[12:55] Simon Linden: I haven't heard anything recently about that, Vincent
[12:55] Ima Mechanique: were there any meetings yesterday?
[12:55] Ima Mechanique: thought it was a holiday
[12:55] Vincent Nacon: or guess not then
[12:56] Imaze Rhiano: there was nyx's 0h
[12:56] Ima Mechanique: damn, missed that then ;-)
[12:56] Slee Mayo: kelly had oh
[12:56] Rex Cronon: the mesh oh?
[12:56] Slee Mayo: oh, nm
[12:56] Quenemue Cyberstar: i have one question.. Is there any plans for normal mapping and other shading features in near future?
[12:56] Vincent Nacon: yeah my bad, not mesh meeting, Nxy's
[12:56] Ashiri Sands: Just wondering if anyone has had issues with search not working in the last day?
[12:57] Vincent Nacon: you should ask Nyx about that
[12:57] Quenemue Cyberstar: okey
[12:57] Andrew Linden: Quenemue, yeah that is a good question for Nyx
[12:57] Vincent Nacon: maybe we need a large developer meeting that happen once a month?
[12:57] Vincent Nacon: so we all could get it on same page
[12:57] Ima Mechanique: Andrew, are there any updates planned for the pathfinding viewer?
[12:58] Andrew Linden: Ima, yeah we're still working on that viewer.
[12:58] Ima Mechanique: hmm would an updated tooltips file for strings.xml be any help?
[12:59] Andrew Linden: Ima, sure go ahead and send it my way.
[12:59] Ima Mechanique: I finished editing it over the weekend, added some tips that were empty and did a lot of typo fixes
[12:59] Andrew Linden: I tried to use some of your copy but I found some of the text too long and verbose
[12:59] Ima Mechanique: okay, I'll knock up a xslt later and pipe it over
[12:59] Andrew Linden: and I didn't have time to rewrite
[12:59] Andrew Linden: I ended up at least getting my own copy in place (in the Pathfinding viewer)
[12:59] Ima Mechanique: I'll use XSLT to puit it in strings.xml format
[13:00] Meeter: Thank you for coming to the Server User Group
[13:00] Andrew Linden: I'm looking for very brief (80-character or so) summaries for the various CONSTANTS in LSL
[13:01] Ima Mechanique: I have some of those done
[13:01] Ima Mechanique: I've been working at them slowly
[13:01] Andrew Linden: Cool. Yeah, send me an update and I'll try to make an update pass on what is in that viewer.
[13:02] Ima Mechanique: but there are a LOT
[13:02] Andrew Linden: Yeah
[13:02] Andrew Linden: I'm focusing on those that don't have ANY info right now
[13:02] Andrew Linden: in particular, the constants that had to be added
[13:03] Rex Cronon: there seem to be 424 constants
[13:03] Ima Mechanique: well I have almost all of them set up with type and value info, only a description is missing for the majority
[13:03] Andrew Linden: should type and value be included in the hover tooltip?
[13:04] Andrew Linden: or should it just be a very short description?
[13:04] Ima Mechanique: I do have a couple entries that I'm unsure of. I think they're bogus constants, but am not sure if they were proposed and discarded or just someones fancy
[13:04] Andrew Linden: That question for the scriptors here who actually use the viewer
[13:04] Rex Cronon: i had to compile a list of all of them, with their name and value, but i have no short description for them
[13:04] Draconis Neurocam: its historically just been a description, and the types of values it takes and returns if it is a function
[13:04] Andrew Linden: viewer's hover tooltip when scripting
[13:04] Ima Mechanique: Andrew, not sure, but there are other uses for the type/value info
[13:04] Ima Mechanique: lslint for example
[13:05] Ashiri Sands: use the viewer to write the script? only short ones.
[13:05] Ima Mechanique: I'll be creating an XSLT to take the file and create a syntax file suitable for lslint
[13:05] Andrew Linden: Yeah, I was focusing on the tooltip for now, since that is already displayed in the official viewer
[13:05] Andrew Linden: however, it sure would be nice to have the viewer read a more detailed file
[13:06] Rex Cronon: btw. is the exact nr of constants 424?
[13:06] Andrew Linden: because, to tell the truth, it wouldn't be very hard to expose a syntax file on the server side for download, once we had such a file to serve
[13:06] Qie Niangao: I think usually the type of a constant is knowable from where it is being used (usually an arg to a function).
[13:06] Ima Mechanique: well the file format is pretty much done now, I made a couple small changes recently. No I can start looking at coding
[13:07] Andrew Linden: and Ima, I would expect that your LSLEditor format would be fine to support for the viewer (the server won't care)
[13:07] Andrew Linden: That is, it looked much more complete and informative than what we've currently got
[13:08] Ima Mechanique: hmm, not sure about that. I've worked out the LLSD format now, may as well use it ;-)
[13:08] Ima Mechanique: It certainly contains more info, but partly that's to sup[poert OSL as well as LSL
[13:08] Andrew Linden: but the viewer would have to be equipped to be able to read the various fields and display them
[13:08] Andrew Linden: ah
[13:08] Ima Mechanique: or just discard them ;-)
[13:09] Ima Mechanique: I'll send you a copy of the LLSD version for you to look at
[13:09] Andrew Linden: Thanks
[13:09] Simon Linden: Thanks everyone for coming today
[13:09] Andrew Linden: Yup.
[13:09] Vincent Nacon: thanks for coming out
[13:09] Ima Mechanique: thanks for having us ;-)
[13:09] Simon Linden: See you next time
[13:09] Imaze Rhiano: thanks
[13:10] Yuzuru Jewell: Thank you. See you next week.
[13:10] Nalates Urriah: Thx
[13:10] Vincent Nacon snaps his finger like man with too much power....
Simulator_User_Group
Prev 2012.04.06	Next 2012.04.13