Too Many Choices!

Started by
6 comments, last by staigerman 18 years, 6 months ago
Ok, I am about ready to have a stroke... (that would stink at 26, I shouldn't kid) I have been a scouring the web looking at scripting engines the last few days and I am going absolutely mad. I have boiled it down to 4: Squirrel, GameMonkey, AngelScript, Lua (or maybe LuaPlus). I have thrown out python, it is just too big for me and I am looking for a little more lightweight scripting environment. Squirrel is one of the more interesting looking languages to me, it seems to support a lot features, but it looks like it lacks the ability to byte-code compile a script ahead of runtime. How big of an issue is this? Lua is really in the list because it seems like a lot of people use it, I don't know why though. Now I know you can't tell me which language I should use... but could you tell me some of the benfits and problems with these 4 languages? If you could that would great, thanks.
Advertisement
Well Lua is very nice to integrate with a C or C++ program though I would recommend using LuBind or LuaPlus (my personal choice, mainly for the debugging tools for visual studio).

To be honest Im not sure on the exact advantages and disadvatages of each language but I do know that Bioware and Blizzard have used lua for scripting and the new Civ uses Python. Pretty good endorsements for both Id say.
You will never really know how a fruit tastes from someone else's description; you need to take a bite yourself. At this point you should probably just pick something, anything, try integrating it and see how it works for you. Then either work with that for a while, or try something else.
Quote:Original post by swinchen
Squirrel is one of the more interesting looking languages to me, it seems to support a lot features, but it looks like it lacks the ability to byte-code compile a script ahead of runtime. How big of an issue is this?


It's not an issue: Squirrel compiles to bytecode. You can even pre-compile the scripts and save them to disk (then load the precompiled script at runtime).

Quote:Original post by swinchen
Lua is really in the list because it seems like a lot of people use it, I don't know why though.


Lua was one of the first extremely lightweight scripting language with enough power for use in games. Lua's table system gives it a great deal of power and flexibility. If you are developing on Win32, LuaPlus is excellent.

Squirrel uses Lua's table code, and improves on Lua for use in game applications (reference counting, straightforward C/C++ class integration, script-based class support). See the sqPlus example for a fast-to-implement, simple examples of how to integrate C/C++ with Squirrel.
SiCrane makes a good point. Write some small things in each of the languages and see what you like. btw who is the target user? is it you, experienced programmers, unexperienced programmers, designers? That should influence what language you pick.

You can start by splitting the languages up in two camps. AngelScript and GameMonkey use static typing whereas Lua and Squirrel use dynamic typing. Which is best is arguable (google), but IMHO dynamic typing is more fitting for an embedded language, especially if we are going to have people with little programming experience write scripts. AngelScript and GM also seem to have fairly C-like syntax. Good for experienced C programmers, bad for everybody else.

A big + for lua is the amount of libraries, documentation, people to ask etc since it is the most popular of the mentioned languages.

I hadn't seen Squirrel before, but it looks very interresting (even though it has inherited my pet hate from Lua - defaulting to global variables). Has anyone done any performance test comparing it to Lua?
Alright, thanks for all the help. After doing some research, I think I will give Squirrel the first serious try.
Quote:Original post by rollo...
You can start by splitting the languages up in two camps. AngelScript and GameMonkey use static typing whereas Lua and Squirrel use dynamic typing. Which is best is arguable (google), but IMHO dynamic typing is more fitting for an embedded language, especially if we are going to have people with little programming experience write scripts. AngelScript and GM also seem to have fairly C-like syntax. Good for experienced C programmers, bad for everybody else.

A big + for lua is the amount of libraries, documentation, people to ask etc since it is the most popular of the mentioned languages.

I hadn't seen Squirrel before, but it looks very interresting (even though it has inherited my pet hate from Lua - defaulting to global variables). Has anyone done any performance test comparing it to Lua?

Huh? GameMonkey is a dynamicly typed language. It is essentially Lua with C syntax and features only starting to arrive in v5, like default local, not global, incremental GC, more robust parsing, and coroutines by design not added later, etc.
Quote:Original post by swinchen
<snip>

Now I know you can't tell me which language I should use... but could you tell me some of the benfits and problems with these 4 languages?

If you could that would great,

thanks.



Well I'm not gonna make recommendations, just add some fuel to the burning fires that be. That is to say that Lua (or a subset of it, gluas) has been developed into the GIMP as a way to script imaging filters.

Recently, Gluas based DogLua (Lua for Dogwaffle) was added to Project Dogwaffle as a plugin by Marco Pontello (www.mark0.net), again for experimenting with your own imaging filters, algorithms and special fx ideas.

And Boris at Artweaver.de went to do the same.

And we think (hope) there will be some others shortly.

While images are not the only aspect of game making maybe you might benefit from knowing and using a scripting language which is also the basis for some of these imaging tools. That is, of course, if you use any of them in the first place.

If you don't know in particular what Dogwaffle can do there are a few gamedev oriented examples in http://thebest3d.com/dogwaffle/dotm (Dogwaffler of the Moment). The Lua stuff is at http://thebest3d.com/dogwaffle/lua - and for programmers at large the SDK is at http://thebest3d.com/dogwaffle/sdk

-Philip

This topic is closed to new replies.

Advertisement