Psychochild's Blog

A developer's musings on game development and writing.

1 December, 2004

Scripting languages
Filed under: — Psychochild @ 2:28 PM

Game development is tough work. Often it is useful to have a scripting language to make the work a bit easier. What should you look for in a scripting language? No, this is not going to be a religious rant.

I’m a software engineer by training. I have a degree in Computer Science and just under a decade of real experience now. I think religious arguments are stupid; one language is not always the best. Different tasks require different tools, and different languages are appropriate.

Meridian 59 uses a proprietary scripting language called “Blakod” developed by one of the original programmers, Chris Kirmse. It an object orientated language with C-like syntax, LISP-like lists, and uses message passing as the coding idiom. It’s actually a brilliant little language, very powerful and expressive. It’s worked very well over the past decade to allow the development of a dynamic game like M59 and ran on very modest machines by today’s standards. The original M59 servers were Pentium Pro 200 MHz machines with 128 MB of RAM and could host up to 200 simultaneous players in theory (more in practice as long as people weren’t too clumped together).

Things are different these days, however. There’s not much call for writing an entirely new scripting language. There are a number of languages out there that fit the bill just fine. Writing your own languages takes a lot of time and effort to get right, and it’s just not justified in these days of tremendous computing power. Especially when you’re talking about online RPGs, we rarely have to program down to the metal anymore. Server machines are so much more powerful today, it boggles the mind. You can’t even buy a processor that runs at “only” 200 MHz today.

As I said, each task requires a different tool that works well with the task. Choosing the wrong tool can make your job harder and send you over budget or behind schedule.

If I were to develop an online RPG these days, I would consider the task carefully. We have powerful machines, large teams, players that eat up content as fast as we can create it, and a lifespan measured in multiple years. This means we don’t have to run a super lean-and-mean language like Lua, we want something that a wide variety of people can use, we want something that is easy to develop in, and we want something that’s easily maintainable. Quite a tall order, hmm?

Again, a proprietary language written by a senior engineer is probably not a good idea. First, it takes time to develop a good language, more time than it takes to learn a new language for most people. Second, most programmers think like programmers, so they create complex scripting languages. What’s the goal of a scripting language? In online RPG development, it is usually to give non-programmers the ability to create content. A powerful but user-unfriendly language doesn’t accomplish this goal. You also have the issue of training. With a proprietary scripting language, you must write up your own training and information documents, but with an off-the-shelf solution there are usually plenty of well-written books and manuals to help. Finally, you have the issue of maintainability. If the original senior engineer leaves the project, he takes a lot of knowledge with him. Trying to pick up and extend a language years after the fact can be daunting (the voice of experience speaks!). With other languages, you have the possibility of outside expertise being able to lend assistance.

Personally, I think that Python fits the bill fairly well. It is a reasonably powerful language that is easy to learn and has a lot of support. The syntax enforces a specific coding style (this means less debates on silly trivia like bracket positioning, indenting guidelines, etc.) which is easy to read and easy to maintain. I’ve dabbled in Python a bit and found it to be really easy to use. Non-technical people I know have tried to use it with fairly cool results. It won’t make your programmers obsolete, but it will allow designers with some technical ability to write into the game themselves. And with variations such as Stackless Python (used in the online RPG EVE online), there’s a lot of possibilities. And, as you can see, the language has been tested in an online RPG environment. If I were to develop an online game, I would seriously consider using Python.

Remember: pick the appropriate tool for the task at hand. Python isn’t always the best choice. Sometimes you might want another language with a strength that Python does not have. Perhaps you need a faster language, or something that your technical team is more familiar with, or even something more powerful and expressive. There is no one right answer for every situation.


Next Post: »





2 Comments »

  1. Scripting languages are a long term investment. How long have you been using Blakod?

    There are some other questions which are commonly ignored. So you have a candidate language that does what you think you want today. Great. What about tomorrow’s version of the language? Will that future version also be as good a match to your needs as today’s version is to your current needs? This isn’t only a question of what your needs will be, but also of how the language will change and how its future behaviour will develop and where its focus will be. Is what’s important for you in the language similar to what’s important to the dev/maintenance crew for the language? Do you both want it to move in roughly similar directions? How much do you, will you, care?

    Comment by J C Lawrence — 2 December, 2004 @ 12:51 PM

  2. The role of scripting for designers

    [...] I fancy myself both a programmer and a designer, I have something to say about this! I wrote a post about scripting languages years ago on this blog. My core assertion was that for online RPGs, you want to give [...]

    Pingback by Psychochild’s Blog — 7 November, 2007 @ 5:02 PM

Leave a comment

I value your comment and think the discussions are the best part of this blog. However, there's this scourge called comment spam, so I choose to moderate comments rather than giving filthy spammers any advantage.

If this is your first comment, it will be held for moderation and therefore will not show up immediately. I will approve your comment when I can, usually within a day. Comments should eventually be approved if not spam. If your comment doesn't show up and it wasn't spam, send me an email as the spam catchers might have caught it by accident.

Line and paragraph breaks automatic, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Email Subscription

Get posts by email:


Recent Comments

Categories

Search the Blog

Calendar

April 2019
S M T W T F S
« Nov    
 123456
78910111213
14151617181920
21222324252627
282930  

Meta

Archives

Standard Disclaimer

I speak only for myself, not for any company.

My Book





Information

Around the Internet

Game and Online Developers

Game News Sites

Game Ranters and Discussion

Help for Businesses

Other Fun Stuff

Quiet (aka Dead) Sites

Posts Copyright Brian Green, aka Psychochild. Comments belong to their authors.

Support me and my work on