Jump to content

Water, Water, Everywhere


ScubaSteve
 Share

Recommended Posts

What I am proposing is a new system for water broken up into three major parts, the addition of water salinity to bodies of water, the existence of still, flowing, and rapid water tiles, and the introduction of mechanical power systems that can use flowing and rapid water tiles to generate wind-independent force.

 

Salinity Mechanics

Fresh water is drinkable and identical to the regular water ingame.  No changes made to the recipes or mechanics. 

Brackish water is the result of fresh and salty water mixing, and is useful for neither watering crops, nor for making pickling brine or refining into salt.

Salty water is non-drinkable, but can be refined via a concentration furnace into salt powder.  It cannot be placed as a tile of water, only placed into barrels or other liquid holding vessels (no 3 square wide infinite salt ponds).  This incentivizes people making a separate salt works away from their main base, and improves immersion.  Also the possibility of salt water only plants growing in it?  Seaweeds maybe?

Dead Sea water produces twice the salt as salty water, and can be used directly as pickling brine solution.  Like salt water, it cannot be placed as a tile of water, only placed into barrels or other liquid holding vessels.

 

The concentration furnace is a multi-block item similar to the cementation coffin for making steel.  The coffin is made from copper plates in the crafting menu, and each half uses 7 plates.  The firebox is made from firebricks and uses 8 bricks per section.  The firebox is placed first, then the two halves of the concentrating tub on top of it.  Pour up to 200 liters (20 buckets worth?) of salty or dead sea water, fill the firebox with 40 fuel items and light it, and over one ingame day, the water will be concentrated into salt.  200 liters of salty water produces 100 units of salt.  200 liters of dead sea water produce 200 units of salt.

 

 

Worldgen changes

During worldgen, each body of water is assigned a salinity, which ranges from fresh, to brackish, to salty, to dead sea.  Fresh, brackish and salty water can be generated anywhere, but the super salty dead sea water only forms in areas over halite deposits in the desert biomes.

During worldgen, the heights of bodies of water are compared, if some ratio of height to distance is surpassed, a river is created that connects the two, with the width based on the size of the upper body of water.  The river tiles are flagged as ‘flowing water’ and can be used for water wheels.

Waterfalls or cliffs and anywhere where a water source tile travels less than 5 blocks before dropping more than 6 blocks during worldgen are given the ‘rapid’ water flag, and are 3 times as powerful as a flowing water tile.  The single source ‘springs’ commonly found underground would qualify for this.

To prevent trivial cheesing for infinite power, player placed water will always be still, regardless of where it’s placed.  This can open up some griefing possibilities, but a land claim and a box will prevent it.

 

 

Mechanical Power

A waterwheel consists of four major parts, the rotor, the shaft, the end support, and the water wheel itself.

The Rotor is much like the rotor for the windmill, and is where power is outputted from the system and where the rest of the things attach to.  The rotor should have one block of space between the flowing river water, or the vertically falling rapids water.

The shaft connects the rotor and the end support, and is where the water wheels are placed to generate power.  It can be up to 8 units wide to span the largest rivers, but can only handle 250kN of power before being destroyed.

The end support caps off the system and is required to be placed before the water wheel is (due to the large weight of the heavy wooden wheel, and because I think it looks nicer that way)

The water wheel is placed on the shaft last, and if the rotor is positioned correctly, the edge of the water wheel should be submerged in the water, and the whole system should start moving.

A single wheel in a tile of flowing water produces 50kN of force, as much as a 2 sail windmill on a reasonably windy day, enough for a helvehammer or quern without too much issue.

A single wheel in a tile of vertically falling rapid water produces 150kN of force, enough for a helvehammer and a crushing machine.

 

To gate mechanical power further into the metal age, the rotor and end supports use bronze bushings, and each wheel takes two iron wheel hubs to manufacture.  The bushings are made using a half bushing mold.  2 molded half bushings are used along with a log, a chisel and some resin to make the finished bushing.  The iron wheel hubs are iron plates spread into a circle with a hole in the center, and a bolt hole pattern on them.  Easy to make with regular blacksmithing once you have iron.

