Civ Traits for every 'Core' Nation

Contribute, display and discuss rulesets and modpacks for use in Freeciv here.
User avatar
vodot
Veteran
Posts: 79
Joined: Thu May 17, 2018 4:54 pm

Re: Civ traits and trait-specific units

Postby vodot » Tue May 29, 2018 11:21 pm

GriffonSpade wrote:
cazfi wrote:
GriffonSpade wrote:Root reqs can still be researched. Things that can Never be researched. The only useful purpose of which would have been to use as 'fake' advances, to give nations distinct units, buildings, and effects. Though, my memories of planning to use like that are rather fuzzy and indistinct. IIRC, there were some problems with it being buggy and support was dropped? (Was that finally nixed in 2.5 or 2.6?)

The mechanism to do that has always been self-requiring root reqs, and they have not been dropped.


...Is this noted anywhere? Because this seems like something that I would assume would spit out an error.
Edit: Apparently it is, in the Root Reqs in the techs.ruleset comments. I can only wonder how many times I've seen that mentioned in part or in whole in posts and misunderstood it.

Reading my old techs.ruleset, it looks like that's what I did back in 2010/11 (self-requiring root reqs), so good to know that still works.

Code: Select all

[advance_agricultural]
name     = _("Agricultural")
req1     = "None"
req2     = "None"
root_req = "Agricultural"
flags    = ""
graphic     = "a.refrigeration"
graphic_alt = "a.pottery"
helptext      = _("\
Agricultural civilizations easily master field and fen.\
They gain the following bonuses:\
o   +25% food from all tiles\
o   Peons: They may build Peons (Much cheaper workers)\
o   Silos: They may build Silos (Cheaper Granaries)\
")


GriffonSpade wrote:I think it's generally fine to post them, just point out that they're not your work and source is dubious. And probably avoid the ones directly from commercial games, as well.


Alright, I've attached my units.png and units.spec to the second post. Pretty sure all of these are either your work or from the fan-scenarios section/archives of Apolyton and CivFanatics.
Last edited by vodot on Wed May 30, 2018 6:24 pm, edited 2 times in total.

User avatar
vodot
Veteran
Posts: 79
Joined: Thu May 17, 2018 4:54 pm

Re: Civ traits and trait-specific units

Postby vodot » Wed May 30, 2018 5:09 pm

Updated civ-trait list, only 6 missing nation/trait combinations remaining:
  • Diplomatic + Naturalistic
  • Industialistic + Philosophical
  • Maritime + Scientific
  • Mercantile + Protective
  • Mercantile + Scientific
  • Naturalistic + Philosophical
Updated unit summary to show non-military units and add a few units from my original mod that were missing (Spy Drone, AWACS, Peltast)

Revised names of traits to deconflict with AI cues:
  • Aggressive --> Militaristic
  • Expansionistic --> Imperialistic

It's obviously interesting to lift the hood and help the AI play with their given trait (i.e., make sure that imperialistic leaders always have 'expansionist' values >70), but that's WAY over the horizon. Right now just focused on bringing rulesets up to 2.6.

<<todo list moved to first post>>
Last edited by vodot on Wed Jun 06, 2018 10:46 pm, edited 1 time in total.

User avatar
vodot
Veteran
Posts: 79
Joined: Thu May 17, 2018 4:54 pm

Re: Civ traits and trait-specific units

Postby vodot » Wed May 30, 2018 11:37 pm

Caedo wrote:In 2.6, there are three hard-coded traits, Expanionist, Trader and Aggressive, though these aren't just present or absent, but have a numeric value that represents how strong they are in an AI. They can be tied to a specific nation (though they aren't, currently), but they're usually randomly selected at game start. Take a look at this excerpt from /data/classic/nations.ruleset:

Code: Select all

[default_traits]
; Default values for the AI traits. These are used if nation specific
; value for some trait has not been used. If these default too are
; not defined, the ultimate default is 50.
; <trait>_min and <trait>_max give the range from which the trait value
; is randomly chosen for a given AI player unless 'traitdistribution'
; server setting is 'FIXED'
; <trait>_default is the exaxt trait value used when 'traitdistribution'
; is 'FIXED'. If <trait>_default has not been given, it's set to the
; midpoint between <trait>_min and <trait>_max.

; Value of trait "expansionist" defines how much AI wants to settle new territory.
expansionist_min = 30
expansionist_max = 90
expansionist_default = 50

; Value of trait "trader" defines how much AI wants to establish trade routes.
trader_min = 30
trader_max = 90
trader_default = 50

; Value of trait "aggressive" defines how easily AI declares war.
aggressive_min = 30
aggressive_max = 90
aggressive_default = 50


I'm not sure what the AI code looks like under the hood, so I don't know how easy it would be to add more of these, but those are the ones we have.

As for special buildings, I believe it's possible to just have a nation as building requirement. Special units still need technology voodoo-coding.

I missed responding to this directly; I think this is awesome AI flavor and want to ensure it doesn't conflict (even conceptually) at all with my mod, so I renamed my traits to leave space. It would be great fun to unify these ideas in the future (e.g. allow civ traits to narrow the range of randomly generated AI traits, or let RNG pick two traits and then drive hidden AI traits accordingly, or have RNG pick values for 12 traits and then set the trait combination to whatever the two highest are...) but for now it should work fine as flavor underlying public/unique traits.

User avatar
Caedo
Elite
Posts: 463
Joined: Sun Feb 10, 2013 10:21 pm
Location: Stuttgart, Germany

