Scripting Languages

by Unknown

Back to Mechanic's Corner.

Unknown2006-10-20 20:30:16
First, introductions: I'm Swoish, the insane incarnation of Swoishensu. I'm relatively new to Lusternia. I first entered the Basin a few weeks ago.

Ok, enough roleplaying. I'm building my own client for Lusternia from scratch. I like to keep myself fresh code-wise, so I occupy myself with new projects and new challenges. I first wanted to build my own auto-mapper, but it's exploded into a full-fledged MUD client. Currently, my Lusternia Client is at the same level of functionality as the Nexus client. It handles ATCP negotiations (and room/stat info), has multiple helper windows in an MDI space, and I'm working on chat filters right now, will have it done by tonight I hope.

It does not support scripting. I have no experience with MUD scripting, so I don't even know where to begin with writing script support. I've read some tutorials on zMUD scripting, but I need some experienced opinions. So I come to you. Prepare for a load of questions:

Is the zMUD scripting style the only format? Do other clients use different styles? What are your opinions on scripting languages (useful features, things that frustrate you)? Would you recommend any improvements? Are there any sources of information you could point me to? What about example scripts, from simple to sophisticated?

Also, if anyone knows: Does the old, free version of zMUD use the same script engine as the newer version? Are there any free clients out there I can test my script engine against?

I'm not looking for source code or modules, as I'd rather code it myself. I don't expect anyone to have all the answers, I'm just begging for table scraps at the moment. I apologize if I've overstepped any bounds or been in any way disrespectful to the boards.


If anyone wants to critique my client, I'll try and post the executable somewhere, but only if someone asks. Maybe I'll make a post about it when I've made more progress.
Tiran2006-10-20 20:52:58
zMUD scripting was done by Zugg especially for the MUD client, and has probably evolved a fair bit since the time that the free client was made. Since it's a popular client, it's probably the most used language by players on Lusternia, and from the little I understand of it, it seems like the Nexus script is modeled after it.

The other major client out there is MUSHclient, which provides a library of functions, and then has integrated several other languages into it to use this library, such as VBscript, Lua, and a few others. I like this approach better, because if you already know one of the supported languages, you don't need to learn a new scripting language to use it. Also, it gives you the opportunity to use different languages for different things, as appropriate. It's probably about as hard to implement this kind of behaviour as to design a scripting language, or duplicate the functionality of one.

Most people find it difficult enough to code a combat system, never mind creating an entire client. Good luck with it though.
Unknown2006-10-20 21:02:12
zMUD scripting is definitely popular. The syntax originated from Tintin++, which was pretty much the only thing available to MUDders back then. Very few people take advantage of the capabilities zMUD has for integrating other languages, however, because it's not the greatest design. When your client is not designed with WSH in mind, it's hard to shoehorn it in later and make it work well.

Personally, I'd love to see a client that integrates the .NET framework and allows plugins in any .NET-capable language. (For anyone who doesn't like Microsoft, try Mono instead, good for cross-platform development.)
Unknown2006-10-20 21:47:45
I'm building in .NET, and I was considering WSH. I can't believe I forgot about support for multiple script engines. That would be a good starting point for building my own engine. Plus, I could use PerlScript as a springboard. I'm purposefully designing with a very flexible client model, but hopefully I'll be able to integrate a WSH environment.

I love tough challenges, they keep my programs from stagnating.
Verithrax2006-10-21 21:05:58
If you must use .NET, please use Mono instead, since it lets your application be cross-platform.

And since you're using .NET, you might as well use C# as your scripting language.