Rivers and Hydro Power

Leoreth

Blue Period
Moderator
Joined
Aug 23, 2009
Messages
37,060
Location
東京藝術大学
River comparison in Bts vs DoC

It's a great coincidence that the issue of the prevalence of rivers in the game is brought up in combination with the advantages that rivers bring, in particular the availability of hydroelectric power. This is a problem both on the current and on the upcoming new map because on the latter the available space has often been used to include additional rivers. In consequence, in many fertile parts of the world every tile is often adjacent to a river. I don't think that is problematic per se, because a widespread river network is among the reasons why these regions were wealthy and populous historically. However, it contrasts with how comparatively rare and isolated rivers are in base BtS, and puts into question some of the advantages given by rivers.

Just to recapitulate, if I am not forgetting something those advantages are:
  • +1 commerce on tiles that do not have unimproved forest/jungle/rainforest
  • fresh water (health)
  • irrigation (i.e. access to farms)
  • access to watermills
  • access to trade networks without roads (after Sailing, i.e. most of the game)
  • +1 production with Levees
  • power with Hydro Plants
  • some wonder interactions: +1 food with Dujiangyan, +2 commerce with the Grand Canal
Unrelated to that, rivers somewhat impact unit interactions:
  • +25% defense bonus for defending river crossings (unless attacker is Amphibious)
  • breaks road connection bonus unless bridge building is enabled (i.e. with Engineering)
That's a lot of benefits with few downsides. They were arguably balanced in vanilla BtS because rivers were more rare and therefore strongly encouraged. There is very little strategy involved when every tile is river adjacent, on the other hand. This has manifested itself in requests to make Levees available to all cities regardless of direct river access to reduce this privilege of rivers, or the problem in balancing cottages/workshops vs watermills when the vanilla balancing factor of taking up a river tile is not much of a concern anymore.

Hydro Power

But let's talk about Hydro Plants first. I think the idea here in the base game was similar to the limitations I listed above. No power source was meant to be "the best" (at least before Fusion) but rather each had its drawbacks: Coal was unhealthy, Nuclear was expensive and risky, Hydro required rivers. That was fine until rivers became a given for nearly every time. This is actually more problematic in DoC because here there are way more power consuming buildings and the power unhealth scales with the amount of power consumed. The tradeoff being that if you can find cleaner energy sources or otherwise counteract the unhealth, you get access to more yield/commerce modifiers. Being able to easily cut that penalty in half in basically every city before one of the "tough choice" options (nuclear) even enters the picture is not the intended situation.

From a real world perspective, hydro power isn't actually that simple to model. It's a fairly obvious and easily accessible source of power under the right conditions (usually, sufficient elevation gradients). However, using it just on any river, regardless of size, usually requires the construction of very expensive dams that take a long time to build, displace a large amount of people, and affect the natural course of the river. All the examples of the latter type are usually considered megaprojects, like Aswan, Itaipu, Hoover, Three Gorges. Their cost and negative side effects are why hydro power is currently not fully exploited even though it theoretically has a large untapped potential of green energy.

An easy quick fix would be to restrict Hydro Plants to cities next to a river AND near a peak. I think this is a good solution because it would restrict Hydro Plants overall and keep them limited to regions that actually use lots of hydro power or at least have the potential to. It would also provide some more value to peak tiles which isn't a bad thing either.