Getting to bronze and iron in my experience takes about as long as is as much of a time investment as finding, farming and trading for enough linen to make a set of 4 sails, so this seems like a valid cost/benefit tradeoff, or at least something that doesn’t require a large flax farm and 2 ingame years to get to unless you obsessively hunt for flax seeds.

Additionally, this produces much more interesting base selection criteria than ‘find the nicest looking ruins near spawn and rebuild them’ that I see in basically every server I end up playing on.  Flowing water, the need to find a source of fresh water, making a saltworks near a body of salty water, and generally finding cool worldgen terrain features would add a lot of depth past the initial rush to colonize the closest neat looking place near 0,0.

 

I can provide more details or elaborate as needed on any of these sections, or provide examples of specific items.

  • Like 2
  • Amazing! 2
  • Mind=blown 1
Link to comment
Share on other sites

Not sure if i like all the ideas. Would't mind seeing salt water when oceans are introduced. Don´t mind making it unfit for watering and drinking when it's introduced either. Would be nice with brackish water to if it can be rendered in a good way. Do think brackish water should be fit for watering though. The brackish water here in the Baltic sea is totally fit for watering even though it's not fit for drinking. You could ad different sensitivity for different plants, or even have some salt content of the soil, making watering it with brackish water a few times possible, but as salt content in the soil rises it gets unfit for more and more plants, until it´s totally sterile. But that is probably way to complex to generate.

concentration furnaces for getting salt sounds ok, even though i think the output sounds to high. 

I'm thinking if they ad drinkable and undrinkable water they might as well ad murky water i some ponds that needs to be boiled and perhaps even poisonous water that can´t be used anyway.

I would like to see water mills even if i realise the mechanics behind it might be hard to get to work. The idea of "rapid" and "slow" falling water doesn't sound like a good idea. Does the waterblock need to calculate from where it's falling? This is going to be really complex... Or is it just a block that you can place in the middle of a pond? If you build a water canal of water do you need to bring blocks of "falling water" to place at the end of your canal or is

Besides, the direct falling height of a waterfall is not going to determine the energy of the water. A river sinking 150 meters along a 2 kilometers long stretch is going to contain much more energy than a 20 meter waterfall. The amount of water i besides what will determine how much energy the water contains. It´s going to be to complex to calculate and use so i think only one kind of falling water block is meaningful to create.

But there is an other thing i would find interesting if it was added when oceans are added, and that's coastal climate. Playing this game and living close to the coast i was surprised by the large difference in temperature between night and day. Coastal areas could then have a different climate than inland climate, with less difference between night and day temperature, also less difference between summer and winter.

 

 

Link to comment
Share on other sites

4 hours ago, Fredrik Blomquist said:

Not sure if i like all the ideas. Would't mind seeing salt water when oceans are introduced. Don´t mind making it unfit for watering and drinking when it's introduced either. Would be nice with brackish water to if it can be rendered in a good way. Do think brackish water should be fit for watering though. The brackish water here in the Baltic sea is totally fit for watering even though it's not fit for drinking. You could ad different sensitivity for different plants, or even have some salt content of the soil, making watering it with brackish water a few times possible, but as salt content in the soil rises it gets unfit for more and more plants, until it´s totally sterile. But that is probably way to complex to generate.

concentration furnaces for getting salt sounds ok, even though i think the output sounds to high. 

I'm thinking if they ad drinkable and undrinkable water they might as well ad murky water i some ponds that needs to be boiled and perhaps even poisonous water that can´t be used anyway.

I would like to see water mills even if i realise the mechanics behind it might be hard to get to work. The idea of "rapid" and "slow" falling water doesn't sound like a good idea. Does the waterblock need to calculate from where it's falling? This is going to be really complex... Or is it just a block that you can place in the middle of a pond? If you build a water canal of water do you need to bring blocks of "falling water" to place at the end of your canal or is

