New Founding Cities Mechanic [IMPLEMENTED]

Should new "founding cities mechanic" be implemented?


  • Total voters
    36

raystuttgart

Civ4Col Modder
Joined
Jan 24, 2011
Messages
9,672
Location
Stuttgart, Germany
Hi guys,

on thing I always hated in Civ4Col was the way new cities were founded.
It is extremely unimmersive and allows early city spamming. :(

Any Colonist - without any equipment - can simply walk to any unclaimed place (in minimal distance away from the next colony) and settle there instantly without costs or any price whatsoever
while a Pioneer - with equipment - takes several rounds to build a simple road and even a small amount of money needs to be paid.

Thus I had always dreamt of :
1) A special "Settler" Profession that needs equipment (e.g. Tools, Food and Wood)
2) The Equipment being consumed when founding the city.

Why did I not implement it:
1) I was always afraid of completely breaking AI because I did not know how to teach that to AI.
2) I did not want to make this a "Human only rule" and allow AI to continue settling as currently.
3) I was afraid of community complaining that I make the mod even more complex.
4) The XML-attribute for being able to found a city is also used for being able to join a city AND the ability to found is currently tied to Units and Professions so it would need recoding risking bugs (not just XML changes).

However, I still don't like the current mechanics for founding new cities.

By the way:
This would also eliminate the "Founding and Abandoning" exploit that devolution has mentioned.

Looking forward to feedback / ideas / suggestions?
(I am especially worried about breaking AI ...)

Edit:
I also thought about making a buildable "Settler Unit" that would prevent most AI issues or at least make coding AI much easier because a lot of CIV logic could be reused.
But I did not really like that solution either. I simply prefer the concept of Professions.

Edit 2:
The good thing is that graphics (for Unit / Profession) would not be an issue here.
Schmiddie once created graphics that would fit perfectly. Otherwise we could reuse existing graphics from Civ4 or maybe another mod.

Best regards
ray
 
Last edited:
Yes and it would also get rid of your "Found and Abandon" exploit
But how could we teach that to AI?

By the way:
I still have dozens of improvment ideas that stayed unimplemented.
My main problem however always was AI ...

Edit:
If you have a good AI concept for this then I would be willing to do all the XML setup (Profession and Graphics, Texts and Balancing) and try to do the main feature coding.
But I want to hear first if community and team wants to have it.

Edit 2:
Let us please however also first clarify:
A) The details of the feature considering mechanics for the Human player
B) The AI concept to allow AI to use this without weakening it too much
 
Last edited:
Some thoughts on the AI work

- The settler would need to be escorted by a defensive military unit (escorting\shadowing is already on my list and this behavior is already implemented in civ4 mods like AdvCiv so we would just borrow the code from there). We'd need this anyway when teaching the AI to send trade wagons to native cities and these need to be escorted by a fast unit like cavalry)
- If the settler is a unit that is built by hammers then this would lead to more coupling (as in competing AI decisions) and it would increase the opportunity cost of hammers (since there are lots of other stuff that could be built). The AI is already bad at this (but I am working on a branch that overhauls unit \ building production but it is not ready for the public yet). It would therefore be preferable to create a separate settler profession that could simply be equipped with the required material. The AI could simply have these profession be generated at the docks to make things simpler for now.
- AI missions: The AI uses MISSIONAI_FOUND for both founding and joining a city so we'd need a separate MISSIONAI_JOIN_CITY. Note that these only expresses "intent" but internally there are a number of checks against these that must be made consistent with the ability to actually found a city!
- AI would have to be prevented from de-equipping the settler. There are a number of places where the AI considers changing the profession
and for now we could simply prohibit this for the settler profession.
AI could still be allowed to de-equip the settler if the yields are needed elsewhere or if there is no current need to found a city.
In this case we'd have to prevent the formerly equipped yields from being exported or used for something else (btw, this "accidental" export of important yields is the stuff I am also fixing atm)
The AI should also produce its own settlers "internally" as well and not only rely on settler immigrants. In this case we'd need an AI feature that I call "AI strategic yield reserve" that
informs the AI that it needs to maintain a certain threshold of important yields for either unit production (to finally get the AI to build ships and to remove the AI wagon cheat) or "emergency equipment)


