Unique Civ-Specific Great People Names

Frekk's SDK mod does nothing in the way of actual features; it merely adds a check to see if a Civ has a unique great general. In order for that to work, you still need to downoad my XML mod, which actually adds the names.

Personally, I prefer the Python version, because it does not require a DLL and thus is easily compatible with mods like the Unofficial Patch. No need to merge and recompile the SDK. It also does not add over 100 new units to make the system function.

I honestly don't understand why so many are against Python when they go to the extra trouble of doing SDK work! :crazyeye:
 
What's the consensus on the best way to implement this feature? Gaius's Python-based method or the SDK method by frekk? Could anyone elaborate on the merits/drawbacks of the two?

Cheers,
ripple01

It isn't my method, it's Mexico's. Credit where credit's due!! All I did was update it to BTS.

As for the question, it really depends on your preferences and what sort of mod you're running. Mexico's SDK mod will allow you to create GP UUs and have them appear properly, and even in order of names rather than at random. The other advantage is that there are no python calls, which draw heavily on system resources. If you want only a very limited selection of GP UUs - like say, just one complete set for one civ or group of civs - I'd go the SDK route. Otherwise Gaius' mod is more applicable.

I updated it for myself because for my particular mod, I've already got too much python, I only wanted generals, I only needed broad ethnic flavours (eg European, Asian, Native American, African, etc) and I didn't need them to be era-specific, so there were only about 10 units to add. I couldn't get Great Generals to appear properly, the SDK - all it really does - is fixes that, so that GGs appear correctly according to the civs the UU belongs to (otherwise you just get random GGs, anyone can get any GG UU).

I posted it thinking that Gaius still needed this for Great Generals to appear properly in his mod. I'm confused now as to whether he still needs it or not.

Personally, I prefer the Python version, because it does not require a DLL and thus is easily compatible with mods like the Unofficial Patch.

Actually I included Bhruic's patch.

I honestly don't understand why so many are against Python when they go to the extra trouble of doing SDK work! :crazyeye:

I sort of surprised myself doing that. Merging SDK is no harder than merging python, once you've got compiling figured out. In this case, it was actually much easier for me to update Mexico's SDK mod and merge it with BTS 3.13 and Bhruic's patch, than it was to try to merge your python with my mod. There were only about a dozen lines of code, and copy and paste Bhruic's source files into the gamecore directory. Not very difficult at all.

I'm not really against python, it's just that my mod is already python-heavy and python draws heavy on system resources. SDK is alot more efficient.
 
As for the question, it really depends on your preferences and what sort of mod you're running. Mexico's SDK route is preferable if you want to create GP UUs with graphics to suit - that is, if you want Aztec prophets and generals to look different than German prophets and generals. You're going to be adding the new units anyway, and python calls slow the system down quite a bit. If you just want unique names, Gaius' python mod is the way to go.

Actually, that's not true. Remember that in BTS you no longer need UUs for every civ to get unique art. Just use the new ArtStyles XML to do that. ;)

I posted it thinking that Gaius still needed this for Great Generals to appear properly in his mod. I'm confused now as to whether he still needs it or not.

I do not really need it in the sense that you can always use the Python version, which is what I prefer since most people I've talked to find XML modding a real pain (over 100 new units... up to 40 names for some of them... and you have to add each one individually...) However, I'm very glad you did this, because it allows more flexibility. :goodjob:

Actually I included Bhruic's patch.

Did you include 18+ civs? Dale's Combat Mod? Grave's flavored civics? The Atomic Bomb Mod? :lol: Sorry, but you just wouldn't believe how many requests I've seen that start out, "Can somebody please combine [SDK MOD X] with [SDK MOD Y]...?" The whole point of doing this in Python is to allow greater flexibility. Despite popular impressions, Python does not slow it down that much; if it did, all the screens and image details would be exclusively in C++ too. It's only those functions that get called many times per turn that are the guilty parties (which is why they are disabled by default in the CallbackDefines XML), not a GP check that might get called only once every few turns. :)

I've become a real defender of Python ever since I've started doing so much with it! :D
 
Did you include 18+ civs? Dale's Combat Mod? Grave's flavored civics? The Atomic Bomb Mod?

Sure, I could if I wanted to. It's not difficult. In some cases it would be easier than a python mod, since alot of SDK mods are just a few lines of code.

The other factor is that people may not already be using an SDK mod, or may just be using Bhruic's. In which case they don't need to merge anything at all.

Actually, that's not true. Remember that in BTS you no longer need UUs for every civ to get unique art. Just use the new ArtStyles XML to do that.