Besides, the direct falling height of a waterfall is not going to determine the energy of the water. A river sinking 150 meters along a 2 kilometers long stretch is going to contain much more energy than a 20 meter waterfall. The amount of water i besides what will determine how much energy the water contains. It´s going to be to complex to calculate and use so i think only one kind of falling water block is meaningful to create.

But there is an other thing i would find interesting if it was added when oceans are added, and that's coastal climate. Playing this game and living close to the coast i was surprised by the large difference in temperature between night and day. Coastal areas could then have a different climate than inland climate, with less difference between night and day temperature, also less difference between summer and winter.

 

 

The water power mechanics are a compromise between the server catching fire trying to do real-ish time fluid dynamics calcs, the need for players to find instead of create the resources, and a general nod to physics along the way.  Since players can place arbitrary infinite sources of water anywhere they want, it doesn't make sense to let them create a paddle wheel perpetual motion machine with a bucket, a pond, and some random materials.  Thus, doing the calcs in worldgen and making it so any player placed water, regardless of how the ingame water sim makes it flow, is useless for power generation.

As for the 'still', 'flowing' and 'rapid' water types, it's a gross simplification of basic hydrodynamics designed to keep the server from becoming sad, and the coders from going insane when you find out that one specific river gives you infinite power per block....somehow.  On a Ye Olde Tyme water mill sitting directly above a gently moving river, you're only able to capture a tiny portion of the total water power.  If you take that same water mill and use an aqueduct to pour the water over the top, you get a TON more power out of it.  It's a gross simplification, and kinda hacky, but it gives the player two tiers of resources to look for, a chance to actually build useful base stuff underground, and another reason to get excited about seeing a waterfall on a cliff other than 'neat' *takes screenshot*.

Flagging each block with a simple 'no power', 'some power', 'lots of power' flag using some simple and cheap logic during worldgen seemed like the easiest way to do things, but if you wanted to get some more complex hydrodynamic calcs added into worldgen, I bet you could.  Look at the rise:run between the bodies of water, add some noise values, and add a per-block 'power density' to every single block of water in the game.  The issue is to do a proper source->drain hydrodynamic study would be hilariously expensive unless you did some real clever stuff with defining the extant bodies of water and very narrowly defining the rivers before running the hydro calcs on the resulting river.

 

The water salinity and concentration stuff was more or less a starting point.  You can make the system as complex as you like, but those four water types and rough mechanics seemed like a fairly simple way to get salinity in game without going down the dwarf fortress rabbit hole of endlessly adjusting raw values to insure your goat leather jockstrap has the right armor values vs. a pinching attack.

I used the values for the concentrator because the ingame brine recipe is 1 liter of water to 1 unit of salt, which would make sense for the dead sea water to be at.  Half that for regular salt water seemed reasonable.  The speed it refines at, and how much fuel it takes to get that is kinda dealer's choice, salt is useful and needed, but unless you're pickling a LOT of veggies or salting a ton of meat, you don't really need stacks and stacks of it.  It could go either way, honestly.

Link to comment
Share on other sites

9 hours ago, ScubaSteve said:

The water power mechanics are a compromise between the server catching fire trying to do real-ish time fluid dynamics calcs, the need for players to find instead of create the resources, and a general nod to physics along the way.  Since players can place arbitrary infinite sources of water anywhere they want, it doesn't make sense to let them create a paddle wheel perpetual motion machine with a bucket, a pond, and some random materials.  Thus, doing the calcs in worldgen and making it so any player placed water, regardless of how the ingame water sim makes it flow, is useless for power generation.

As for the 'still', 'flowing' and 'rapid' water types, it's a gross simplification of basic hydrodynamics designed to keep the server from becoming sad, and the coders from going insane when you find out that one specific river gives you infinite power per block....somehow.  On a Ye Olde Tyme water mill sitting directly above a gently moving river, you're only able to capture a tiny portion of the total water power.  If you take that same water mill and use an aqueduct to pour the water over the top, you get a TON more power out of it.  It's a gross simplification, and kinda hacky, but it gives the player two tiers of resources to look for, a chance to actually build useful base stuff underground, and another reason to get excited about seeing a waterfall on a cliff other than 'neat' *takes screenshot*.