However, the issue with that is that it generally doesn't cover the dam megaproject type of hydro power. You could argue that's what the Itaipu Dam wonder is for (representing that and similar dams), but I think that kind of project is a bit too common to limit it in that way. The other idea I have is to add a generic Great Dam national wonder (maybe even with a limited number of global instances) that would be very expensive, maybe even produce unhappiness, and either provide power to all cities that share the same river OR enable constructing hydro plants in all cities that share the same river. However, then you could still have issues such as a Great Dam in Amsterdam (well... it's in the name) and nothing preventing that except potentially the prohibitive production cost.

A more complex power system

I want to briefly touch on that because it has been mentioned in the other thread. Generally it's possible to change city power from powered/unpowered to having multiple "power units" used up by buildings that consume power. In fact, most of that is already implemented in terms of "power available" and "power consumed" counts, simply because that makes it easy to determine if a city with three sources of power still has power after one goes away for some reason, and the consume count obviously is already taken into account on the health side.

So it would be possible to have a power plant produce different amounts of power, and base hydroelectric power on things like peak adjacent tiles or watermills in city radius, or let nuclear plants produce a disproportionately higher amount of power.

I am only reluctant to do this because it opens up some further questions. What happens if the power consumed exceeds the power produced? Do all power consuming buildings stop working? If not, by which logic is the remaining power distributed between the buildings? Implementing this is one thing, but I feel it is tough to make this apparent.

River limitations and possibilities in the engine

It's important to note here that rivers themselves are wired pretty deeply into the engine. At this point, the only thing that is known related to rivers is whether a plot is next to any river, and whether the connection between two plots is a river crossing or not. The course and graphics for rivers are rendered based on this information by the engine and these properties cannot be changed really. As for moddability:
  • There is currently no way to know if two cities on a river are on the same river, but that could be implemented. There are some complicating factors though, for example two cities could be on different rivers but both could still be on the same river as a third city because of how tributaries work. So determining "downstream" cities is easier than determining "upstream" cities.
  • It is likely possible to implement river "types" with some amount of effort (see below for ideas). This would be on top of the simple "is river" tile property and essentially unrelated to how the game understands and places rivers. This could be used to affect which of the above advantages (or potential downsides) affect a given tile depending on what makes most sense for the geographical situation.
  • It is probably impossible to represent different river types graphically in the game, as there is only one set of river textures used regardless of the tile. I don't think there is a way to interfere with that, although there may be a hack I am not aware of.
River (section) types and distinctions

I could think of several distinctions for rivers:
  • Fertility: this is a river distinction that is already represented in the game, via the floodplains feature. Some rivers carry lots of fertile sediment to its shores that increases the agricultural output.
  • Flow speed: would be implicit in the rule proposed above for hydro plants. This would make it more obvious: river sections would be declared fast flowing when near mountains or with sufficient elevation gradient and hydro plants would require fast flowing river sections.
  • Navigability: rivers are usually only navigable up to a certain point. This is usually a hard limit for development, see for example the Nile cataracts being the effective borders of Egypt in different points in history. River shipping is very important for trade and it makes sense to tie the commerce bonus and trade connection properties to navigability.
  • Width: I also think differences in river width aren't appropriately accounted for and they could matter a lot. There's a big difference between crossing the Danube in Bavaria and crossing it in Romania. Crossing a wide river could consume all remaining movement points, provide a +50% defense bonus, and require a later tech for bridge connections. Going even further, Estuary crossings could be fully impassable but instead provide extra commerce.
I'm not proposing that a single tile could have yes/no properties across all of these different categories, because they are often interrelated. Floodplain river sections are usually also wide and slow moving, for example. So it should be possible to come up with types that combine the ideas behind those distinctions reasonably and have the corresponding benefits/effects.

Further opportunities for river effects

With this, there are other river-related rules that might be considered, especially based on different river types. A major historical concern that is currently not properly reflected is flooding. Often, the richest and most fertile rivers were the hardest to control and the ones that caused the most flooding. I don't know if there is an event for this, but even if there is I don't know if that is sufficient to represent the problems many civilisations had with flooding and the amount of labour it required to address.

A good solution I could think of is a rather frequent event, most common along floodplain rivers, that places the "flooded" feature on adjacent tiles which can be cleaned up by workers similar to fallout. Its effects shouldn't be drastic but noticeable, e.g. -1F -1C and -0.5 health. This would require civs susceptible to this to keep workers around to keep this problem under control. The presence of a Levee would prevent such an event.

Likewise, I think the idea of bridges in the game could be more developed. Historically, there weren't reliable bridges all along the river, and instead a bridge was the sign of a well developed city. Regular bridges along a river didn't become a thing until the Industrial Age and still aren't for many parts of the world. So I might consider only allowing penalty free crossings over rivers when it is through a city, and allowing them everywhere only with e.g. Railroad or even Infrastructure.

Maybe a Bridge could even be Classical era building unlocked by Cement or Engineering providing this and maybe a trade related benefit. It's kind of weird that bridges are just given to you for free in the game when they required a large amount of labour and architectural skill to build in the ancient world.

Conclusion

I didn't want to let this post peter out like that but I think this captures all my thoughts around this topic. As usual, it is open for discussion.
 
Personally, I like the "An easy quick fix would be to restrict Hydro Plants to cities next to a river AND near a peak" idea and an addition, perhaps a terrain feature like waterfall/gorges on rivers to allow dams in positions that are to far from mountains to allow them to be built in areas where local conditions allow dams but there are no mountains nearby. like the Ipatu dam
 
An easy quick fix would be to restrict Hydro Plants to cities next to a river AND near a peak. I think this is a good solution because it would restrict Hydro Plants overall and keep them limited to regions that actually use lots of hydro power or at least have the potential to. It would also provide some more value to peak tiles which isn't a bad thing either.
As I hinted at in the suggestions thread, I think this is a bad idea, because it is bad at capturing reality. Hydroelectricity is very commonly produced in places that have no 'peaks' in the game sense. You have already mentioned some mega projects like Itaipu and Aswan, but it goes beyond that: the DR Congo, Eastern Canada, Costa Rica, the Amazon region of Brazil, and so on. A national dam wonder could be interesting but I don't think it should be able to ignore terrain requirements, and it doesn't necessarily represent these areas well either.

Since a peak requirement is too stringent, I think we should take hills into account. But simply having a river hill requirement is conversely too lax. One possibility could be that hydro plants provide power if the city has X river tiles with one of the following features: a peak, a hill, or a watermill. (You could make peaks count twice to emphasize them if you wanted.) Watermills would be a way to engineer an otherwise flat area into an area that can provide hydro power, at the cost of using a tile for it, which abstractly represents the impacts on land use. If this makes watermills too powerful, their production output in the later eras could be reduced a bit.

This would tie in nicely with the 'power unit' idea (e.g. produces one unit per hill/peak/watermill), but I do worry that this mechanic may get too complicated for minimal gain.
  • Fertility: this is a river distinction that is already represented in the game, via the floodplains feature. Some rivers carry lots of fertile sediment to its shores that increases the agricultural output.
  • Flow speed: would be implicit in the rule proposed above for hydro plants. This would make it more obvious: river sections would be declared fast flowing when near mountains or with sufficient elevation gradient and hydro plants would require fast flowing river sections.
  • Navigability: rivers are usually only navigable up to a certain point. This is usually a hard limit for development, see for example the Nile cataracts being the effective borders of Egypt in different points in history. River shipping is very important for trade and it makes sense to tie the commerce bonus and trade connection properties to navigability.
  • Width: I also think differences in river width aren't appropriately accounted for and they could matter a lot. There's a big difference between crossing the Danube in Bavaria and crossing it in Romania. Crossing a wide river could consume all remaining movement points, provide a +50% defense bonus, and require a later tech for bridge connections. Going even further, Estuary crossings could be fully impassable but instead provide extra commerce.
These are nice ideas. I'm less sure about width, if we can't actually see the width on the map. It would be awkward if a 'wide' river section looks thinner or the same width as a regular section.

Navigability and flow speed could be elegantly modeled as a simple tradeoff between the two: all river/sections could be one or the other. I think it would be good to limit trade connections to only some rivers, because in DoC, it's quite rare that a city is not connected to your trade network.
With this, there are other river-related rules that might be considered, especially based on different river types. A major historical concern that is currently not properly reflected is flooding. Often, the richest and most fertile rivers were the hardest to control and the ones that caused the most flooding. I don't know if there is an event for this, but even if there is I don't know if that is sufficient to represent the problems many civilisations had with flooding and the amount of labour it required to address.

A good solution I could think of is a rather frequent event, most common along floodplain rivers, that places the "flooded" feature on adjacent tiles which can be cleaned up by workers similar to fallout. Its effects shouldn't be drastic but noticeable, e.g. -1F -1C and -0.5 health. This would require civs susceptible to this to keep workers around to keep this problem under control. The presence of a Levee would prevent such an event.

Likewise, I think the idea of bridges in the game could be more developed. Historically, there weren't reliable bridges all along the river, and instead a bridge was the sign of a well developed city. Regular bridges along a river didn't become a thing until the Industrial Age and still aren't for many parts of the world. So I might consider only allowing penalty free crossings over rivers when it is through a city, and allowing them everywhere only with e.g. Railroad or even Infrastructure.

Maybe a Bridge could even be Classical era building unlocked by Cement or Engineering providing this and maybe a trade related benefit. It's kind of weird that bridges are just given to you for free in the game when they required a large amount of labour and architectural skill to build in the ancient world.
These are good points too! It's true that bridges should realistically be a bigger deal than they are. I wonder if it would be tedious if rivers slow down movement for most of the game, though, but maybe actually taking rivers into account when traversing terrain would provide more immersion.
 
There is currently no way to know if two cities on a river are on the same river, but that could be implemented. There are some complicating factors though, for example two cities could be on different rivers but both could still be on the same river as a third city because of how tributaries work. So determining "downstream" cities is easier than determining "upstream" cities.

As we use only one map for the mod, it can be hardcoded by listing all tiles near each rivers. It will take some time but well we do such things when needed.
 
Is it possible to code it so that whenever a city builds a dam, a random neighboring land plot is transformed into a lake?

The would represent the loss of land to the reservoir / lake that dams create and also represent a potential cost as you could lose a developed land tile, potentially even one with a valuable resource.
 
A good solution I could think of is a rather frequent event, most common along floodplain rivers, that places the "flooded" feature on adjacent tiles which can be cleaned up by workers similar to fallout. Its effects shouldn't be drastic but noticeable, e.g. -1F -1C and -0.5 health. This would require civs susceptible to this to keep workers around to keep this problem under control. The presence of a Levee would prevent such an event.

Sengoku mod implements this mechanic by occasionally destroying improvements, like the volcano event, until a dam is built. makes sense imo.
 
These are good points too! It's true that bridges should realistically be a bigger deal than they are. I wonder if it would be tedious if rivers slow down movement for most of the game, though, but maybe actually taking rivers into account when traversing terrain would provide more immersion.
True, but on the other hand it only affects movement along routes (unless stricter river crossing rules are added), and if cities are still covered with Engineering it could actually add a strategic dimension in that river cities become more of a choke point.

As we use only one map for the mod, it can be hardcoded by listing all tiles near each rivers. It will take some time but well we do such things when needed.
That is true. I am less concerned about the one time effort than the constant requirement to keep this updated when changes are made. I'd rather have a programmatic solution.

Sengoku mod implements this mechanic by occasionally destroying improvements, like the volcano event, until a dam is built. makes sense imo.
Yeah, I think that's what the BtS event for flooding does too, Sengoku probably just made them occur more frequently. Still, I think having multiple improvements destroyed entirely is harsher than a removable tile effect.
 
Is it possible to code it so that whenever a city builds a dam, a random neighboring land plot is transformed into a lake?

The would represent the loss of land to the reservoir / lake that dams create and also represent a potential cost as you could lose a developed land tile, potentially even one with a valuable resource.

I would imagine that Europe and China would be just chock full of lakes if that was done, given how close the cities there tend to be. I can't imagine the AI could be taught about that sort of consequence and they'd end up merrily turning Eurasia into a water park.
 
A good solution I could think of is a rather frequent event, most common along floodplain rivers, that places the "flooded" feature on adjacent tiles which can be cleaned up by workers similar to fallout. Its effects shouldn't be drastic but noticeable, e.g. -1F -1C and -0.5 health. This would require civs susceptible to this to keep workers around to keep this problem under control. The presence of a Levee would prevent such an event.
I really like this idea. Would it make sense to exempt the Nile from this though? Not sure if there are other rivers that work similarly, but my understanding is that the incredible regularity of the Nile floods contributed to the long term success of ancient Egypt. Though forcing Egypt to have a large labour force on hand to manage the floods wouldn't be a terrible outcome either.
 
River width: I'm not completely sold on the necessity of representing these differences. I'm all for making rivers more impactful in terms of traversing the map, and I'd be great with even the most restrictive idea put forward (easy crossings only in cities); I just don't think there's much benefit in making a distinction. Since lagoons will be a thing in a lot of major estuaries anyway, maybe they could fulfill the "no for real it's extra hard to cross here" even past Infrastructure if needed.

I agree with Steb that combining speed and navigability is the way to do it, though you could possibly argue that some rivers are neither. Although I'm not sure a river like that would be worth representing on the map at all.

Regarding the Nile (and the Tigris/Euphrates), maybe Flood Plains could be immune to the "flooded" effect entirely. I mean kind of the whole point of flood plains is that, while they do flood, they do so in a predictable, beneficial way. Plus adding an EXTRA .5 unhealth to flood plains just seems cruel. Using flood plains as a catchall for extra-fertile land would have to go away but I'm not sure that was ever genuinely a good thing, even if it worked out well enough.

If Levees are going to be the way we control flooding, maybe that should be their main effect, rather than giving tons of production on top of it? They're already a very, very strong building for their era, and they just keep getting better as you industrialize. Maybe replace the per-tile benefit with just a flat +3 or so prod? Or they could only benefit watermills? Just something to tone them down a bit if they get an additional effect.

I will say that if flooding is going to be a thing controlled by workers, we should probably also adjust worker cost and starting workers. Lots of early civs are pretty finely balanced and needing to build even a single extra early worker is a big ask. Looking at you, Harappa.
 
Maybe we could implement an effect on Corporations with clean power, such as reduced income or increased unhappiness? Part of the reason Hydro power, and green power in general, hasn't been widely adopted is that it isn't easy for corporations to profit off of it compared to fossil fuels, and the cost in building materials usually requires state involvement. Maybe even a new Electric Company corp that gives more bonuses with "cheap" dirty power.
 
RRegarding the Nile (and the Tigris/Euphrates), maybe Flood Plains could be immune to the "flooded" effect entirely. I mean kind of the whole point of flood plains is that, while they do flood, they do so in a predictable, beneficial way. Plus adding an EXTRA .5 unhealth to flood plains just seems cruel. Using flood plains as a catchall for extra-fertile land would have to go away but I'm not sure that was ever genuinely a good thing, even if it worked out well enough.
Especially the Mesopotamian rivers are known for frequent flooding in ancient times though. You are right that combined unhealth from floodplains and potential flooding may be too much.

If Levees are going to be the way we control flooding, maybe that should be their main effect, rather than giving tons of production on top of it? They're already a very, very strong building for their era, and they just keep getting better as you industrialize. Maybe replace the per-tile benefit with just a flat +3 or so prod? Or they could only benefit watermills? Just something to tone them down a bit if they get an additional effect.
That's fair. Or maybe there should be two different buildings for those purposes.

I will say that if flooding is going to be a thing controlled by workers, we should probably also adjust worker cost and starting workers. Lots of early civs are pretty finely balanced and needing to build even a single extra early worker is a big ask. Looking at you, Harappa.
Definitely. I would combine such a rules change with the new map which requires a rebalancing in that regard anyway. Since that will also coincide with an increase in turns for the era with more dynamic gameplay, a lot of factors are at play. I am also considering letting the initial civs start with a worker.

Maybe we could implement an effect on Corporations with clean power, such as reduced income or increased unhappiness? Part of the reason Hydro power, and green power in general, hasn't been widely adopted is that it isn't easy for corporations to profit off of it compared to fossil fuels, and the cost in building materials usually requires state involvement. Maybe even a new Electric Company corp that gives more bonuses with "cheap" dirty power.
Oh, combining power with corporations is a good idea that I hadn't considered before. That seems like a logical fit.
 
One idea would be to have a reservoir or dam improvement, that would only be built on hills or mountains adjacent to rivers. The city could then build a hydroelectric plant building to generate electricity from this improvement (potentially having a couple of dams in the city ring could then provide multiple counts of power). Taking this idea to the other energy forms, solar collectors, windmills (maybe also nuclear reactors and coal furnaces?) could all be changed linked to this central building that could generate multiple power counts for all of them.

If it's easy to track what's downstream from a tile (as opposed to upstream), I think that would fit flood prevention. Dam improvements should only prevent flooding downstream from them.
 
Power shortages maybe could be handled by an unhappiness penalty (eg 2/shortfall) rather than picking an industry that doesn't work. This will feedback into stability and such. Can you destroy/relocate power industries, this could lead into a permanent death spiral if you can't.
 
If Levees are going to be the way we control flooding, maybe that should be their main effect, rather than giving tons of production on top of it? They're already a very, very strong building for their era, and they just keep getting better as you industrialize. Maybe replace the per-tile benefit with just a flat +3 or so prod? Or they could only benefit watermills? Just something to tone them down a bit if they get an additional effect.

I like this idea.
I feel that levees are waaaay too powerful in various regions on the map, even after the cost nerf.
 
Here are the options that I like:
1. Increase production cost of the hydro power plant. This would be for game balance and also to represent the significant construction effort. Also, the dam can only be constructed if you meet certain terrain requirements. A separate building, something like a levee, can be constructed to bypass the terrain requirement, but this building should also have a significant production cost.
2. The hydro power plant should have a relatively high chance of self-destruction. This would destroy the building and also create temporary flood tiles similar to nuclear fallout. The floods might go away on their own or require a worker to clean it up. Note that hydro dams/plants have failed much more often than nuclear plants in real life.

Here is a summary of the different power options:
Fossil Fuels: Low production cost to build, most reliable, requires a specific fuel resource, and creates pollution.
Hydro: Highest production cost to build, most prone to disaster (but the cleanup is easy), requires a specific terrain setup (or another building to bypass), and creates no pollution.
Nuclear: Moderate production cost to build, some disaster risk (cleanup is hard), requires the most advanced technology and a specific fuel resource, and creates some pollution.

3. I like the idea of using a terrain improvement to tie into the hydro power system. It would create an interesting choice where you would have to give up a city tile in order to get power. It would make it feel much more unique compared to the other electricity options, and it is a good representation of reality because hydro is dependent on the terrain. However, it is unclear if the AI would be able to use this correctly, so ultimately this option might be more of a pipe dream.
 
Here are the options that I like:
1. Increase production cost of the hydro power plant. This would be for game balance and also to represent the significant construction effort. Also, the dam can only be constructed if you meet certain terrain requirements. A separate building, something like a levee, can be constructed to bypass the terrain requirement, but this building should also have a significant production cost.
2. The hydro power plant should have a relatively high chance of self-destruction. This would destroy the building and also create temporary flood tiles similar to nuclear fallout. The floods might go away on their own or require a worker to clean it up. Note that hydro dams/plants have failed much more often than nuclear plants in real life.

Here is a summary of the different power options:
Fossil Fuels: Low production cost to build, most reliable, requires a specific fuel resource, and creates pollution.
Hydro: Highest production cost to build, most prone to disaster (but the cleanup is easy), requires a specific terrain setup (or another building to bypass), and creates no pollution.
Nuclear: Moderate production cost to build, some disaster risk (cleanup is hard), requires the most advanced technology and a specific fuel resource, and creates some pollution.

3. I like the idea of using a terrain improvement to tie into the hydro power system. It would create an interesting choice where you would have to give up a city tile in order to get power. It would make it feel much more unique compared to the other electricity options, and it is a good representation of reality because hydro is dependent on the terrain. However, it is unclear if the AI would be able to use this correctly, so ultimately this option might be more of a pipe dream.

On nuclear I'd advocate for an option for a thorium fuel cycle development as well as the current, ingame Uranium fuel cycle. The Uranium fuel cycle is an artifact of weapons production. Thorium is on the other hand less dangerous and can't cause meltdowns in addition to having decay products that span only hundreds of years. Thorium based nuclear power has been possible since the 1940's just never developed because it cant make nukes. I think it would be a nice option for none Uranium civs to get access to nuclear power if they develop it.
 
Levee should only give hammers to the tiles adjacent to it's city, not the whole big cross.
Hydro Plant could require watermill and lake or mountain in city radius.
 
Levees could also be changed to only affect the tiles bordering the river the city is actually at. As per the "determine river connections" logic I was talking to above. It would make sense logically, take care of most of the overpowered city sites with Levees and bring its power back to roughly where it is in base BtS.
 
tbh I don't even know what a levee is, why it gives production, and why it is included in civ4 as an important building. I don't think we even have a translation for that word in Turkish and I have never seen one I guess (?)
are they really important in western architecture/industry?

I can understand something like wharf giving commerce, but levees never made sense to me personally and I wouldn't miss them if they were completely removed.

We already have watermills as a source of production from the rivers which makes more sense universally I guess.
 
Top Bottom