It's one way to do it. But if you're already adding the unit art and artstyles entries, you're not really saving a whole lot of work to just add the unitinfos stuff too. Copy and paste a set of all GPs 18 times and change the UNIT_ and ART_DEF_UNIT_ ... easy, 10 or 15 mins work tops.

The big effort is in the unique names. If you're planning on using your list, then your mod obviously saves a ton of work. But if you're building a fantasy or sci-fi mod then you've got to do the names yourself anyway.
 
Sure, I could if I wanted to. It's not difficult. In some cases it would be easier than a python mod, since alot of SDK mods are just a few lines of code.

Sure, it's easy for you and literary geniuses like Chugginator and me. We have compiler capability. What do you say to people like Zebra 9, who are coding geniuses, but cannot (or could not for a long time) do anything with the SDK because they don't have high-speed internet access and can't download the ~400 MB compiler?

Let's face it: most people out there, coming from Civ III and previous games, aren't very mod-literate. This works "out of the box" and does not require any special modifications to get it to work with most other popular mods. Sure, it's just a trivial matter of combining SDK files... but then if you make a mistake, you can't compile... or if you screw up the settings, it doesn't compile. Look at the SDK thread and see how many people have posted problems there. I'm not against the SDK at all. I simply believe that it's easier and more compact to do it in Python for people who are just getting into the game, since for the most part it's far easier to combine Python mods than SDK mods.

Ultimately, however, there are two things that a modification newcomer absolutely fears: "Yes, but it will require Python," and "Yes, but it will require SDK." :lol:

It's one way to do it. But if you're already adding the unit art and artstyles entries, you're not really saving a whole lot of work to just add the unitinfos stuff too. Copy and paste a set of all GPs 18 times and change the UNIT_ and ART_DEF_UNIT_ ... easy, 10 or 15 mins work tops.

I disagree. But if you want to do it the old Vanilla/Warlords way, like the "EDU" mod did, that's fine. :D That is why I originally made it this way, after all: because XML modding is perceived as easier than Python for most. (Plus the fact that I did not know any Python at the time. :mischief:)
 
Gaius, I read on another thread you had solved the problem with the GP list resetting after loading a game. Any chance of an updated version with this fix soon?

No chance at all. :D :joke:

I don't really consider it all that important right now, given the appparent popularity of the XML version, but it's not too hard to fix. The one downside is that my solution will probably make it multiplayer incompatible (but that may already be the case with the base mod). This is another reason I left up the older XML versions.
 
When I type fast sometimes I forget a word or two. But I find it very rude of you to say something like that so pointedly. Just for that, "NO FIX FOR YOU!" :p

I just started reading your post and then I couldn't stop laughing. :lol: It would've been rude of me not to say anything.

Nevertheless, sorry, and please get back to fixing the linear civ-specific great people naming. :D I need it for my mod!
 
:confused: The linear system already works; I don't see the problem. (Except for the savegame issue, that is. ;)) You just reset the initial variable in Python to 1 or 0 to change it.
 
Hi again,

I'm trying to integrate your Python version into my mod and I'm running into a problem. I'm almost positive I did everything required for the mod to run, but when I play a game, all of the great people are named Great Prophet or Great Artist.

When I added in my custom civs, I only put 1 name for each field in the Python file with all of the great person names: eg, BrazilProphet, BrazilMerchant, etc. Could this cause my problem? Any help is appreciated.

Cheers,
ripple01
 
There were some issues that I experienced (if you only use one name per type) when I combined this with my WWII mod. You need at least two for it to return properly (use the same name twice if necessary). However, I don't think that's your problem. Most important question: did you remove all the existing unique names from the XML file? ;)
 
I did remove all of the unique names from the UnitInfos.xml file. i'll try adding the second name to the civs I added and see if this fixes the issue.

EDIT: I added the second names and I'm still getting Great Artist, Great Scientist etc.

Thanks for the suggestions,
ripple01
 
I hope this is the last time I have to answer this... :D

NikNaks requested that all mention of the GPs be purged outside of the actual unit name, including in the event log. Why? Because if you're in the ancient era and you see "Isaac Newton has been born in a faraway land!" you immediately know the British are one of your as-yet-unmet opponents, don't you? ;) It allows you to cheat in a way.

In other words, what you are describing is intentional, not a bug. In the future I promised to look into adding a special event message if you had already met the civ in question, but for now the only way to see the unique names is to look at the unit on the map. :)
 
Top Bottom