View Single Post
Old 04-20-2008, 10:51 PM   #39
shadowfyr
Senior Member
 
Join Date: Oct 2002
Posts: 310
shadowfyr will become famous soon enough
Re: Are MUDs the clog dancing of online gaming?

Mushclient goes a bit past that. If you use something other than Lua, you have a selection of like 7 ActiveScript based languages, from VB to Ruby, and even JScript (ugh!). Its recommended though that if you are going to use "on demand" calls to script that is generated partly, or completely, by a trigger, etc., you avoid those and go with Lua. No memory leaks that way. While there is a "main" file you can use, its recommended only for testing. When you get it working, the recommendation is to move all triggers, timers, aliases and code need to a plugin. While means exist to look for, look at variables in, and do some other things between the main script and plugins, or between the plugins themselves, they are *all* sandboxed from each other. Unless you code them so they can communicate, only things like the order their triggers fire, and if certain things like omitting the line from output, will cause interference between them. In other words, stuff that you can't avoid having interfere, if you allow them at all. And then, you can even, when using Lua, sandbox the Lua implementation on your own machine, either to remove restrictions for IO, like disk access, or to add functions, common code, enable features, etc.

Client is kept from serious interference, to a fair extent, from the script, the scripts can't interfere with each other, for the most part. And, once you have stuff in a plugin, anyone with the same client version or higher can simply drop a copy of that plugin into their's and have it work, without needing to code for something like zMud's plugin interface, which, unless I am mistaken, requires a compiler to do anything with it.

It could probably be useful to add a "few" additional restrictions to what plugins can change in the main world/client, since that isn't as clearly sandboxed, and prevent unloading of other people's plugins, etc. But, this wasn't considered at the time to be a big issue, and it wouldn't be that hard, probably, to add in some requirement that the client go, "Plugin 'Myprompt', ID: ... is attempting to change the ansi color settings. Allow or deny this?", and the like, when ever it tries to make such a change and you set a security level (also not in the client) to tell it, "Ask before letting a plugin change the world file itself."

Oh, and versions are "not" overblown. Tell that to the people running "complex" applications that do a lot of memory shifting and the like, like Azureus. It is pretty "stable" at this version of both the client and the Java its running it. Not *that* long ago there where bugs in Java that caused serious problems with certain parts of the client's operations. There where also some in the client itself, but it wasn't at all one sided.
shadowfyr is offline   Reply With Quote