- It's possible that the DOANE mod already has this feature, we could perhaps have a little look how they do it...

In my opinion this is not very complicated at all to get it working and it should have little chance of breaking other stuff.

4) The XML-attribute for being able to found a city is also used for being able to join a city AND the ability to found is currently tied to Units instead of Professions so I would have needed to do extensive recoding risking bugs.

We (I and @Nightingale) agree a while back that we should split the existing bJoin into bJoin \ bFound tags to differentiate between the ability to found a city and the ability to join an existing one
 
Last edited:
Well, the escorting wasn't even my biggest issue.
But you are right, if AI needs to invest more (in terms of required Goods) then it should also protect the Unit.

My biggest issue always was that this gets "strategical" because AI would need to plan the production of required goods in better ways.
It should also not use those ressource stupidly for other things then.
It used to be (and probably still is) very bad considering strategical (meaning not short term / direct decisions).

About your concept:

Currently Europe (to my knowledge) spawns only units (with their default Profession) and not just any settler Unit with a random Professions.
You could of course add a new AI cheat to change the Profession fo any unit waiting on the docks in Europe to "Settler".

But how do we prevent that AI then reuses this "Settler" for something else?
It might lead to crashes when trying to set a potential "new" UnitAI_Settler already in Europe at the docks.
This is probably best done when already in the Colonies to prevent AI from changing the UnitAI ...

How do we make sure that the Unit from Europe is transported to the closest harbour in the colonies so it can reach its destination for settlement?

I am really worried about issues like that which could have lots of side effects when trying to adapt AI code.

Possible Alternative:
(which I don't really like either - but it might be technically the easiest)

AI (only) would be allowed to build a Settler Unit using the same graphics and text as the Human Settler Profession and having the same costs considering Tools.
It can most likely handle that quite easily. (Civ4 code could be reused.)
Since building already takes time the AI Settler Unit could also create the settlement instantly.
Human Players most likely would not even realize ingame.

Human Players would use the Settler Profession (which would be Human only) in the way discribed above (and not be allowed to build the Settler Unit).
This Profession would require Food, Lumber and Tools to be equiped. And setting up the colony would take time.

Could that be an alternative?
I know it is not perfect but it might be much easier for AI and less effort and risks for implementation.
 
Last edited:
I've updated my previous post and I think that I've addressed most of the concerns

Regarding the settler vs. naval AI, I've already decided to import the UNITAI_SETTLER_SEA from AdvCiv and that should take care of it. This is a dedicated unit AI to ferry settlers with defensive escort and pioneers. This problem has already been solved quite satisfactory in civ4 IMHO
I actually overhauled the AI immigration \ dock logic not later than two days ago (on friday) so I have every intention of making AI immigration smarter. The settler profession rework would fit right into this.

The only cheat that's acceptable for me would be to have AI settlers appear on the docks.
 
Last edited:
Well great. :thumbsup:
Seems we get an implementation concept going.

If you are confident to get a good AI implemented for this it has my support to use the new Settler Profession.
(I acutally like it more than 2 separate base concepts for AI and Human.)

Let us see what the rest of the team and the community thinks. :)
If they approve I would try to do the XML setup and the general feature logic.

But as you said:
The splitting of "Founding Cities" and "Joining Cities" is a prerequisite.
 
We (I and @Nightingale) agree a while back that we should split the existing bJoin into bJoin \ bFound tags to differentiate between the ability to found a city and the ability to join an existing one
Seems to me that in this case a iJoin/Found tag would make more sense.
 
Booleans are usually easier for XML modders to understand and easier to handle in code.

Also bJoin would probably still be used for Units and the new bFound would be used for the new Profession "Settler".
The new XML tag in the ProfessionInfos should not make it necessary to change the XML tag in the UnitInfos.
The code of course needs to be adjusted as well.

I don't really see a reason to change the existing boolean bJoin to an int. :dunno:

By the way:
Nice to see you still around. :)

Edit:

Just realized that
A) The existing XML tag is called <bFound> in UnitInfos
B) In ProfessionInfos we also already have a tag <bCanFound>