Flagging each block with a simple 'no power', 'some power', 'lots of power' flag using some simple and cheap logic during worldgen seemed like the easiest way to do things, but if you wanted to get some more complex hydrodynamic calcs added into worldgen, I bet you could.  Look at the rise:run between the bodies of water, add some noise values, and add a per-block 'power density' to every single block of water in the game.  The issue is to do a proper source->drain hydrodynamic study would be hilariously expensive unless you did some real clever stuff with defining the extant bodies of water and very narrowly defining the rivers before running the hydro calcs on the resulting river.

 

The water salinity and concentration stuff was more or less a starting point.  You can make the system as complex as you like, but those four water types and rough mechanics seemed like a fairly simple way to get salinity in game without going down the dwarf fortress rabbit hole of endlessly adjusting raw values to insure your goat leather jockstrap has the right armor values vs. a pinching attack.

I used the values for the concentrator because the ingame brine recipe is 1 liter of water to 1 unit of salt, which would make sense for the dead sea water to be at.  Half that for regular salt water seemed reasonable.  The speed it refines at, and how much fuel it takes to get that is kinda dealer's choice, salt is useful and needed, but unless you're pickling a LOT of veggies or salting a ton of meat, you don't really need stacks and stacks of it.  It could go either way, honestly.

Sorry about my english, i will try and make a readable answer...

Your right about the mill on Ye Olde Tyme. Basically there are two types of mills, overfall and underfall mills (don't know if that's the english term for them), water hitting the wheel from above and water. You got the old small type with horizontal blades as well but we can leave that type, since it works best in small creeks. It might be to complex to introduce different types of mills, one type might anyway be the best way to start. Overfall mils ar definitely more effective than underfall, even if you can improve that mill by building a chanel for the water. But still, its not the height the water walls that's going to be most significant. I could se a point in introducing elevation of the water - falling 90 degrees it gives most energy, and at 45 degrees it gives less, but not sure on how water in this game work right now and if it´s possible.

About brackish water my main concern was how the borders between salt, brackish and fresh water are going to work - are they going to mix when they meet, and what happens when players dig canals between bodies of water, how is world generation going to handle it. If it can work in a nice way, it sounds good to me.

 

Link to comment
Share on other sites

20 hours ago, Fredrik Blomquist said:

Sorry about my english, i will try and make a readable answer...

Your right about the mill on Ye Olde Tyme. Basically there are two types of mills, overfall and underfall mills (don't know if that's the english term for them), water hitting the wheel from above and water. You got the old small type with horizontal blades as well but we can leave that type, since it works best in small creeks. It might be to complex to introduce different types of mills, one type might anyway be the best way to start. Overfall mils ar definitely more effective than underfall, even if you can improve that mill by building a chanel for the water. But still, its not the height the water walls that's going to be most significant. I could se a point in introducing elevation of the water - falling 90 degrees it gives most energy, and at 45 degrees it gives less, but not sure on how water in this game work right now and if it´s possible.

About brackish water my main concern was how the borders between salt, brackish and fresh water are going to work - are they going to mix when they meet, and what happens when players dig canals between bodies of water, how is world generation going to handle it. If it can work in a nice way, it sounds good to me.

 

Yeah, without adding a LOT of water simulation checks and complexity, abstracting away the overfall and underfall mill types seemed like a good compromise between technical accuracy and the combined factors of 'server ticks don't take 12 seconds each' and 'simple, easy to use, easy to understand, and easy to exploit' aspects of water power.  Put the mill on a river of flowing water?  Underfall power tier.  Put the mill in the vertical path of a rapidly flowing waterfall?  Overfall power tier.  And doing it all in worldgen front-loads the calcs in a way that doesn't impact day-to-day play at your base, it just means the server works a bit harder to generate new chunks when you go exploring.

I'd love to have three or four tiers of water power, but just getting A system in place, even if it's incomplete is better than waiting for the perfect solution.

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.