Yup, that’s right, I said it : The Mono rollout blows goats.
The plan, as given by Linden Lab™, was that existing scripts would not need to be recompiled to Mono, and could continue to run as they always have :
Unless scripts are explicitly converted to run on Mono they will continue to run on the existing scripting engine. There is no automated conversion to Mono and all existing scripted content will continue to run on the original scripting engine as before.
That is a greatgood plan, and if it had worked as intended I would have had no problems with it. The problem is, of course, that it doesn’t work. Epic Fail.
Anyone who has tried to duel since the Mono server rollout knows what I’m talking about : The swords can take upwards of 5 seconds to switch state from block to attack or vice versa. Apparently the "run on the original scripting engine" part was left behind in favor of a "run on a (mostly) compatible scripting engine" philosophy.
While trying to come up with an interim fix, I tried compiling the C:SI scripts already in the Taketori to Mono, with mixed results. Some scripts *still* don’t compile (and why the hell would they roll out Mono when everything still doesn’t compile?!?!??!), though most of the ones I tried did compile. The difference was noticeable, so I gave a few Mono-compiled betas out to get some feedback.
From what I can gather by that feedback, I’m not going to get away with such a quick and easy workaround : The scripts still have a very noticeable delay when switching states, and do not perform at all as well as the original scripts used to.
To say I’m upset and discouraged would be an understatement. In fact, a good way to demonstrate how irritated I am without a long litany of curse words is just to quote one of Judo’s comments (emphasis added) :
So I am curious, what is the game plan now given that C:SI is effectively broken? Are the developers going to work on mono, and will we have to wait until the scripts have been rewritten for mono to fight again, and if so, any estimate of how long that might take? Or will there be any attempt to deal with the block latency problem using the existing script? Without C:SI, SL is a bust for me!
Thanks
Yeah.
I’ll re-iterate that Archanox is working on the long-term solution of refactoring the scripts into a real working system under Mono, though of course there’s just now way of knowing how long that can take. I wouldn’t make any bets on it being in the immediate future, though.
Until then, I guess we can somehow try to let Linden Lab™ know of the problem and how it affects close to twenty thousand people in-world, but given their very poor history of responding to such issues and the ever-dwindling avenues of communication I can’t promise that would be any quicker. Maybe all of us together can make enough noise to be heard, who knows?
I will work on trying to figure out how to either beat the existing scripts into some semblance of a workaround, or see what options might be available to get everything working as well as possible.
We will do our best to get this issue resolved as quickly as possible, and we will keep you all informed as we go.
In the meantime, I have suspended sales of the Taketori, as I don’t expect that I’ll have enough time to respond to the anticipated customer messages about buying a broken product
[UPDATE]
This comment was left on the "What in the world is wrong with Second Life" post :
Babbage Linden said:
The only issue I know if which affects scripts running on the original scripting engine in 1.24.3 is that state changes are incorrectly restricted to 1 per frame. We have a fix for this issue which will be likely rolled out next week. If the problem is due to something else, please file a bug on the public JIRA here https://jira.secondlife.com/browse/SVC-1276
Babbage Linden’s latest blog post is : Mono Launch
I’ve been working on a workaround, and I think I have found out something interesting about the cause. I have several beta testers trying out some changes, and I’m working on creating a repro case for Linden Lab that focuses on just the problem at hand so that I can provide them with as much relevant information as possible.
Thank you, Babbage Linden, for taking time to brave these hostile waters and leaving a comment. It is much appreciated!!!
18 Comments
Wow. Would you believe this? I just went through seven pages of comments on the SL forums, and… Nobody else is reporting problems like this.
WTF?
I’m currently still digging around and tweaking code to try to come up with a workaround, so bear with me please. I’m trying my best!
The big question I have, and this is not a complaint, is why did Edo Kitamachi not get upgraded? You can still spar there..at least so far. They just had a tournament. One of my students fought in it. If this is possible can’t they roll back a few more CSI sims?
Heisei and Dragon Claw at least?
How do we get them to do this if it’s possible?
Thanks! I appreciate your efforts.
WTFudge Brown Diaper Dropping Pooper Putty?! C:SI foreva baby! lol Well it always makes me happies to know at least you guys are doing your part to fix things that LL have F’ed up yet once again. *Huggies* XD
Utayo is a dev? *Scooby-Errr?*
lol. Not me.
I did start a thread over on the LL forums though. Please go over and leave a nasty message for them.
http://forums.secondlife.com/showthread.php?p=2129535#post2129535
I wasn’t aware that there were still regions that were unaffected by this problem. I know that my vendors got returned from EDO KITAMACHI today, though.
Chances are slim to nonexistent to get LL to roll back any sims. I’ve never heard of them relenting before, despite many empassioned pleas.
I would say, if there are still some sims unaffected, that is GREAT! At least people have somewhere they can go, though I do wish there were more regions available.
I did some tests and it looks like the state_exit() event is causing all the trouble. Every state thats using this event gets this horrible delay. The more code you have there the bigger the delay. Guess thats why different swords seems to have different delays.
Even a empty state_exit() seems to cause some delay.
I moved all code from state_exit() to state_entry()’s of other events and things worked fine again (although thats leading to ugly code since this can break some existing logic *sigh).
Mono-Scripts seem to have the same problem, but not as extremely as old LSL scripts. If a mono script has this state_exit() delay depends on the quality of the server. While class5 server seem to work fine, void sims lead to a noticeably delay too.
Guess thats why no one noticed this crap. i doubt state_exit()’s are used that often in most of the scripts out there, and even if they are used, you only have a delay which is actually only noticeably in a real-time application.
At least these are my obvervations. Maybe i’m completely wrong
Please see the update to this point about Babbage Linden’s comment.
We use state_exit() extensively in C:SI scripts…
Hmm….
This would probably make for some incredibly ugly code, but couldn’t this be fixed by using one script state, and “emulating” a state by using a variable to keep track of what state you want to be in, then in each of the event handlers use if statements to execute the correct code based on the state variable? For example (I hope I can use code tags):
state foo { some_event() { //code } } state bar { some_event() { //code } }would become
integer state = 0; default { some_event() { if (state == 0) { //foo code } else if (state == 1) { //bar code } } }Colin, it could, but as you’ve already illustrated with only a very small example, it causes increased code to track states. In the old LSL runtime, we were already hard up against the memory limits, which is why there are so many scripts.
With Mono’s more relaxed memory limits, we can indeed do that, and that’s fairly descriptive of what I’ve done to create the Mono BETA that’s currently being tested by a few people.
I’ll throw you one as well.
Dont any of the Lindens owne a CSI sword? hehe, Seriously im glad Robby and the rest of the developers are working the hardware side of this issue. The rest of us ought to make some noise!
Julianna, I know of at least three that do own them. I doubt any of them actually uses them, though.
In fact, true story : I found out about C:SI because of an article that Torley Linden posted, called “Samurai Pizza Cats” or something.
But I’m sure they are quite busy and don’t have a lot of time for fighting, haha.
Mabie we should all send Torley our complaints? if only 5k of 19k fighters do it….. hahaha
Any chance of me getting a BETA?
Pretty please
Yes, Utayo… After my nap, I’m beat
Just got an encouraging message from Escort DeFarge :
Everyone go vote!!!
One Trackback
[...] About « Mono is teh suxxors [...]