Re: Civ traits and trait-specific units

Postby Caedo » Thu May 31, 2018 5:47 am

vodot wrote:It would be great fun to unify these ideas in the future (e.g. allow civ traits to narrow the range of randomly generated AI traits, or let RNG pick two traits and then drive hidden AI traits accordingly, or have RNG pick values for 12 traits and then set the trait combination to whatever the two highest are...) but for now it should work fine as flavor underlying public/unique traits.


It is possible to modify AI traits via lua script, so you could have a procedure run at the beginning of the game that checks an AI's binary traits and then modifies its scalar traits based on that.

Also, we need a different name for these binary traits in general. Maybe "attributes"?
~S.C. L.

User avatar
vodot
Veteran
Posts: 79
Joined: Thu May 17, 2018 4:54 pm

Re: Civ traits and trait-specific units

Postby vodot » Thu May 31, 2018 2:11 pm

Caedo wrote:
vodot wrote:It would be great fun to unify these ideas in the future (e.g. allow civ traits to narrow the range of randomly generated AI traits, or let RNG pick two traits and then drive hidden AI traits accordingly, or have RNG pick values for 12 traits and then set the trait combination to whatever the two highest are...) but for now it should work fine as flavor underlying public/unique traits.


It is possible to modify AI traits via lua script, so you could have a procedure run at the beginning of the game that checks an AI's binary traits and then modifies its scalar traits based on that.

Also, we need a different name for these binary traits in general. Maybe "attributes"?


cool... re:names for traits, roles, attributes, tendencies, aspects, characteristics, quirks, passions, interests, bents, desires, ambition, ...whatever works.

Long-ish, mostly irrelevant philosophical rant below:

Code: Select all

This isn't what you're talking about, but with regard to the hardcoded traits, semantics is a bit tricky and perhaps important, since whenever I put a people-group and a broad brush together I sense some really significant white-washing/racism/westernization potential- probably why civ5 and 6 have moved away from locked-in civ traits (and even civ4 shifted traits onto specific leaders, because we're generally OK flanderizing specific historic individuals down to one or two hallmark personality traits).  I mean obviously the clash of cultures and civilizations is this game's main conciet, so I think there's some latitute for oversimplification and even the elevation of concepts that are today of course widely and internationally repudiated (like imperialism and wars of aggression).

Even so, I feel extremely self-conscious when designating a particular civilization "diplomatic" simply because I need that trait combination and history does not record that they viciously attacked the European imperialists on sight or produced fierce martial resistance in the way of some other civilizations around the world. In this case that people group may simply have been the best available choice for the 'diplomatic' tag. It is possible that with more effort I will be able to resolve all of these wrinkles or to identify terminology that is more copacetic.

If my name were attached to this in any public sense I would want to emphasize that while a loose correlation to a civilization's historical hallmark characteristics (however poorly and incompletely those may be understood by me) has been aimed at, it has certainly not been achieved in all cases; moreover many decisions and trait assignments were made simply in the interest of varying gameplay and achieving a complete list of civilizations that are globally representative with every train combination.


...but hopefully all of that is well-understood and already implicit in what is, in some sense, a game about ruthless global domination.
Last edited by vodot on Tue Jul 17, 2018 10:16 pm, edited 1 time in total.

User avatar
vodot
Veteran
Posts: 79
Joined: Thu May 17, 2018 4:54 pm

Re: Civ traits and trait-specific units

Postby vodot » Wed Jun 06, 2018 11:33 pm

updates to first post and todo progress. moving on to completing the individual nation.rulesets... all 78 of them...

User avatar
vodot
Veteran
Posts: 79
Joined: Thu May 17, 2018 4:54 pm

Re: Civ traits and trait-specific units

Postby vodot » Thu Jun 07, 2018 10:48 pm

I tweaked the civ trait distributions to get rid of civs that aren't already present in freeciv (harappan, bushmen, etc.). However, I really want the akkadian empire as a playable civ (Imperial; Agricultural), so I'm also creating a ruleset for them that is virtually identical to sumerian.

...I'm just procrastinating doing the 78 nation rulesets, espeically after I noticed that they are different enough from 2.2/3 that I'll have to redo every one of them. Not complicated, just time-consuming. I probably could have done two or three in the time it took me to type this up.

User avatar
vodot
Veteran
Posts: 79
Joined: Thu May 17, 2018 4:54 pm

Re: Civ traits and trait-specific units

Postby vodot » Fri Jun 08, 2018 8:34 pm

19 --> 42/78 complete.

User avatar
vodot
Veteran
Posts: 79
Joined: Thu May 17, 2018 4:54 pm

Re: Civ traits and trait-specific units

Postby vodot » Mon Jun 11, 2018 1:26 pm

Done with the individual nations; went a lot faster with a copy-paste from a concatenating column that auto-generated the "X", "X" code for me. Next step is rechecking all of the tilesets and .specs, then finally testing and implementation at 2.6.

User avatar
vodot
Veteran
Posts: 79
Joined: Thu May 17, 2018 4:54 pm

Re: Civ traits and trait-specific units

Postby vodot » Wed Jun 13, 2018 8:57 pm

Tileset works but having a weird issue now where the game tries to load amplio2 when I activate my ruleset and promptly crashes because amplio is obviously missing the extra units.

EDIT: Resolved by running the server separately and calling topology iso|hex from there before trying to join it. What a weird bug.