Unic Civics

Cía

Warlord
Joined
Feb 17, 2007
Messages
109
Location
Sweden
I've been thinking a while now on who you can make the different civs of civ4 more unique. One idea I've come up with is about unic civics. Wouldn't it be a cool thing to add to the gameplay.

Ex: Spain - Inquisition Order (Theocracy)
Persia - Satrapy (Vassalage)
Japan - Shougonate (Heriditary Rule)

Is this moddable and is it a good idea?
 
I was thinking about this, too. This would be a great mod. Unique civics would be cool, but I don't think all of them should have to replace other civics. I have some ideas:
America- Manifest Destiny
Germany- Nazism (police state)
Japan- vending machine-based economy (a new economy civic) :p
Australia- Kangaroo court :p (a new legal civic)
I'll come up with some more later. Your ideas for civics were good, too.
 
I like this idea. I prefer the 'unique civics which replace existing civics' version better, same as with units and buildings, since it seems more balanced to me.

As for is this moddable - yes it is, but it requires C++ programming and modifying the DLL (unless someone can think of a way to do this without it?).
It will probably require defining 'civics classes' (same as with units and buildings) - creating a new XML file and modifying the existing ones - and basically duplicate the 'unique per civ' concept from units and buildings.
 
I'll second Asaf's setup any day of the week, but it does require a SDK mod. It would however be possible to add new Civics that doesn't replace any of the default ones with a Python mod. Because it would be possible to restrict what player can and can't select which civic with the canDoCivic and cannotDoCivic callbacks in the CvGameUtils.py file.

But you still need to know programming.
 
Would cripple the AI, so i'd not suggest it.

I like this idea. I prefer the 'unique civics which replace existing civics' version better, same as with units and buildings, since it seems more balanced to me.

As for is this moddable - yes it is, but it requires C++ programming and modifying the DLL (unless someone can think of a way to do this without it?).

Dummy techs + a screen hack for every civ....but that's probably the worst possible option.
 
Why would it cripple the AI?
 
Because the AI might try to convert to one of the civics which are not available for them, neglecting other, better civics than their current one in favor of the mentioned one.
But that's rather a guess, would have to be tested, but i'm feeling relatively sure about my assumption....er...:D.

Edit: That was meant at the pure python implementation which Baldyr mentioned, not at the whole concept.
 
Would cripple the AI, so i'd not suggest it.

Why would it cripple the AI?

I'll second that.

I don't think any of the suggestions here will cripple the AI.
The Civ4 AI is specifically designed to handle this flexibility - it gives values according to the properties of each civic. That means that if you buff a civic for an AI player - it will value it more than it would have valued the original civic.

If you add new properties, then you of course have to update the value function.

Changes will have to be made to other things - such as favorite civic (will be civic class), changing civics in trade (again, class) etc.

EDIT: Just saw The J's clarification.
In this case, you could just tell the AI that it cannot convert to this civic (cannotDoCivic() callback), and it should solve this issue.
But of course it'll be handled better in the DLL.
 
Because the AI might try to convert to one of the civics which are not available for them, neglecting other, better civics than their current one in favor of the mentioned one.
But that's rather a guess, would have to be tested, but i'm feeling relatively sure about my assumption....er...:D.

Edit: That was meant at the pure python implementation which Baldyr mentioned, not at the whole concept.
It just doesn't work like that. The AI will only take the Civic(s) currently availabe to it under consideration for whether to switch Civic(s) or not.

The specific Civic(s) that are/aren't available to each player can also be individually controlled from Python (CvGameUtils.py: "canDoCivic" and "cannotDoCivic"), however changing the XML format for Civics to one similar to the one used for UU and UB would probably be the best way to go about it - meaning that a small amount of DLL coding would be required also.
 
Any SDK fix for this is of course an option as long as someone knowledgeable will make it happen, instead of just talk about it. Because otherwise all that will become of it is just... talk.

If not, then I can hook the original poster up with the lesser Python option. All he needs to do is complete the XML portion of his mod.
 
