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