Thus we just need to rewrite the code which seems to be a lot simpler than I thought. (Except AI)
(Although it might be cleaner to rename <bFound> to <bJoin> to avoid misunderstandings.)

<bFound> --> renaming to <bJoin> --> Allows the Unit to join an existing City
<bCanFound> --> Allows the Profession to found a new City
 
Last edited:
Booleans are usually easier for XML modders to understand and easier to handle in code.
Aboutt he XML modding you are certainly right although that can be caught by adding a comment at the top of the XML file.



Just realized that
A) The existing XML tag is called <bFound> in UnitInfos
B) In ProfessionInfos we also already have a tag <bCanFound>
This raises an interesting, maybe even important question:
Is there any UNIT (meaning a unit which cannot have a PROFESSION, like a Mercenary or whatever) which is allowed to found or even join cities? At the moment I cannot think of any.
Even in future it seems to be highly unlikely as joining and/or founding inevitably means taking a profession.

Therefore, it looks to me like the necessary checks are based solely on professions. If so, we seem to be left with these options:
1) A profession cannot found nor join a city
2) A profession cannot found, but very well can join a city
3) A profession can found, but cannot join a city (which wouldn't make too much sense though)
4) A profession can found or can join a city

With one iFound/iJoin any of these cases can be set accordingly and in code can be checked with a SWITCH/CASE statement.
 
Therefore, it looks to me like the necessary checks are based solely on professions. If so, we seem to be left with these options:

Actually the code currently checks both XML tags (Unit and Profession) for Founding Cities.
First it checks the Unit tag. Later it checks the Profession tag.

It seems though that currently the tag on the Profession is used to prevent Professions (mainly the ones working in cities) to accidently getting assigned the wrong UnitAI.
But yes it is also used for being allowed to found a new city. I personally consider it to be the most important one for founding a city (after reading the code).

The tag on the Unit is mainly responsible for being allowed to join a city.
But as I said it is also used as pre-check if the Unit should be allowed to found a city. Probably to prevent errors and because it is a bit faster than first getting the Units Profession.

With the current XML settings however basically every "on the map" Unit with a Profession (of Europeans like "Settler", "Pioneer", "Scout" or "Missionary") is allowed to found a new city.

And no, there is no Unit that cannot have a Profession and still is allowed to found a city.
Current XML settings would not allow that and the current DLL code would hard prevent that as well no matter what you have in the XML.

As I said:

The recoding and XML setup of the feature basis for this new settling mechanics seem to be pretty easy.
After finding nice graphics or getting the ones from Schmiddie I can probably code and test that part in a few hours.

The hard part will be to teach AI to use this correctly. As it will no longer be allowed to settle with any settler walking around on the map.
But devolution is confident that he can create good AI behaviour to handle this.
 
Last edited:
Requiring all sorts of materials to found a city would probably just confuse a new player and complicate and annoy it for veterans.
If you must, just make it a specialty that costs more, (like a medic or other high cost recruits) Waiting for them to appear on the dock would slow things down and make you really think about your neighbors land ;)

And probably easier to code.
 
Requiring all sorts of materials to found a city would probably just confuse a new player and complicate and annoy it for veterans.
Regarding the "veterans" I would expect them to quickly adapt to any such new rule. After all, it wouldn't be different from any other new unit/profession needing certain equipment.

The new player however could really be annoyed if running to a good place with his colonist only to find out that he cannot found a city there.

And a new question arises:
What about your first city? It doesn't make too much sense if that first city could be founded without having a settler.
Of course you can easily turn on of the initial units into a settler, but then you would lose either the pioneer or the military unit.
 
Requiring all sorts of materials to found a city would probably just confuse a new player and complicate and annoy it for veterans.

I know that it would be a bit more challenging / complicated but that is the point of this change.
We want to make it a tiny bit more challenging to found colonies in order to prevent early city spamming.

It would actually not be so complicated though.
(It is simply changing the Profession which is no other mechanic as already used for equipping a Pioneer.)

Waiting for them to appear on the dock would slow things down and make you really think about your neighbors land ;)

Why wait? You could simply change the Profession of any Unit waiting on the Dock to the new Profession "Settler".
It is just the same now with Pioneers and Scouts for example.

