Python

I don't see the market being there for the "vertical" version.
 
qazxc said:
I wonder: will Firaxis sufficiently guarantee the API to allow for a vertical market?
Think about it… “Civ4 - Developer’s edition” selling for, oh let’s say, $100.00; comes complete with a Python, XML and CIV IDE… and, dare we hope, documentation!

It'll never happen...

q
Interesting, but I think that if the python IDE and the various XML editors are found to be insufficient, the mod community will simply generate their own (eg. as was done to generate unit animations for Civ3).

As such, I don't think a 'developers' edition would sell very well.
 
I'm the author of the python tutorial thread. May I also recommend (i.e. shamelessly promote) the website I wrote on the topic at sthurlow.com

It was written specifically for potential civIV modders who may have few programming skills. Sadly, it cannot be overly specific - Firaxis haven't released anything on their API yet. Though it does lay down the necessary groundwork for when further information comes out.

I don't have any fears for any speed impact on the game - this message details how Firaxis will be using Boost.Python. My guess is that the actual gruntwork will be done in C++ through the use of Boost.Python (which maps C++ code to be utilised in Python), but the co-ordination (scripting, as you may call it) will be done through python itself.
ainwood said:
Interesting, but I think that if the python IDE and the various XML editors are found to be insufficient, the mod community will simply generate their own (eg. as was done to generate unit animations for Civ3).

As such, I don't think a 'developers' edition would sell very well.
Such is the beauty of Open Source software - We don't pay for it, Firaxis doesn't pay for it, we all get to use it for free, and everyone's happy.
 
PC.IGN interview said:
Players can edit basic stats and attributes in XML files. On a higher level, much of the game will be exposed to Python so modders will be able to edit events and have more control over how the game works. On an even higher level, Firaxis plan to provide an AI SDK to allow experienced programmers to dig very deep into customization.

Well, that’s one down… The AI SDK is particularly welcome since it sounds as though we’ll be able to specify new behavior. Assuming, however that the so-called AI is an expert system (like DYNACLIPS) that allows for the addition of rules on the fly. (For some reason, I’ve always thought that the CIV AI is an expert system shell like that old freebee Empty-MYCIN)


warpstorm said:
I don't see the market being there for the "vertical" version.

I agree the market is marginal, but Sim City has evolved at least one product. As I understand it, city planners have used a product based on Sim City for their purpose, so I don’t see why Civ can’t spawn useful products as well.
For example, as I have written in the past, for an ordinary citizen, I have yet to see anything that lets one experience the nuclear paradigm better that Civ. Civ, to a degree, simulates our reality – there are many who are interested in that, and it is the reason a lot of us are here. Put one dinosaur in the game and see us run away in disgust. But, allow for realistic what-if scenarios, well…

q
 
Too much customization is deemed as a Bad Thing (TM). It's hard because of balance issues.

I hope Firaxis wouldn't use it as an excuse of releasing a poor game. "oops, we hadn't thought of that, but you can mod it anyway."
 
ainwood said:
This SDK does sound interesting. What's the difference between that and exposing things to python? Does this mean that the SDK is more powerful than simply using python - is it access to the source code? A different set of library functions?


Check out www.cobaltai.com or www.directia.com (note not directai), or Google AI SDK (System Development Kit) for more...

q
 
ainwood said:
This SDK does sound interesting. What's the difference between that and exposing things to python? Does this mean that the SDK is more powerful than simply using python - is it access to the source code? A different set of library functions?
I'm unsure of how python could deal with 'AI' (using the term loosely). Mind you, in a universe with such limited dimensions (i.e. a two-dimensional grid, with a finite number of objects), a fairly good 'computerised logic' could be implemented without the huge processing power required to make a good AI.

I guess it all comes down to whether the AI will need to be complex enough to use a lower level language. There will probably be room for flexibility here, as by the sound of things the modding system seems very robust.
 
microbe said:
Too much customization is deemed as a Bad Thing (TM). It's hard because of balance issues.

