Python Used as Modding Language for Battlefield 2
Dutch Dopey writes "In an interview with Lars Gustavsson of DICE, it was mentioned that Battlefield 2's modding tools are going to be delivered with the game, and that the tools are the same ones used to develop the game. The modding language in use is Python, and will support all aspects of the language.
To those who made BF42 so much fun:
Desert Combat - http://www.desertcombat.com/
Battlefield 1918 - http://www.bf1918.com/
Forgotten Hope - http://forgottenhope.bf1942files.com/main.html
These three mods (and many more out there) took BF42 to new places, especially DC. Glad to hear that they are giving modders even more tools with BF2 - I can't mod or skin my way out of a paper bag, but I am grateful to those who can and give their talents to their community gratis.
"As the intrepid kobold companion continues his journey, he begins to wonder... if priests raises dead, why anybody die?
It uses the Source engine (the Half-Life 2 one).
Vampire: Bloodlines
Source engine feature list
The developers of EVE Online utilize Python for their game logic. Linkage
"I'm a leaf on the wind. Watch how I soar."
-Hoban Washburn
The problem I see with using python as a modding language is that it makes it very difficult to enforce safety in mods. It'd be nice if the modding language was sandboxed so that you could download a mod and know it won't format your hard drive.
Yeah, that's one of Python's shortcomings I think. There is the 'rexec' module which is meant to do this, but it apparently it has unspecified holes in it. The 'pickle' module has similar flaws. You could do some neat RPC stuff passing around picked objects, but only at the risk of introducing security holes. Oh well.
Python intergrates well with C/C++. Amazingly well, actually, and I think any C/C++ coder should go through the tutorial, and see what python can do for you. Yes, I know other enviroments promised the same thing before, but Python delivers.
Python is powerful, but easy to learn. Personally, I think we should be teaching kids Python in elementary school. And if it's your first language, you won't get all hung up on the whitespace thing.
Anyone coding an app that could benifit from a scripting language needs to take a look at python.
"A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
The holes in rexec have been acknowledged to the point where importing the module throws an error about its complete lack of actual security. Expect it to be removed entirely in some future version. Pickle is importing arbitrary code, which can do arbitrary things. There really isn't a sensible way to protect against this in a dynamic environment.
It's not like lua lacks file and system access primitives either, though those tend to be easier to hack out if necessary (which it usually isn't, since it's the game logic that's written in lua, not third party mode). The appeal of lua is the smaller footprint.
I am no longer wasting my time with slashdot
Sid Meirs Civ 4 will also be using python and xml for its scripting language.