Kael & Frogboy - Scripting Support in Elemental?

Can we have an update as to whether Elemental will be given scripting support?

Rationally, I cannot see you rewriting all of the AI in Python. It's possible we might get API hooks and some of the game logic might be moved into it. Elemental has been quite the journey so far, but the scripting support that was part of the big lure for me has not materialized.

Faced with other contenders like SCII and Civ V, it is difficult for me to wait for Stardock, no matter how good the game is getting, or how "newb friendly," tools for editing the map and factions are. I'm no more satisfied by adding a new race to Elemental than I would be adding a new civilization to Civ - that's not why I mod.

So I would be happy to hear where Stardock is going with the game. I've already bought my copy, I'm not a lost sale. Will we get real scripting ability in the context of this game for doing total conversions, or is this a just a pipe-dream at this point?

 

That's all,
TCores

28,199 views 30 replies
Reply #1 Top

If it's a case of "We don't have a Python programmer," then try Lua or any of a half-a-dozen other off-the-shelf languages, or even your own in-house language, if you need familiarity. C programmers transfer readily to Lua.

Reply #2 Top

If it's not something you're ready to discuss, you could also say that.

Reply #3 Top

Next time use the edit button instead of triple posting?

 

And changing something to python should be really simple... python is very very easy to pick up if you are a programmer.

 

Anyways, I will probably not buy elemental if this feature is not going to be added in, but it sounded like a sure thing...

Reply #4 Top

It is definitely something that the modders have been asking for, from the start. As it is now, the modding system is incredibly rigid. Every tag or attribute only serves one purpose, and beyond the existing tags you can't do anything.

As I understand it, we're not looking at a "re-write", but rather the possibility to hook our own functions.

Reply #5 Top

Frogboy has said that he's going to do this. It is indeed a case of "We don't have a Python programmer" but he's planning on going on sabbatical for a while and learning Python, rather than settling for a less preferable language.

That won't be happening until Frogboy feels that the game has been improved to adequately address the userbase's concerns, however.

 

Also, this information is fairly old, his plans regarding this may have changed. In particular, he might be more willing to take the sabbatical earlier, now that Kael is coming aboard.

Reply #6 Top

The information is so old I no longer consider it reliable. I'm well aware the company focus is on improving the base game (as it should be) although I feel the lack of a scripting language is partially responsible: there's a reason people say Python has high-productivity: you can get a lot more done faster with less crippling bugs even though the code is not particularly fast.

 

No offense to anyone, it's just a feature being announced, followed by long periods of silence despite requests for information usually mean it's been dropped.

Reply #7 Top

That was like a month ago. It's not a priority, sure, but that doesn't indicate that it's dropped. Just that nobody's been thinking about it in a while.

Also, Frogboy did mention that he was still planning to go on sabbatical just the other day, although nobody talked about Python at that point, it was just an aside.

Reply #8 Top

Modding is a very big deal to us. The only thing that's recently changed is the amount of time we've been able to spend on it in the near term.

In the longer run, we hope to support both Python and C++ based modding to allow for substantially different games.  It's just that our first priority has to be to make sure the base game is good enough to attract sufficient players to support a vibrant community.

Reply #9 Top

Quoting Frogboy, reply 8

In the longer run, we hope to support both Python and C++ based modding to allow for substantially different games.

W00t! Those are the mods I want to see. Not too excited about content mods and those that merely fiddle with existing mechanics.

Reply #10 Top

Quoting falconne2, reply 9

Quoting Frogboy, reply 8
In the longer run, we hope to support both Python and C++ based modding to allow for substantially different games.

W00t! Those are the mods I want to see. Not too excited about content mods and those that merely fiddle with existing mechanics.

Specifically, what we've talked about is eventually making the screens available as .DLLs with the source code opened up. 

Kael has a lot of experience in modding and one of our objectives is to help him make Elemental as moddable as humanly possible which includes opening up C++ source code as well as scripting.  It's going to take awhile to get there of course but what we want to have happen is for people to be able to take our engine and create virtually any type of game you can imagine with it.

Reply #11 Top

Thank you, Frogboy. I appreciate knowing this!

Reply #12 Top