I hope Firaxis wouldn't use it as an excuse of releasing a poor game. "oops, we hadn't thought of that, but you can mod it anyway."
Unreal is one of the most customisable series of games ever. It is a very simple, very popular game, with numerous "complete conversion" projects that convert it into completely different games.

Maximum customising never hurt Unreal.

However, it has one major advantage over Civ. Unreal uses the same core technologies for each version, so modders could take what they learned and apply it to the next game... and the customisations became increasingly ambitious.

Unreal (original) enjoyed only a handful of modest mods, whereas Unreal Tournament enjoyed a vast number of ambitious mods including Strategy games and Flight simulator, &c! :eek:

If Civ4 has loads of customisation, I would expect to see some modest modifications on-par with the best Civ3 efforts.

If Civ5 supports the same Civ4 API then we should see super-dooper modifications coming out around then... can't wait to see the future Star Trek mod with inside-ship views :lol:
 
Gingerbread Man said:
I'm unsure of how python could deal with 'AI' (using the term loosely). Mind you, in a universe with such limited dimensions (i.e. a two-dimensional grid, with a finite number of objects), a fairly good 'computerised logic' could be implemented without the huge processing power required to make a good AI.

I guess it all comes down to whether the AI will need to be complex enough to use a lower level language. There will probably be room for flexibility here, as by the sound of things the modding system seems very robust.
We cannot know the exact scope until they publish a library of custom objects & attributes, but I see absolutely no reason why AI cannot be written in Python.
 
stormbind said:
...but I see absolutely no reason why AI cannot be written in Python.

I can think of one. It is slow. Python runs around 10 times slower than compiled C++ code. It can be done however. To lessen that impact, you could compile your critical routines in C/C++ and glue them together with Python.
 
warpstorm said:
I can think of one. It is slow. Python runs around 10 times slower than compiled C++ code. It can be done however. To lessen that impact, you could compile your critical routines in C/C++ and glue them together with Python.
I know diddly squat about Python, but there is a common misconception that interpreted means slow ;)

Interpreted code is compiled before it is run. The game will no doubt compile your code when you start it up. There is a tiny delay in compiling scripts (< 0.1s) and after that it is the same speed as pre-compiled code.

It does not serve anyone to go into greater detail. If the Python interpreter behaves differently then maybe it is slow, but I doubt that. It should have a JIT compiler built in.
 
I've programmed Python professionally for years. It is interpreted, and it is slow. The 10 times slower number is about what I've seen on my projects. You don't compile Python directly into native code. It is compiled into bytecode for the Python VM which then interprets it one instruction at a time. Since Python allows you to modify the code on the fly (don't try this at home) there is no real good way around it.

There is a JIT compiler for Python (Psyco) but it is not part of the standard. Even with it, Python is kinda slow (at least twice as slow as Java).

Each version that comes out is faster than the previous as they tighten stuff up.

got to www.python.org for all the info on Python you'd ever want. While you're there pick up the IDE and tutorial and get a head start on modding.

...or http://www.activestate.com/Products/ActivePython/?mp=1 for a slightly more deluxe (and still free) package.
 
Bugger!

Please tell me why they selected Python. There are so many others: Lisp, Perl, Ruby, JScript, &c., &c., &c. I would have been tempted by E4X (ECMAScript for XML).

Btw, I have checked out it's syntax. The code feels pretty decent.
 
Well, for Civ3, Firaxis programmed most consuming parts of AI (patfinding), intor assembler code. I doubt it will be different this time.

And I think even assmeber programed pathfining would still be the slowest part of AI if everything else is done in "slow" Python.
 
Well, Python has been integrated into Gamebryo projects before they started Civ4 so there was less risk (Freedom Force and Bridge Commander both used Python and Gamebryo together).

It is one of the 2 big non-proprietary scripting languages used for games with the other (bigger) one being Lua. Lua has the downside of having really ugly code when you try to integrate in to c++ (but conversely, very simple syntax Lua-side).
 
Hmm, I just thought about a nice cheat. Assuming that you can access the resources from within the Python code could add something increments gold after specific events or each turn.
 
Back
Top Bottom