I explicitly do not want to make a "Specialist Unit" - it is much easier to implement and to understand for Players to just change a Unit to the according Profession Settler.
(In Europe this would just cost a bit of Gold. But in the New World of course you would need the Yields.)

Actually this could even be used to improve AI behaviour as well.
Because it would not use Professions as Settlers anymore that are more valuable doing something else like e.g. Scouts or Pioneers.
 
Last edited:
What about your first city? It doesn't make too much sense if that first city could be founded without having a settler.

That is really easy to answer.
The first "Free Units" you start with in the New World would have a Unit with the new Profession Settler with them.

Simple XML change. Nothing can go wrong there.
AI should not have any problems with that once the general UnitAI for this new Profession is implemented.

-----------

Yes I understand it is new mecahnic and different as it used to be.
That is why we want to hear your opinion first of course before we are going to implement it.

Currently I think that most of the team members would like this change.
But we know of course that we also have casual players that might not like it.

And yes of course we would need to explain this.
(e.g. in Colopedia - and with some help from Community e.g. in different Forum Posts and maybe Let's Play videos.)
 
Last edited:
I like the concept, but I'm concerned with how it can go wrong and become annoying instead. Obviously it will add to the fun in the gameplay or it will be pointless or even be a joy killers.

1) A special "Settler" Profession that needs equipment (e.g. Tools, Food and Wood)
My concern is that people will find it too hard to found new colonies. Early on tools are hard to get as the two slots on the ship tend to be full. Yes you can import tools by changing civilians to pioneers on the dock, but I consider that more of a glitch than an actual way to do it. We shouldn't rely on people using that because it's not intuitive for new players. This means you can easily end up with a crowd, which is too big for your first colony, but lack of tools prevents you from building another one.

It also punishes lack of food in the first colony even harder. Imagine the setup where your first colony is low on good food production plots and that prevents you from building somewhere with lots of food.

The first "Free Units" you start with in the New World would have a Unit with the New Profession Settler with them.
Most players start with a pioneer and cavalry. Changing one of them to settlers means starting with less equipment.


Maybe the answer for the difficult start isn't as hard as it seems. How about allowing units to found colonies (like right now) and then switch to the settler profession requirement when the player has founded say 3 colonies (actual number in xml). This way the start is easy even for new players, but we will still limit rapid expansion and kill the "found and abandon" exploit. You can't even really start by doing that because then you will use your 3 "free founding credits" without actually getting colonies.

We will need a popup telling when the "free colony credits" are used or the players will be confused to why something isn't working when it worked before.
 
Most players start with a pioneer and cavalry. Changing one of them to settlers means starting with less equipment.
That has been exactly my point.

Nevertheless, one could create a "super settler" just for the ship with the initial units. That way even the new player would see that there are settlers in the game and still all equipment could be transported with just the first ship which for most players is the Caravel.
Additionally one might open a message from the king when founding the first city explaining the concept of settlers.

The biggest problem however will still be the AI which would need to understand where and how to provide the necessary goods for a settler.
 
Additionally one might open a message from the king when founding the first city explaining the concept of settlers.

We will find methods of explaining that, I am confident here.
But I fully agree that we need to.

The biggest problem however will still be the AI which would need to understand where and how to provide the necessary goods for a settler.

Absolutely true.
But I fully trust devolution here who says that he can do it.

Nightinggale and myself would surely also have ideas for teaching AI to handle it.
If everything else fails we could simply "force" AI to buy / equip the Unit in Europe. (Maybe for a cheaper price.)

My concern is that people will find it too hard to found new colonies.
Early on tools are hard to get as the two slots on the ship tend to be full.

That is actually what I want. I want to make founding new colonies early on an investment to think about twice.
(Even if it is just 30 Tools, 30 Food and 30 Lumber you will consider early city spamming at least twice.)

And yes, the player might have to wait for 20 turns until he actually feels ready to build his 2nd colony.
Or he might really focus early on his game play to this 2nd colony and maybe neglect something else.

I want it to be about a strategical choice when to found your 2nd and 3rd city.

Yes you can import tools by changing civilians to pioneers on the dock, ...

Why should you do that in order to found a new Colony?
You could simply change the Units Profession directly to a Settler.

