What scripting language should I use
Bill Baxter
dnewsgroup at billbaxter.com
Thu Dec 14 17:41:56 PST 2006
Kirk McDonald wrote:
> Jari-Matti Mäkelä wrote:
>> I've decided to create my next big game in D. It will be a rpg using D
>> in the lower level stuff and an integrated scripting language for the
>> game logic. Now, the only thing I'm not sure about is the scripting
>> language. It needs to be object oriented / functional and somewhat
>> portable (linux & windows).
>>
>> I've searched the dsource site. There is already more or less complete
>> support for
>> - python (pyd)
>> - ecmascript (dmdscript, walnut)
>> - minid
>> - lua (bindings lualib, dlua)
>> - squirrel (bindings)
>> - euphoria (freudo)
>> - lisp (dlisp)
>>
>> Maybe there are other production ready implementations not listed here?
>>
>> It seems the pyd, minid and dmdscript projects are well maintained.
>>
>> The best option would be to fully integrate the scripting engine to my
>> game. Using it via the C ABI should be ok, but requires a bit extra work.
>>
>> Which one should I take. I don't want to end up using vaporware. The
>> miniD projects looks interesting. I know dmdscript works, but I think
>> those other languages might be better suited for my game.
>
> There are perhaps three things to be aware of if you're considering
> using Pyd:
>
> 1) Linux support is still missing. I get the impression a new GDC
> release is close, and it is my hope that this will change at that time.
> It's worth pointing out that CeleriD (Pyd's build system) already works
> in Linux for building extensions written to the raw Python/C API.
>
> 2) At the moment, Pyd is written from the standpoint of writing
> extensions to Python in D, rather than embedding Python in D. This is
> not to say Pyd wouldn't be helpful if you wanted to embed Python in your
> D code (at the very least, Pyd has the most up-to-date bindings for the
> Python/C API), but your code will essentially just be using the raw C
> API for many things.
>
> 3) I'm still cramming features into Pyd at a decent clip. I don't expect
> the existing API to change much, but be aware that new features are
> being added about as fast as I can think of and implement them.
>
Yes after enthusiastically recommending Python, I should add the
disclaimer that I've never used PyD. ;-) Nor was I aware of points 1 &
2 above.
Kirk -- I would definitely encourage you to think about how to make Pyd
more useful for embedding as well. I think that's one place where
Python advocates tend to be unrealistic. Sometimes embedding is just a
better fit, like when you want to add a bit of external scripting
capability to an app. Probably one of the best known examples of Python
use is in Blender, which embeds.
I wonder what's missing in Pyd? Pyd must have a way to let you call a
Python function from D, otherwise your D extension module's ability to
interact with python is quite limited (no callbacks to Python for
instance). Is it just the python startup code?
--bb (who was hoping to use Pyd for embedding python at some point)
More information about the Digitalmars-d-learn
mailing list