Nightinggale
Deity
- Joined
- Feb 2, 2009
- Messages
- 5,281
Back when Firaxis wrote Colonization, they used BTS as a starting point (no big surprise there). As a result, the code (including network code) for BTS style civics is left in the dll and can be used if we add a GUI. The code is currently used for the constitution effects when declaring independence, but nothing will stop us from adding more civic categories and make the new categories available in a BTS style. All we need is the GUI and perhaps a bool in the civic categories (xml) to tell if it should be added to the GUI or not. Both are non-issues, partly because copying the design from BTS would be a good idea (familiar to most players) meaning we already got most of the code. It's not that I can't code it from scratch and in fact I might do that in order to provide better support for modern monitor resolutions.
The question is, if we add civics, how should they be used? It's my impression that paying an upkeep doesn't work well with the Colonization system, meaning civics would have to be tradeoffs in some other way.
If we take slavery, then we could have say 3 civics in that category: free, related, hard working. Each of those will then affect how the slave units behave in terms of running away and productivity. Once you free your slaves, you can't go back meaning you disable the other two civics and you also disable the ability to get slaves from Africa or natives. Relaxed slaves are less likely to run away, but at the same time they have lower production. Freed slaves aren't that productive (game balance concerns), but they can be converted to free colonists if they spend enough time in schools. How much is "enough" depends on game balance.
Implementation wouldn't be that difficult. Just make 3 slave units, possibly sharing graphics and they share UnitClass. Civics can then say UnitClass X should convert to Unit Y. Each civic has a different Y, hence 3 xml setups for unit productivity, run away risk and what else we can set up for units in xml. Making it this generic means we can reuse it for other purposes as well. Since the units are plain xml units without new modifiers, game speed shouldn't be affected much if at all while applying production modifiers to certain units would likely slow down the game.
The "pick unit for unitclass" feature should be in CivEffects and then let Civics grant a CivEffect. That way we can reuse the code for other CivEffect granting xml entries, such as eras.
CivEffects can lock or unlock civics, meaning you can make say a trait, which prevents using a specific civic. The code for that is already in place (though not really tested).
What do you say about this? Is it something you would like to see in the game? Also what other civics could be useful to add to the game?
The question is, if we add civics, how should they be used? It's my impression that paying an upkeep doesn't work well with the Colonization system, meaning civics would have to be tradeoffs in some other way.
If we take slavery, then we could have say 3 civics in that category: free, related, hard working. Each of those will then affect how the slave units behave in terms of running away and productivity. Once you free your slaves, you can't go back meaning you disable the other two civics and you also disable the ability to get slaves from Africa or natives. Relaxed slaves are less likely to run away, but at the same time they have lower production. Freed slaves aren't that productive (game balance concerns), but they can be converted to free colonists if they spend enough time in schools. How much is "enough" depends on game balance.
Implementation wouldn't be that difficult. Just make 3 slave units, possibly sharing graphics and they share UnitClass. Civics can then say UnitClass X should convert to Unit Y. Each civic has a different Y, hence 3 xml setups for unit productivity, run away risk and what else we can set up for units in xml. Making it this generic means we can reuse it for other purposes as well. Since the units are plain xml units without new modifiers, game speed shouldn't be affected much if at all while applying production modifiers to certain units would likely slow down the game.
The "pick unit for unitclass" feature should be in CivEffects and then let Civics grant a CivEffect. That way we can reuse the code for other CivEffect granting xml entries, such as eras.
CivEffects can lock or unlock civics, meaning you can make say a trait, which prevents using a specific civic. The code for that is already in place (though not really tested).
What do you say about this? Is it something you would like to see in the game? Also what other civics could be useful to add to the game?