We shouldn't rely on people using that because it's not intuitive for new players.

I am aware of that and also a bit worried.
While the mechanic itself is actually pretty simple it really adds a lot to the early game challenge.

This means you can easily end up with a crowd, which is too big for your first colony, but lack of tools prevents you from building another one.

I am not really worried about the crowd.
At the point where you end up with a crowd you will definitely have enough money to equip one of those colonist as a "Settler".

It also punishes lack of food in the first colony even harder. Imagine the setup where your first colony is low on good food production plots and that prevents you from building somewhere with lots of food.

Hm, that is almost never my problem. Might be different for other Players though.
Food also is ususally relatively cheap to buy in Europe.

Most players start with a pioneer and cavalry. Changing one of them to settlers means starting with less equipment.

Yes but do you really need the pioneer early on for building improvements?
I almost always let the Pioneer settle the city and change the Cavalry to a Scout.

Maybe my 5 colonist is actually working as a Pioneer.
The first settlers are needed for others stuff.

Maybe the answer for the difficult start isn't as hard as it seems. How about allowing units to found colonies (like right now) and then switch to the settler profession requirement when the player has founded say 3 colonies (actual number in xml). This way the start is easy even for new players, but we will still limit rapid expansion and kill the "found and abandon" exploit. You can't even really start by doing that because then you will use your 3 "free founding credits" without actually getting colonies.

Then I would rather leave it as it is.
The change of game mechanics ingame is something I really don't like.

----------

Basically we only can go one way or another.

A) We leave everything as it is. --> Founding Colonies will always be too easy.
B) We change it to the new Concept. --> Founding early colonies will be hard. Later in game it will not be a real problem anymore though.

A is very nice for beginners and casual players.
B is challenging and thus interesting for experienced players.

We simply cannot make everybody happy.

But to be honest I really believe that WTP is usually played by experienced players.
RaR also never was easy to start with if you were unexperienced in Civ4Col simply because it had much more features and complex game mechanics.

New Players will most likely start with TAC which is perfect for new Players.
It never really wanted to totally change Civ4Col and its mechanics. It just wanted to increase the quality and add flavor which it did perfecty.

----------

We have been discussing a lot of different new game mechanics recently. (Satisfaction, Techs, new Growth mechanics ...)
It will be the same question for all of them.

Will we add more features and thus more complexity or not?
Will we stay "beginner" friendly (which TAC is way more) or focus on "experienced" players that want more challenge?

----------

But sure, we need to agree which way to go.
Will we add new game mechanics and challenge or not?

Of course we should ask our community as well what they want before we make decisions.
 
Last edited:
The change of game mechanics ingame is something I really don't like.
Natives grant free land to the first colony as well.

We can however do something else. We can add a code event (not to be confused with xml events) for when a unit moves from the lower to the upper dock (as in you get a free unit). We can then hook actions into this event where the king can grant you gifts in form of assigning a profession to a unit free of charge. This way we can give the player a free settler when the population passes a certain threshold. We can use the same mechanic to generally get gifts (pioneers etc) if you have a good relationship with the king, making the pre-WOI relationship more important.

What the king will give and how often can be affected by difficulty and 1 vs 2 plot radius settings (I assume 1 plot radius requires more colonies).

Why should you do that in order to found a new Colony?
You could simply change the Units Profession directly to a Settler.
Sure, but I was referring to the issue of getting tools to do the task in question. It would be really bad to require contact with Europe in order to do... well basically anything because that would break stuff during WOI. Ok, founding new colonies during WOI would be an odd choice, but the game mechanics shouldn't prevent the player from doing so.

It also punishes lack of food in the first colony even harder. Imagine the setup where your first colony is low on good food production plots and that prevents you from building somewhere with lots of food.
Hm, that is almost never my problem.
It's likely rare with 2 plot radius, but it happens with 1 plot radius. It's something you want to avoid, but sometimes the good spots have already been taken and you just have to make the best of it. You might also place your first colony strategic according to ship movement etc.
 
Why not just have the pioneer be the settler unit? It makes sense; as that is what pioneers are. Older civ games worked that way and it was fine. It creates tension, do I want a second city or do I improve my first?
 
Back
Top Bottom