Discussion in 'Civ4 - World 2009 Mod' started by NikNaks, Dec 16, 2008.
nothing to see here folks, move along.
Yeah, yeah it's merged already. I was just putting it in for completeness' sake.
oh sorry, I misunderstood.
Sure sounds like RevolutionDCM would save you a lot of work on the SDK considering it keeps track with the Better BTS AI and comes with Revolution, Super Spies, DCM, IDW as stock. These components can actually be turned off and controlled in XML. The idea of that mod is to minimise external "overheads" by palming off branches to the core as seperate "addons" and keeping the core "focussed" and thus easy to maintain, kept stable and to incorporate into other mods. I doubt that the RevolutionDCM core will have much added to it from now on other than continuous "improvement" to the AI and whatever evolves in terms of Revolutions. Dales Combat Mod looks like being good for only a few things now like ranged bombardment, considering that most of the DCM AI improvements in the SDK, are being obsoleted by the Better BTS AI.
RevolutionDCM is very stable latest build SDK core. If you can implement all your ideas in Python, you could keep the DLL core updated via RevolutionDCM, without having to do any C++ compiling. The issue really is how much python coding you want to add! Eventually python will start to drag down the turn speed of your mod, but as yet I have not seen any sign of python doing this yet.
The issue is function hooks from the SDK into Python. I don't think there are a lot of ways to modify the espionage subsystem in Python because of a lack of Python functions to do so (I think). However, considering that RevolutionDCM will be focusing on keeping the espionage subsystem improving, there should be no drama. Lord Tirian has taken over Super Spies and I have passed on some help for him to develop new SDK espionage missions and the Better BTS team is working on the espionage AI. Already there is assassination and bribing in the RevolutionDCM SDK, that can be controlled externally via XML (turned off and on, costs adjusted). Most other mod additions like terrorists etc don't need the SDK and very capable AI's can be built in Python for those units.
Considering that you have Dom Pedro II's work as your base, you are ready for Revolutions, as the entire concept for that great mod was championed by Dom Pedro II and one of the best civ developers on this site, Jdog5000. You cannot go wrong with these two coders. Jdog5000 is both the founder of Revolutions and the biggest contributer to a greatly improved BTS AI, I'd go down the path of dropping the RevolutionDCM in as your core DLL and focussing on the python and xml for now.
If you want to implement some large scale plans like enabling the AI to form federations or other alliance structures, that is definetly SDK country and will take some time to pull off. Jdog5000 one of the brains in this area, as he has been thinking about how to achieve these ideas in C++ for over a year. It would suit his Revolutions mod as well. If you want to change the AI's attack behaviour, that too is heavily SDK dependent.
Wow thank you glider1, great information and advice. We will certainly follow it.
Also thanks for your work on RevolutionDCM, it really is perfect for our purposes.
Cool, have a happy XMAS. The thing is about that Revolutions mod....It is a great great thing that Jdog has done for BTS. However it is a love it or hate it thing. Some people just can't stand the extra complexity of having to manage the stability of your domestic society. Other's like me, love it because it adds colour and extra challenge to the game. If nothing else, you can completely shut that component down and it will lay dormant in the SDK as if it was not there. That applies to DCM too except for the Manhattan national wonder which I am tempted to return back to it's vanilla behaviour of being a project depends on what people think. IDW can be turned off too. Super Spies can't be turned off, but really, spies needed a promotion tree and this should have been in vanilla BTS from the beginning in my humble opinion. All the espionage missions can of course be turned off at leisure via EspionageMissionInfos.xml.
If you want a great little "study" on how to introduce intelligent single units into the game without having to touch the SDK, that have full AI's implemented in them as well as unique graphics, interface control and help text, you could take a look at the RevolutionDCM code for it's addon pack "Revolution Inquisitions". The code in that covers the whole gamut of adding a single unit (nothing else) in Python and XML and is very concise and reasonably easy to get your head around. However I'm really not up to speed with the way WoC does things in that respect.
Wow, thanks for all this advice, I have a few points, though.
There's a slight hitch here, in that the WoC does a lot of messing with how the XML loads and functions (like ignoring missing tags) to aid the modular loading side of things. There's no way I have the skill or knowledge to port that to Python. I'd explode trying.
Good to know
Ah, actually, that's changed since I wrote that I'm now just using the WoC.
Thanks for the tip I'll get in touch at some point.
Well, we think it'd be a great thing to have in the game to simulate real-life instability, but the option for people to disable it is definitely a good thing.
Nice. I'll check it out.
Those guys are big on SDK. They'll add any tag they need to the SDK. I don't know of any mod where they get hacky with Python, other than for interface screens.
Okay, then. That's that covered.
If you want to take a look at the WoC SDK, it's all available online through an SVN, but I'm pretty sure more software isn't going to work for you as it is. So, you can browse to SourceForge and look at the files there, to see how things work in a few files (you can download individual files, but not the whole thing in one go online - odd, I know) if you like.
But, again, thanks for all the pointers, and I hope you have a Merry Christmas, too
Thanks, I'm starting to understand WoC a bit better. Ok, how about this question. Does WoC have an SDK dll?
If it does, then like you say, it must just contain some extra functions to work with XML. If it doesn't touch python, that makes WoC even simpler. A lot of SDK DLL's like the Revolutions SDK, include SDK functions that touch python by allowing it to access and change the SDK DLL memory and execution *live* as the game plays out.
So what I think I'm saying is that if WoC does have a DLL, it would not be much trouble.....I think....to simply include the extra WoC overhead into RevolutionDCM core DLL, such that even though the overhead will not execute in most RevolutionDCM contexts, at least the RevolutionDCM core would be WoC compatible for you and others. It's only a guess.
My understanding is slowly increasing, but my ISP's data allocation to me is not. Thus I have to be stingy and only download WoC once I'm sure that I've got something useful to do with it.
Yes, the WoC does have a DLL, with a ton of changes in it. Having contacted jdog, he assures me that both DCM and Revolutions are already included, but I think IDW still isn't, along with a few other components from RevDCM. But it looks like a lot of the work has already been done.
Isolating the WoC edits in the SDK is easy, but finding the ones which are related to XML loading and edits will be more difficult. There are unique tags for finding the code pieces, however, and all edits are very clearly marked, but I'm not sure what the code piece is.
I'm going to direct jdog to this thread so he can read this discussion and post his thoughts.
It's a tough call on what to base the SDK part of this mod on. Here's how it breaks down from my vantage point:
RevolutionDCM: Pretty stable base which has new official versions released regularly (well done glider!). Only includes a small set of pretty cool SDK mods by default but is much easier to maintain/work with/bugfix because of this. All individual components can be disabled pretty easily by mod makers and players. If you want to add SDK pieces to this you'll need to create your own merge and have someone to manage it.
WOC: A huge collection of mods, allowing an incredible degree of customization. Any modder will always receive requests like "please consider adding ___", if you're based on the WOC then many other pieces are already available. This is especially true of civs, units, buildings, and other XML driven pieces. Working with such a big mod with several other people on several continents brings challenges too though. If you want to go this way I would say you need someone who will work a lot with the WOC guys in SDK merging, bug hunting and other things like that. I think version 1.3 of WOC is not too far away (a month or two?) and it will have Revolution working in it. You could try getting IDW in for 1.3 and using that as a base, but there will be a lot more work in bug hunting and making components work well together because WOC is so big. Higher rewards certainly but also higher time costs when compared with basing off RevolutionDCM.
Hope that helps.
Ok WoC is going to get very interesting very soon. If the SDK contains Revolutions and the core ingredients of DCM concepts like ranged bombardment, that's an excellent start and also stable. If all the external clothing layers like units, buildings etc can be simply added onto the back of WoC, that is excellent too.
I'll play it low key for the moment. I'm going to chip away at the RevolutionDCM core maturing a few aspects of it. IDW needs just a little bit more work to make the AI consider border pushing in some very specific cases and there are aspects of DCM that need a closer look at in light of Better BTS cross-over. Stack attack has a lot of potential as well as a fun, balanced option, if it can be made to work.
It looks like integrating WoC into RevolutionDCM is not as light weight a job as I guessed it would be. I'd take a look more closely, but I'm dogged by download expenses.
At a guess, a possible approach for this mod concept would be:
1) keep WoC compatibility as a main focus
2) keep an eye on RevolutionDCM code which may later on be relevant to the WoC SDK
3) start to think about how to add the ideas you have, into the base WoC concept via python and xml.
The philosophy I am using for RevolutionDCM could be extended into your mod. That philosophy is:
1) Stability - the game should not crash. BTS is too much an investment in player time (often weeks), to have it ruined by a CTD or clothing problem.
2) Balance - the basic BTS game balance between players and the AI should be maintained by improving the AI, so long as it does not violate rule 1)
3) Extra strategic depth should be added onto BTS so long as it does not violate rules 1) or 2)
Sorry, been reading too much Asimov!
Not sure how I managed to forget about replying to this, but anyway.
I've decided to go with the WoC, for the simple reason of quantity. It is relatively stable at the moment, and bugs are being ironed out.
There are pros and cons, as always, the cons being no IDW and bug issues, the pros being quantity of mods and the new XML system.
Glider, if you want to chat to the guys at the WoC, they have an IRC channel at irc://irc.swgemu.com/woc, so you can chat about the points you've raised and anything else you want to talk about. I'm on there a lot, too.
Also, I'm updating the OP with what's already included. I merged in Global Warming yesterday, and seems to be working, while faichele merged in M.A.D. Nukes a couple of weeks ago already
Just an FYI...
Do not use the Immigrant mod (or, at least turn if off) as it is broken and causes late game crashes...
Separate names with a comma.