So, I've been perusing a few threads here, in regards to pioneer spam, outpost building, and city growth. I already have an outpost mod I'm working on,s but I'm distracted with a couple of quest coding fests at the moment...
Anyways, several players have expressed interest in a more 'hands on' approach to city management. With that in mind, here is the 'design goals' statement I have in mind r.e. a mod to address this.
My issues with the current model:
1) The current population growth model works off of the concept of growth bonuses. Essentially, each city will attract population each turn, based on it's growth level. This happens in the background now, so players don't have to worry about assigning population to structures and such.
This encourages abuse, especially at faster game rates, where people build Pioneers to 'skim off' the excess population when a city hits it's population cap. Said Pioneers do not require food, and can wait around as long as a player wishes, until they are killed, found an outpost, or found a city. I think they can be used to boost population levels in a city as well (need to check this). While this certainly works, it encourages city and outpost spamming. Sure there are penalties (unrest) that tie into this, but the 'more cities makes people more scared' premise seems counter-intuitive to me.
2) Structures are no longer tied to population, just city levels. This is certainly easier, but once a structure is built it has no 'manning' requirements should the city then decide to drop it's population levels a LOT by spamming pioneers. Essentially, you have a bunch of population sitting around doing nothing while buildings are on autopilot. Apparently E:LH is an automated society, you just didn't realize it before...
3) Several modders have re-introduced population costs for armies from time to time. This makes sense to me, but of course is not part of the 'core design'.
Changes I have in mind:
1) (Re)Introduce new resources - Population pool.
Sovereigns will now attract/produce a number of people each turn. This will be tied to various bonuses, of course, but these will be for a global population pool, not for each individual city.
Three resources will be tied to this.
- Total Empire Population: A global counter showing the total population of your empire. Random events can tie into this variable... plus it makes you feel cool to know how many citizens are under your command...
- Total City Population: This will look the same as you see it now, but will be handled differently. Essentially population growth will be a direct result of adding new structures to the city (i.e. a Smelter might cost 30 population to build, and adds 30 to total city population).
- Available Population Pool: Any new structures, units, etc. will have a population cost, that is subtracted from this pool. If this pool is at zero, no new structures, etc. may be built.
2) Units will (again) cost population.
Most units will have a personnel requirement, that will be deducted from the population pool. Pioneers will cost the same in population as other units, but see below:
3) Buildings cost population among other things.
Essentially, you will need to provide citizens for the structure, which are deducted from the available pool of citizens.
4) New cities will not require additional population (over the Pioneer requirement), but...
New city sites will essentially be tents, when Pioneers establish a new city. The actual 'city hub' will still need to be built, and like all other structures will require population.
5) Cities will not produce population directly.
Sure, some city structures may provide bonuses to the growth of the global population pool, but will not accumulate citizens directly. New citizens will mainly be assigned via structures. I may also introduce a mechanic to add more population just because, but this will need to have controls associated with it.
6) City Hub Growth:
City Hubs may be upgraded ONLY if the required total population is on hand for said upgrade. Hence, total city population may have a slightly different effect on Hub growth...
7) New approach to Unrest:
Unrest will still be in play, but the penalties for multiple cities may be different. Example: There could perhaps be higher unrest bonuses for larger cities, which would of course introduce the need for morale boosting structures.
8) Players will need to accumulate population to build units/things...
Since almost everything unit wise and building wise will have a population requirement, Players will have to wait until they have sufficient population onhand.
9) Population Growth/Turn now a global stat:
Your Sov/Empire will have this stat. The higher it is, the more people that will be added to your Available Population Pool each turn. Obviously, you will accrue bonuses to this as the game goes on, and attract higher numbers of people each turn as the game progresses. HOWEVER, Cities won't be the primary driver behind this, and a control will need to be in place to ensure that 'City Spamming for the sake of higher growth bonuses' does not become an issue.
Notes:
On the Global scale, a Sovereign will see a new stat(s) across the top bar, next to Mana, Gold, etc. which will show available/unused population for upgrades, etc., and perhaps a global population count, although I might just leave that as a Ledger item. Population Growth per turn will also need to be shown somewhere.
What happens when a city is captured, and it's effect on global population levels, may need to be addressed, and I'm not sure how this would be handled. Currently, however, Global Population as I envision it is more akin to Fame, so this may be a non issue. Essentially, one might think of it as '50,000 people flocked to the Sov's banner this game', not 'You currently have 50,000 total population'. This could be tied into some sort of victory condition I would think.
The Plague Event: Since population is now tied to structures, this event will need to have a different approach. Not sure what to do right now about this...
Grain: Since City Hub level could still be tied to Grain, cities will still hit population caps, of a sort. That being said, this will need to be explored further. This may be a case where there is a disconnect between the grain resource and total populaton. Lots to think about here...
Elemental used to track craftsmen and such. Maybe there is something there to address the Grain situation and Plague situation...
Fame could play a role here. Where tracking growth bonuses introduces the issue of 'Sov still having the bonus despite losing a city' issue, perhaps the Sov earns more growth bonuses as he/she becomes more well known globally (i.e. becomes, well, Famous!).
The spells/enchantments that increase city growth may need a rethink...
Well, that's what I have so far. I'll probably jump into this at some point in the next couple of weeks. I need to button up a few things for updated releases first...
Comments, suggestions, etc. are of course always welcome!
I really like these ideas. Do you have any sense of how the AI will handle changes like these?
Hey Light!
It will be interesting to see how the AI handles this. I managed to sidetrack myself with a few other projects, though, so it'll be a bit before I jump into this in earnest.
I've been tinkering with finishing up a couple of quests, which changed quite a bit in scope (more objective forks to work out now). Plus, the weapons vs. armor balance thing is still nagging at me. You'll note that spreadsheet I posted earlier today (took a lot longer than I thought it would), and I still need to put together one or two more spreadsheets (armor, creatures) to get a better picture r.e. how to implement the changes which I think will enhance things, at least IMHO. I still feel like there is too much cheese for my tastes.
I miss Kenata and the old gang. They had a passion for weapon and armor balance, and it was fun bouncing ideas off of them!
I was recently thinking of making some changes like this myself. How far did you get with this proposed mod? The part that is giving me trouble right now is affecting population without using Growth.
I've been completely focused on other projects, so sadly I haven't done any more with this.
I felt that I should elaborate on my previous post further.
Creating a new resource is fairly easy. I did this for another mod. With that mod, the problem I ran into was assigning a time requirement along with the resource requirement, but the resource was accumulating/spending properly.
So you would assign an additional resource cost to each building, using the aforementioned resource. Again fairly easy to do.
As an example, you'd have a 'Followers' variable. This variable could be named global_population, really any name that floats your boat, as long as it doesn't match a current variable name. I like the idea of 'Followers' as a variable name, as I don't believe I've encountered it elsewhere in the .xml, and it describes what the pool is quite nicely.
The Sov would have a new starting trait, that adds x number of followers each turn to the Followers pool. This bonus could be assigned to a 'generic' trait that all Sovs would have. Said additional trait would be 'free' so you'd want to take it. This only becomes an issue with custom Sovs, adding this variable to pre-built Sovs is easy.
Heroes would also have a (lesser) Follower pool bonus included in their stats. As Heroes are pre-coded, it's easy to add this variable to them.
Buildings would require y number of followers to construct, in addition to other requirements.
Some buildings would add to the Followers pool as well. Example: A Monument might add +5 Followers/turn to the pool.
Additional bonuses to the followers pool could be assigned via new traits selected as a Sov or Hero levels up.
Building code is handled in CoreImprovements.xml
The trick to this here will be how to handle the current population model, and city hub growth. I haven't looked at this in a bit, but essentially I was thinking to 1)nerf this in some fashion or 2)ignore it. Looking at ElementalDefs.xml, I was thinking about zero-ing out these variables (population cost for units can be assigned elsewhere, so zeroing out the last one isn't a problem):
And then having buildings add to city population with a one time addition. I.E. building a Monument might add a one time bonus of +5 to City Population, and requires 5 Followers to build. As other functions are tied to city population (research, gildar, etc. production and such), the goal here is to eliminate the growth of these variables in the background, and tie them directly to the building of structures.
This could also bring about the return of housing structures (a la E:WOM), where you build houses to add population to cities, but if the other structures assign sufficient population, then this would not be an issue. Fine tuning the amount of population each structure would add to a city would be an issue to consider of course, when embarking down this path.
Hubs are tied to total population, and are triggered when a city population reaches various thresholds. With structures adding to city population as they are built, this will get you to/past those thresholds.
I never did get around to trying this out though.
One other note:
I was thinking of adding Follower bonuses as part of quests. I.E. you complete a quest, you gain a few followers (one time bonus). Or a scroll that details your exploits and completion of the quest, that gives you a bonus to followers each turn. As the story spreads far and wide, more hear of your exploits, are impressed, and flock to your banner.
Hope this helps!
Thanks for the details, this follows pretty closely to what I've been doing. I've added "Immigrants" as a Resource, that I had the Tower of Dominion give some per turn, and then added them in to be given in every lair that grants fame, with the intention. That part worked as I expected, and I included a food cost as well per building, with food now being a global resource. So far so good.
The problem became cityhubs. I can't get them to accept another resource for the levelup barrier (Citizens). I can't add to the "Population" resource through any means other than "growth". I tried
Or
Or for giggles, on Pioneers, making the cost -population
The levelup bar and "population" display sometimes work, but I can't get the city to actually level up these ways.
Feeling crafty, I decided that instead of adding population I would add growth, and then make 0 population be stored. This resulted in funky level up bar display and population counts, but if I had +50 growth/turn the city would level. I was about to be happy with this until I considered the affect on the Undead and Slavers, and realized both were broken by this.
Long story short, I can't get population to behave the way I'd expect it, so cityhubs are being ruined right now.
N/A
Also, I'm going to adopt "Followers" as my resource name if you don't mind.
I think "Population" is a bit magical. I can add any other resource I choose through either
Code: xml <GameModifier> <ModType>Resource</ModType> <Attribute>Lumber</Attribute> <Value>1</Value> <PerTurn>1</PerTurn> <Provides>+1 Lumber</Provides> <UpgradeComparisonID>1</UpgradeComparisonID> </GameModifier>
but the moment the Output resource is Population I get no results. What I also thought was interesting, was that when I tried a negative population cost to pioneers, adding pioneers to the queue did nothing, but canceling them from the queue actually reduced my population.
OK, looking at some spelldefs, I'm seeing the variable CityPopulation. I'm not sure if you've tried modifying this specific variable yet or not.
Blight and Earthquake both target this variable directly.
So far, Calc has been pretty stubborn about not working outside of spells, but the good news is that you probably are only adding simple values, not doing complex math here.
So, if I had to guess, going with <ModType>Resource or <ModType>City, <Attribute>CityPopulation <Value>+5 should do something. I haven't tried it yet, though.
I can't remember if you can disband pioneers in cities to boost population. May have my games crossed here.
I'll be interested in seeing if this works at all for you.
No luck that way either.
I am considering a convoluted method:
Expected results: This would make population capped by the number of jobs, which are provided by improvements. Improvements are capped by both grains & the pool of available followers. The Dead faction would still be tricky, it would ignore jobs but still need "available followers" to build improvements. The enslave function would still work to govern their city growth in the same manner as vanilla. (Zombies don't need jobs to hang around a city?) Maybe they need another resouceeffectdef that turns their population into available followers? Slave lords other than Undead would basically be out of luck, maybe a different bonus from enslave could be figured out?
Thoughts?
Well, if we used immigrants/followers/bandwagoners/lost puppies to increase growth on a per turn basis then it would result the one man working at the new merchant house to add Y total population over Y turns. Having improvements add growth once (not putting the per turn tag) seemed like a nice idea, but result in any growth addedwhen I tested it. Which led me to my convoluted solution.
That said, this is my first attempt at a mod, so there is a large room for me making some silly mistake in my tests.
OK, so looking through the core improvements.xml, I'm seeing a Prestige variable. It is usually applied per turn, but I'm curious as to what would happen if you applied a one time Prestige bonus...
So, lose the Per Turn tag, or put 0, and raise the value to say 10. Attach it to a structure, build it, and see what happens...
I'm guessing here, of course... there's gotta be a way!
I tried that one too, no luck. I think my next step will be to reset to a vanilla install, and retest everything a big more systematically to make sure I didn't make a mistake anywhere. That way I can feel confident it's not a simple mistake I made somewhere.
OK, before you go that far, I should mention that I spent some time last night trying some things out.
Playing around with the Prestige variable, when I tried to set it to a single fire (per turn 0 or per turn line deleted), the modifier was NOT applied at all, as you inferred.
I tried adding a duration (1), game just ignored the duration variable.
I tried a few other variable conventions (city instead of resource, etc.), no dice.
This is why I get frustrated with the inner workings of Elemental. Just enough is exposed in the .xml to allow a fair amount of things, but you don't have direct access to the underlying variables involved. In this case, you and I are trying to add population directly to a city, one time. But as we don't know the exact variable that is being 'counted' by the city, well we work though a go between that works a very specific way. In this case, it seemingly only accepts 'per turn' values for Prestige.
I took some time to look through previous iterations of Elemental (EWOM 1.0, 1.4, EFE, and of course ELH 1.4), and while I did find the old 'population container' variable that housing used, I didn't see any more direct references to population adders, specifically one time additions to pop counts. There is an ability alluded to that changes the starting size of a city, but what that 'pick' (guessing it was a Sov/Race design thingie) does exactly in coding terms I was unable to find.
Soooo, back to the issue at hand. I'll try a few other things, and maybe some other modders will find the magical variable that is needed to add (say) 5 population to a city one time. But as you mentioned, a workaround may be in order.
Something to consider. You could take most of the abilities OUT of city hubs and put them in other buildings, then set the threshold for a level 5 city at say 5 population, hence nerfing that mechanic entirely. Then you would 'build/upgrade' city hubs through building, not through an auto picker. This would remove some functionality, but might open up some other doors.
The reason you would do this would be to move population into the background, and move Followers to the forefront. Since buildings would require Followers to build, you are still (mostly) accomplishing the goal here.
Not an ideal solution though. I'd still like to find a way to add population one time. I'm thinking that since (calc) is used in a few places outside of spells, there may be a possibility to get it to work here. Not optimistic though.
I have limited patience for this, which is why I get frustrated somewhat easily when facing such issues. Some other games are more transparent in this regard (no/little modding ability, or here's all the variables you'll need). Hopefully you will have the fortitude involved to find a solution.
@tjashen It's a relief to know that it's the game being frustrating and not me missing something. I might experiment with city hubs to see what I could do. Any ideas on how the Dead should factor into this mod? It would be awesome if "Enslave" could affect the "followers" resource instead of population, but I don't know how that would work.
@Primal - A spell, or something you have to produce like the "Produce growth" option could work, but would be a pain to cast/build after each improvement. We would also have to make sure the AI casts it. I would rather err on my "convoluted" solution which requires less player maintenance.
I don't own the dead dlc, so I'll leave that to the resident experts here.
@Primal - we are trying to have a building apply a one time modifier (i.e. the followers/immigrants are tasked to work in the building that is being built, hence adding to the city population), so the building needs to apply the modifier in the background, preferably without any extra work on the part of the player.
If Elemental still had staffing requirements for buildings (i.e. you build an empy building, and if population is available to work in it, it is assigned, otherwise the building does not provide a bonus, etc), then assigning population via a spell (similar to rush production) might work.
Let domino know if you are able to get something along these lines (a building that adds to population one time when constructed) to work ingame! It sounds like the two of us are stumped for now on the more direct approach.
I have other 'things in Elemental that make you go hmmm' for you too, if you are bored...
This won't help here, but I just figured out EXACTLY how to do this... in E:WoM!
E:WoM had Population Storage, with some buildings boosting the max population of a city (housing and hubs mostly). Essentially, you'd assign population container boosts to all other buildings, and lose the housing. The city pop cap would then grow with each building added, and prestige could function as normal to boost the city size. Unfortunately E:WoM is a dead game at this point.
WHICH brings up a crazy idea, which would go against everything the current food model stands for...
FoodPerGrain. Currently, some structures such as docks add a food per grain bonus.
Sooo, you'd assign this GameModifier to all structures, with the thought that each time you added a new building, you'd be boosting the FoodPerGrain bonus, hence allowing more population to live in that city. Say +1 Food per Grain for a Monument or whatever.
Then, you'd lower the initial food per grain bonus accordingly. Or, you'd just boost the city hub thresholds (I'm not finding the initial foodpergrain variable in the .xml at the moment), say bumping the threshold for a Level 1 city from 50 to 80, with the thought that +10 Food per Grain (assuming 3 grain) would be provided by structures up to that point. The downside to this is that cities with a LOT of grain will get a bigger bonus from buildings than cities with lesser grain resources.
Not quite what I had in mind, but it would work at least.
Let's join up with Porcipinee, she can provide us with lots of cookies!
OK, so I was looking through quests, and I found a quest that modifies population. So, I tried the same string, adding +20 population, with the code below attached to a monument, and voila! 20 people showed up!
It applied the population bonus on the build completion turn only, and not on subsequent turns (which is how I wanted this to work).
The only question I would have here is if you have multiple cities, if the modifier is still applied to only one city (it should). I mention this because of how the event effect works (the plague - it says it affects the capital in the description)...
This makes me sad, because I'm pretty sure I tried that without luck, so I made a mistake, or may be going crazy. I'll go through with the plan to reset to vanilla install and just try that change.
In the mean time, I was slowly plugging through adding follower costs and citizen bonuses to all the improvements... there are quite a few of them I might say. The balance of which is going to be no easy task.
With respect to Primal's question about "AvailableSpecialists" I thought about that, but ended up using my own variable just in case there were some special rules to the existing one. My failures to mod population had made me weary. As a down the line goal, I would love to expand the system to include another tier or two of citizens like "Specialists" and "Master Tradesman". My thoughts are you could get them through schools or for certain structures. So a farm might not contribute to it but a smith or merchant house might add a fraction of a specialist. Then advanced houses would require specailists and add a fraction of a Master tradesman, though the balancing and implications of that have made my head swirl a bit. I like complex economic games, though I'm not sure I could implement much without destroying the AI.
There are many great features available to you once you register, including:
Sign in or Create Account