Any SDK fix for this is of course an option as long as someone knowledgeable will make it happen, instead of just talk about it. Because otherwise all that will become of it is just... talk.

If not, then I can hook the original poster up with the lesser Python option. All he needs to do is complete the XML portion of his mod.

You could let the OP decide that ;)
 
Sure, but unless the OP is already SDK modding I doubt it would be worth the effort to learn all the skills required, including C++ programming and how to compile the CivIV specific DLL file, just for one little mod. The skills are of course invaluable in themselves for any modder, so I'm all for learning, but the what the OP needs to decide is whether or not he or she is willing to learn and how much effort can be put into this one thing.

The best option would, still, be that some SDK modder made this happen. Then it would be over with and done. No more "SDK implementation is better than a Python one" because that argument is completely redundant as it always evaluates to True (or true in C++ lingo) anyways. Everyone should learn how to edit the SDK, and that includes present company.
 
Myself I have no modding skills, I know how the basic XML works but nothing more. What I do have is knowledge about the history of most of the civs and a lot of ideas of what the different unic civics would do.
 
Cía;10145693 said:
Myself I have no modding skills, I know how the basic XML works but nothing more. What I do have is knowledge about the history of most of the civs and a lot of ideas of what the different unic civics would do.
So what are your ambitions as far as programming goes? Because you want to add a new feature to the game, and the XML is merely used for supplying values to the game features already in place. So you either need to know programming - or to have get the programming work done for you.

And yes, its quite possible to learn programming.
 
Since you wanted to make the Civs more distinct from each-other, have a look at the Glory & Greatness development thread - the mod sports some unique powers (3 each! :eek:). Some are done in XML and some in Python (scripted by yours truly), but many of the effects rely on a custom DLL file created by the user Asaf.

You could probably recreate the XML based ones yourself by copying stuff from the mod (when its released), and if you learn some programming you could probably replicate some of the Python code also. :D (No, I don't have time to make any more unique powers right now. :p)
 
but many of the effects rely on a custom DLL file created by the user Asaf.

I am not a user! I an a free man! :lol:

(And Baldyr is of course lying. Most of the work on GG is his and seasnake's. I only added some minor features).

I find this idea interesting enough to work on. I am, however, in the middle of another project right now, and I'm not sure when it will be finished.

If you do want a DLL solution, and don't want to do it yourself - you can either wait a few weeks and then I hope I can do it, or find someone else.

However, if you want to give it a shot yourself, I will be happy to help you with this.
 
Since you wanted to make the Civs more distinct from each-other, have a look at the Glory & Greatness development thread - the mod sports some unique powers (3 each! :eek:). Some are done in XML and some in Python (scripted by yours truly), but many of the effects rely on a custom DLL file created by the user Asaf.

You could probably recreate the XML based ones yourself by copying stuff from the mod (when its released), and if you learn some programming you could probably replicate some of the Python code also. :D (No, I don't have time to make any more unique powers right now. :p)

Checked it out now and it seems really interesting. I have been thinking about these unique powers myself and think it would be nice to combine this idea with the unic civics into a bigger mod. One more thing I've been thinking of is to make the religions act different so they can support different playstyle, and thus some civs should obt for one special religion cause it would help them better.

I am not a user! I an a free man! :lol:

(And Baldyr is of course lying. Most of the work on GG is his and seasnake's. I only added some minor features).

I find this idea interesting enough to work on. I am, however, in the middle of another project right now, and I'm not sure when it will be finished.

If you do want a DLL solution, and don't want to do it yourself - you can either wait a few weeks and then I hope I can do it, or find someone else.

However, if you want to give it a shot yourself, I will be happy to help you with this.

I can easily wait some weeks, if you are really interested in the idea!
 
That's completely different from what we want though.
 
actually in ffh2 they make a civic (cruzade) only for a certain civilization (bannor) i guess you guys should try to see if that could work in a similar way...
 
Top Bottom