Nov 02

Scripting in MMOs: The best/worst tool you’ll n/ever have

There’s an interesting debate going around about designers and scripting.

Those who are good at it like it. People who have cleaned up after those who are bad at it try to keep it out of their projects at all costs.

In other breaking news, the sky is blue, pie is tasty, and the cake is a lie.

For those who want additional context, allow me to take a crack at a definition.

(tr.v.) Scripting:

1. non-programmers writing programs in substandard programming environments

1a. …leading to debugging said programs with tools that would have sucked in the early 1980’s

2. an amazingly powerful and useful prototyping and development tool when wielded in the right hands

3. a painful and frustrating experience for all parties, not entirely unlike having intimate relations with a capascin-coated cheese grater when the wrong hands are forced to wield it

4. a terrible idea that can destroy the future of entire projects by making them infinitely less maintainable and extendable

5. the performance killer that you wish you never met

6. a fantastic idea that can make the difference between getting the project done right and not getting it done at all

7. a tool that people ask for when they don’t know what tools they need to complete a given job

7b. …or aren’t yet sure what the job is in the first place, but are positive they’ll need to be able to do everything

8. a great way of helping your staff grow into becoming better, more creative, more expressive developers

Pick as many as you like. They can all been true. Sometimes even on the same project.

Those results above are a small sample of permutations of answers to the following questions:

1) What project objective(s) are you using it for?

2) Who’s using it?

3) Do they need to use it, or do they have alternatives?

4) Which language is it?

5) In what ways can that language interact with your particular system?

There are far too many dimensions of “Scripting” for it to boil down into a simple good vs. bad argument. I’m busy as hell at work this week, but I’ll try to argue some of them tomorrow, and probably end up disagreeing with myself in the process.

9 Comments so far »


    Designer Scripting (from Jeff Freeman) said

    November 3 2007 @ 7:09 am

    […] some of the popular rationales used to justify positions for and against designer scripting, along with the actual reason for each: Those who are good at it like it. People who have cleaned up after those who are bad at it try to […]


    Joe Ludwig said

    November 3 2007 @ 8:21 am

    Interestingly enough, I haven’t seen a single post or comment that decries scripting for def’n 5 (Performance Killer). We had a performance problem with our use of Lua, but it was entirely that the garbage collector did a whole bunch of work all at once and skipped some frames to do it. If that work had been spread out so a little happened each frame it wouldn’t have been an issue. Runtime performance of scripts is really a non-issue with the super speedy computers we all have these days. (Remember when people talked about how much of the CPU should go to sound processing? Hah, those were the days!)


    Scott Hartsman said

    November 3 2007 @ 8:47 am

    I’d wager that’s largely because we don’t have a lot of MMO developers who feel free to talk about specifics of their projects, especially in ways that make them sound less than good. That’s still a relative rarity - We’re still all a young business. :)

    I’ve seen that one predominantly as an artifact of #3 and #5 - How much of it is there, and what can it do in your app?

    If the answers to those questions are “everywhere, there’s no alternative” and “it can do anything, since it runs the whole game,” even the uber CPUs of today are no match, for instance, for Java or Lua+GC with hundreds of running scripts, running main gameplay instead of exceptions, each chewing through megs and megs of RAM.


    Joe Ludwig’s Blog » Scripting for Designers said

    November 3 2007 @ 10:39 am

    […] started a kerfuffle on the subject of designers writing scripts. Since my original post was more about our experience with Lua than about scripting for […]


    Moorgard said

    November 7 2007 @ 2:31 pm

    I just want to send you a grats for your opening sentence made up of a bunch of links. This blogger standby is really a staple of clever posting, and it’s good to see you add it to your repertoire.

    Five is a good start, but you can’t *really* call yourself a pro blogger until you hit a run of seven. Don’t worry, you’ll get there someday.

    Keep on truckin’!


    Psychochild's Blog said

    November 7 2007 @ 4:03 pm

    The role of scripting for designers

    It seems like everyone got together and decided to have an interesting discussion right as I was out of town. The issue brought up by Joe Ludwig was: No designer scripting. ( This assertion crea…


    moo said

    November 7 2007 @ 4:55 pm

    Java can actually be very fast if you have the right VM to run it. Typical workloads will be within a factor of 2 of the performance of C++. There are also excellent IDEs available for it, such as Eclipse. If you need industrial-strength scripting (e.g. to run the backend servers of your MMORPG) then its definitely worth a look.


    Scott Hartsman - Off the Record » Catching Up said

    March 30 2008 @ 4:23 pm

    […] a topic that I hold near and dear, and thought it would make a good one for people to be able to explore a bit more in-depth in a […]


    Scripts Are Misunderstood at Kill Ten Rats said

    April 28 2008 @ 9:03 pm

    […] Hartsman’s roundtable at IMGDC was about scripts, stemming from a blog fight that I had missed. I summarize the consensus as, “Scripts are often implemented poorly. If […]

Comment RSS · TrackBack URI

Leave a comment

Name: (Required)

eMail: (Required)