pardon my ignorance, but when you say open up the source code, do you mean open up the very heart of the engine and make every thing public at some point in time?

 

Reply #13 Top

My guess would be that you would have fairly good access and could make many types of game with the engine, but I am fairly certain that Stardock would retain rights to it (ie. no selling unless there is a deal with Stardock).

Anyway, sounds promising.

Best regards,
Steven.

Reply #14 Top

Quoting Glowing_Ember, reply 12
pardon my ignorance, but when you say open up the source code, do you mean open up the very heart of the engine and make every thing public at some point in time?

 

They won't need to open up the engine source code, just the gameplay source, the same way Civ 4 did. You can change everything except the graphics engine.

Reply #15 Top

It wouldn't be necessary to touch the low level functions such as gfx display.
In fact, access on that level would create instability and even security issues...

Being able to fully alter / access / alter the UI and game logic is really all it takes.
In many "modable" games there are just too many brick walls and insufficient access to the UI so you get too many crude workarounds.
In WOM modders can already insert custom variables to units and such and use them in calculations. There is just no way to alter how they are used (much less displayed) in a big way.

Reply #16 Top

Right at the top of my list is adding support to use much larger tactical battle maps. Ideally I would like something close to what we see in Age of Wonders. Obviously this should include different heights, destructable walls, army information gathered from more than 2 tiles and so on.

Edit: Bonus objective would be to actually read surrounding tiles for information and format a map accordingly (ie - forest west = forest west).

Another bonus objective would be to actually use the tiles for cities when you attack a city, instead of just generic_city_231.

Reply #17 Top

Personally, I wouldn't mind messing with the engine source code.

Reply #18 Top

@ Heavenfall

Heh. And you get resource points to buy upgrades and reinforcements if you control the bonus objective squares... =P

Reply #19 Top

Nope, I don't remember anything like that.

Reply #20 Top

Being able to fully alter / access / alter the UI and game logic is really all it takes.
In many "modable" games there are just too many brick walls and insufficient access to the UI so you get too many crude workarounds.

 

Civ V has taken the interesting approach of putting "all" of the UI in XML and Lua, which is really wonderful.

Obsidian has been doing that as well lately.

Reply #21 Top

Since Elemental is going with Python and not Lua, I would ask whether the devs are going to consider all the work Google is doing with the Unladen Swallow Project.  We all know how slow FFH can be on huge maps with all that Python code in Civ IV.

Would be nice to use the latest and greatest version of Python to get the best possible speeds for large mods.  Reading up on the Python forums it seems that Unladen Swallow in fact might be being merged into the default CPython build anyway.  If so, YAY :D

Edit: see http://www.python.org/dev/peps/pep-3146/

Reply #22 Top

Quoting MattSan, reply 21
Since Elemental is going with Python and not Lua, I would ask whether the devs are going to consider all the work Google is doing with the Unladen Swallow Project.  We all know how slow FFH can be on huge maps with all that Python code in Civ IV.

Would be nice to use the latest and greatest version of Python to get the best possible speeds for large mods.  Reading up on the Python forums it seems that Unladen Swallow in fact might be being merged into the default CPython build anyway.  If so, YAY

Edit: see http://www.python.org/dev/peps/pep-3146/

If speed is an issue, then the mod should be written in C++.

Reply #23 Top

Quoting MattSan, reply 21
Since Elemental is going with Python and not Lua, I would ask whether the devs are going to consider all the work Google is doing with the Unladen Swallow Project.  We all know how slow FFH can be on huge maps with all that Python code in Civ IV.

I will not go into technical stuff, but in short, its not ready for production use (it even does not pass CPython's tests suite), and will not for at least one more year. Besides, performance gains they achieved right now are far less significant than they expected. There was some GSoC work done on it, but its still not enough.

 

Reply #24 Top

Hello,

 

just wondering if there had been any news on this since October. Now that 1.1 is out and everything :)

Not expecting overnight releases of the source code or anything. Just some updated vague notion of when modders are going to be given access to the game mechanics? Some simple scripting and the ability to add in some variables would be a good start.

 

Reply #25 Top

I am interested too.  Kael and Frogboy, what do you say at this time about the OP's modding request, just after the release of 1.1?

Best regards,
Steven.