raystuttgart
Civ4Col Modder
Base Concept Idea:
The bigger a city gets, the more needs and desires its population will develop. (They will depend on City Population mainly)
This concept will reflect how well your Colonial Nation does take care of those city needs and desires.
The whole system will be fully configurable (in terms of each single city need) in a new XML CityNeeds.xml containing CityNeedTypes.
Thus it will become easily configurable without further programming - once it is fully implemented.
The concept mainly intends to balance the huge cities that are currently overpowered (especially in 2Plot-City-Radius).
But it also intends to introduce a bit more micromanagement and challenge to the game.
There is no new Yield, Building, Profession or Specialist involved in the current System, since it is all based on the "Needs" which are basically like mini-quests for Cities.
(That was different in my old concept of "Satisfaction".)
City Needs are not to be fulfilled only once.
They are constant needs and desired that need to be fulfilled as long as the City Population is beyond the configured number.
Feature Concept:
A) Needs being activated / deactivated by Population Size
The specific needs / desires will become active depending on their XML setting for Popluation Size.
Once active a need will be added to a list of current needs of the City.
If population increases new valid needs will be added to the list of current needs.
If population decreases invalid needs will be removed again from the list of current needs.
Technical Remark:
The list of needs should probably be stored as CityNeedTypes in the City (and thus in Savegames).
That list will be updated whenever population changes.
Once they are active they of course need to be displayed.
(see Visualization Concept)
And the "list of current needs" of the City will not need to be satisfied only once.
They are modelling constant needs a City with a specific Population Size has.
Like Schools, Protection, Supply of Goods, Health Care, ...
You cannot simply give your Cities food once and let them starve afterwards.
B) Possible Needs
They will become gradually more by growth of the City's Population.
You will have very few needs for small villages and many needs for really huge cities.
C) Limit of Needs to be fulfilled and Chance based Algorithm
Not all Needs always need to be fulfilled. There will be border values (or precentages) for triggering positive or negative effects.
Fulfilling e.g. 7 of 10 current needs might be ok and might not trigger any negative or positive effects.
Fulfilling e.g. only 5 of 10 (or less) current needs might however trigger negative effects.
Fulfilling e.g. already 8 of 10 (or more) current needs might even trigger positive effects.
If you fulfill too few current City Needs over some time, you risk negative effects being triggered in the City.
The longer and the more Needs you don't fulfill the higher the chances that a negative effect is triggered.
If you fulfill most current City Needs over some time, there is a chance that some positive effect is triggered in the city.
The longer you fulfill most current needs the higher the chances that a positive effect is triggered.
So yes, there will be chance based algorithms.
I simply do not like deterministic and 100% predictable outcomes.
GameDifficulty selection could be implemented to affect the chances to trigger negative effects by the algorithm.
(The XML for GameDifficulty would then need to get a new XML-tag for that.)
D) Possible Negative Effects of too many Needs not being fulfilled
The possible negative effects would always be limited to the specific City.
(None of them would be game breaking - but they would still hurt.)
E) Possible Positive Effects of most Needs of the City being fulfilled
The possible positive effects would also always be limited to the specific City.
(None of them would be game breaking either - but still nice.)
Visualization Concept:
A) Need Status Overview in City Screen
There would be a new "Satisfaction" Icon in the City Screen. Behind the Icon there would be a counter displaying (Fullfilled Needs vs. Total Needs).
Looking e.g. like this: (7/8) or (5/8) or (4/8)
B) List of Needs in City Screen
The list of current needs will be visible / displayed by mouse over the "Satisfaction" Icon in the City Screen.
It will display the "short text" configured in the XML CityNeeds.xml (fullfilled Needs will have green text, not fulfilled Needs will have red text).
C) Warning Message if too few Needs fulfilled
For every City that has low % of Needs being fulfilled a warning message will be generated every turn.
For people that are annoyed with that, we might have an XML setting to turn those messages of.
D) Explanation of this new Game Concept in Colopedia
In Colopedia Game Concepts this new feature / game mechanic is explained.
AI concept:
I know that community does not like that, but there is no way, that this could reasonably be taught too AI currently.
It simply cannot manage or plan its Building Production, Yield Production or Yield Storage as needed for this concept.
Thus if implemented, all negative Effects would need to be "Human only".
I am sorry but I cannot offer anything better than that.
The feature would not be applied for Native Players at all.
(Almost none of the "Needs" would work for them anyways.)
Technical Remarks:
Technically this is definitely doable and all design patterns are known and proven in practice.
(Basically current "Health" feature is a mini-version of this concept - and by the way might be enhanced as well.)
It is a lot of effort however for setting up the new XML System (CityNeeds.xml) and to implement all the calculations, effects and visualizations. It would also need a lot of balancing and testing.
I will definitely need help with this from team and community to handle all of these efforts.
Save Games would become a tiny bit bigger but it really does not matter that much.
(Because we would need to store the list of NeedTypes.)
Performance will be affected a tiny bit as well. Because every turn in every Colonial City the logic for this "City Need System" would need to run.
But it is also not that much because it would mainly access data already computed (Population Size, Yield Storage, Yield Production, List of Buildings, ...) and the list of Needs will also be stored already per City and not constantly recalculated.
Gameplay Remarks
Well, this definitely affects gameplay.
Huge Cities will simply need more attention and micromanagement.
It is thus not really the most "beginner friendly" feature.
It should however be possible to explain this quite well in Colopedia.
-------------
Personal Remark:
This is based on one of my oldest concepts for RaR that I ever made. It has recently been improved a bit however.
(I got some new ideas from posts of our internal issue list and in discussions with other team members.)
I am really interested to hear what team and community think about this.
Maybe we can even make this concept better.
The bigger a city gets, the more needs and desires its population will develop. (They will depend on City Population mainly)
This concept will reflect how well your Colonial Nation does take care of those city needs and desires.
The whole system will be fully configurable (in terms of each single city need) in a new XML CityNeeds.xml containing CityNeedTypes.
Thus it will become easily configurable without further programming - once it is fully implemented.
The concept mainly intends to balance the huge cities that are currently overpowered (especially in 2Plot-City-Radius).
But it also intends to introduce a bit more micromanagement and challenge to the game.
There is no new Yield, Building, Profession or Specialist involved in the current System, since it is all based on the "Needs" which are basically like mini-quests for Cities.
(That was different in my old concept of "Satisfaction".)
City Needs are not to be fulfilled only once.
They are constant needs and desired that need to be fulfilled as long as the City Population is beyond the configured number.
Feature Concept:
A) Needs being activated / deactivated by Population Size
The specific needs / desires will become active depending on their XML setting for Popluation Size.
Once active a need will be added to a list of current needs of the City.
If population increases new valid needs will be added to the list of current needs.
If population decreases invalid needs will be removed again from the list of current needs.
Technical Remark:
The list of needs should probably be stored as CityNeedTypes in the City (and thus in Savegames).
That list will be updated whenever population changes.
Once they are active they of course need to be displayed.
(see Visualization Concept)
And the "list of current needs" of the City will not need to be satisfied only once.
They are modelling constant needs a City with a specific Population Size has.
Like Schools, Protection, Supply of Goods, Health Care, ...
You cannot simply give your Cities food once and let them starve afterwards.
B) Possible Needs
- specific Buildings (e.g. a Corn Chamber, Church, School, Pallisades, ...)
- specific Experts working in City (e.g. Fire Brand Preachers, Experienced Doctors, ...)
- specific Yield Production per Turn in City (e.g. Food, Crosses, Education, Health, ...)
- specific Amounts of stored Yields being higher than Domestic Demand (e.g. Salt, Sugar, ...)
- number of stationed Military Units
- being at peace with your close by neigbours (e.g. Natives or AI Colonies)
- not having active "Boycotts" in Europe on Yields produced in the City
- not having more than x% of population being Slaves / Petty Criminals
- ...
They will become gradually more by growth of the City's Population.
You will have very few needs for small villages and many needs for really huge cities.
C) Limit of Needs to be fulfilled and Chance based Algorithm
Not all Needs always need to be fulfilled. There will be border values (or precentages) for triggering positive or negative effects.
Fulfilling e.g. 7 of 10 current needs might be ok and might not trigger any negative or positive effects.
Fulfilling e.g. only 5 of 10 (or less) current needs might however trigger negative effects.
Fulfilling e.g. already 8 of 10 (or more) current needs might even trigger positive effects.
If you fulfill too few current City Needs over some time, you risk negative effects being triggered in the City.
The longer and the more Needs you don't fulfill the higher the chances that a negative effect is triggered.
If you fulfill most current City Needs over some time, there is a chance that some positive effect is triggered in the city.
The longer you fulfill most current needs the higher the chances that a positive effect is triggered.
So yes, there will be chance based algorithms.
I simply do not like deterministic and 100% predictable outcomes.
GameDifficulty selection could be implemented to affect the chances to trigger negative effects by the algorithm.
(The XML for GameDifficulty would then need to get a new XML-tag for that.)
D) Possible Negative Effects of too many Needs not being fulfilled
The possible negative effects would always be limited to the specific City.
(None of them would be game breaking - but they would still hurt.)
- Short Revolt (e.g. 2 Turns)
- Colonists leaving the City
- Colonist being transformed to a "Petty Criminal"
- Yields being stolen (from City Storage)
- Buildings being destroyed
- Unhappiness being triggered (adding a short term Production Malus)
- ...
E) Possible Positive Effects of most Needs of the City being fulfilled
The possible positive effects would also always be limited to the specific City.
(None of them would be game breaking either - but still nice.)
- Growth in City
- Production of a Building being spontaneously finished
- Spontaneously triggering "Learning by Doing" of a Colonist to be finished
- Boom / Festivities being triggered (adding a short term Production Bonus)
- ...
Visualization Concept:
A) Need Status Overview in City Screen
There would be a new "Satisfaction" Icon in the City Screen. Behind the Icon there would be a counter displaying (Fullfilled Needs vs. Total Needs).
Looking e.g. like this: (7/8) or (5/8) or (4/8)
B) List of Needs in City Screen
The list of current needs will be visible / displayed by mouse over the "Satisfaction" Icon in the City Screen.
It will display the "short text" configured in the XML CityNeeds.xml (fullfilled Needs will have green text, not fulfilled Needs will have red text).
C) Warning Message if too few Needs fulfilled
For every City that has low % of Needs being fulfilled a warning message will be generated every turn.
For people that are annoyed with that, we might have an XML setting to turn those messages of.
D) Explanation of this new Game Concept in Colopedia
In Colopedia Game Concepts this new feature / game mechanic is explained.
AI concept:
I know that community does not like that, but there is no way, that this could reasonably be taught too AI currently.
It simply cannot manage or plan its Building Production, Yield Production or Yield Storage as needed for this concept.
Thus if implemented, all negative Effects would need to be "Human only".
I am sorry but I cannot offer anything better than that.
The feature would not be applied for Native Players at all.
(Almost none of the "Needs" would work for them anyways.)
Technical Remarks:
Technically this is definitely doable and all design patterns are known and proven in practice.
(Basically current "Health" feature is a mini-version of this concept - and by the way might be enhanced as well.)
It is a lot of effort however for setting up the new XML System (CityNeeds.xml) and to implement all the calculations, effects and visualizations. It would also need a lot of balancing and testing.
I will definitely need help with this from team and community to handle all of these efforts.
Save Games would become a tiny bit bigger but it really does not matter that much.
(Because we would need to store the list of NeedTypes.)
Performance will be affected a tiny bit as well. Because every turn in every Colonial City the logic for this "City Need System" would need to run.
But it is also not that much because it would mainly access data already computed (Population Size, Yield Storage, Yield Production, List of Buildings, ...) and the list of Needs will also be stored already per City and not constantly recalculated.
Gameplay Remarks
Well, this definitely affects gameplay.
Huge Cities will simply need more attention and micromanagement.
It is thus not really the most "beginner friendly" feature.
It should however be possible to explain this quite well in Colopedia.
-------------
Personal Remark:
This is based on one of my oldest concepts for RaR that I ever made. It has recently been improved a bit however.
(I got some new ideas from posts of our internal issue list and in discussions with other team members.)
I am really interested to hear what team and community think about this.
Maybe we can even make this concept better.
Last edited: