Sign in to follow this  
Etherdrifter

Springs & Streams

Recommended Posts

Something I have always found lacking on wurm the the absence of springs and streams.  So last night, at 3am with a bottle of tequila in my hand I started writing.  I woke up this morning, it actually still makes sense (this might be the hangover but it goes seem a workable mech).


Simply put it adds 1 new tile type and 2 new "wall" types.

New Tile : Spring
Notes : Acts like a normal tile, can be drunk from,  If a channel is made next to it supplies that channel with water.

New Tile : Water Flow/Waterfall
Notes : Natural water flow, this edge tile can be built over, disrupting the flow of water.  Allows the 2 adjoining tiles to be drunk from and also have reeds spread to them/planted next to them.  The waterfall option is just a cosmetic to a very steep drop (>40?)

New Tile : Outlet
Notes : Forms at the coast, this edge tile can be built over.

New Tile : Water Channel
Notes : Same as water flow but cannot be built on, must be destroyed.  Requires 40 digging to construct (simple right click action).


The Rules of Water Flow

1.  Water will only flow to an equal or lower elevation, creating water flows as it does so.
2.  Flow will have the following preferences : Channel, Lowest open, same direction lowest (so if we have a flow from N to S then it will prefer another N to S flow over an E to W flow if both options are present), rnd chance if 2 different direction lowests, equal same direction, rnd chance if 2 different direction equals (will never return to a height node that has 2 flows already).
3.  If water flows from an elevation above water to one below water level an outlet is created.
4.  If the height of corner is changed then any water flows adjacent will recalculate, water flows at one tile per hour to prevent mass recalculations.

This should always generate a flow that heads downhill (flows can stop (we just assume it goes underground for now) if there are no viable moves.

  • Like 3

Share this post


Link to post
Share on other sites

wishes there are 3d water on wurm too.. but I'm guessing there is problems with things like water travel long down that cause lag or something.


Share this post


Link to post
Share on other sites

[16:53:31] You fall into a trance. The vision of slow flowing rivers calms your mind.


+1


Edited by silakka

Share this post


Link to post
Share on other sites

I like the idea, I would add to the channel locks so people can overcome height differences.


 


However I think creating rivers takes a lot of developping resources and it is hard to guess the impact on the current maps.


Share this post


Link to post
Share on other sites

Although this would be awesome, Wurm's physics still have ways to go before we get to this point (if we ever).


Share this post


Link to post
Share on other sites

Although this would be awesome, Wurm's physics still have ways to go before we get to this point (if we ever).

 

There are no physics, it is changing the properties of a tile like making it grass or a tree or dirt, then like foraging or botanising you get water instead of resources.

Share this post


Link to post
Share on other sites

There are no physics, it is changing the properties of a tile like making it grass or a tree or dirt, then like foraging or botanising you get water instead of resources.

Obviously you didn't read the part about water flowing... That requires physics.

Share this post


Link to post
Share on other sites

Obviously you didn't read the part about water flowing... That requires physics.

 

How are you defining "physics"? Because as a game designer/programmer myself... I don't see them in the OP.

Share this post


Link to post
Share on other sites

The mechanic for telling if a tile is higher than a tile next to it (at least along a tile border) is already in place.  Thus the "physics" of "flow" is actually just using this mech.  The new mech is simply a the rules of preference.


Share this post


Link to post
Share on other sites

Obviously you didn't read the part about water flowing... That requires physics.

 

Animated images like a GIF? The slopes of the tile will tell it which texture to display.

Share this post


Link to post
Share on other sites

Not exactly physics, but a ton of server calculations for the fake "gravity"

Dropping a dirt could easily change hundreds of tiles with that system.

Share this post


Link to post
Share on other sites

I thought lava already flows down hill.

 

incredibly slow and in "ticks"  It is not a fluid dynamic.

 

The way the OP describes it... It would be extremely exploitable and a player could convert all tiles of a map quickly to "water" tiles by raising a spring above the height of towns/mountains.

 

There is a reason Lava flows incredibly slowly ;)

Share this post


Link to post
Share on other sites

You'd need lots of channels to do that and also carefully manage your gradients.  It would be hard work to do but possible yes.  Remember though that from a node water will only "flow" downwards in one direction, so this kind of project would involve the kind of extensive terraforming that makes digging a canal feel like a holiday.


Also changing one tile could potentially alter hundreds of other tiles however "If the height of corner is changed then any water flows adjacent will recalculate, water flows at one tile per hour to prevent mass recalculations."

Poorly worded (blame the hangover) but essentially waterways update slowly so if a big change happens upstream it will take time to filter downstream.  It won't be "100 tile updates per dig".

Share this post


Link to post
Share on other sites

You'd need lots of channels to do that and also carefully manage your gradients.  It would be hard work to do but possible yes.  Remember though that from a node water will only "flow" downwards in one direction, so this kind of project would involve the kind of extensive terraforming that makes digging a canal feel like a holiday.

Also changing one tile could potentially alter hundreds of other tiles however "If the height of corner is changed then any water flows adjacent will recalculate, water flows at one tile per hour to prevent mass recalculations."

Poorly worded (blame the hangover) but essentially waterways update slowly so if a big change happens upstream it will take time to filter downstream.  It won't be "100 tile updates per dig".

 

 

And how do you code 2-3 or even 4 "nodes" converging on one tile? And if I divert the course of a 1,000 tile "river"  How does the end tile know it doesn't have a "source" node anymore? and the 999 tiles inbetween it?  Does it take 1000 hours for the last tile to update?

Edited by Jarosz

Share this post


Link to post
Share on other sites

Throw out as many complications as you like, but I don't see how the devs couldn't work out a solution if they wanted to. The game world feels "wrong" without any rivers, streams, or higher-elevation lakes and I certainly hope that some sort of implementation will happen in the not-too-distant future to fix this, even if it's just baked into the maps and even only on new maps if it must be so.


Edited by Tuhljin

Share this post


Link to post
Share on other sites

One doesnt need to perfectly emulate flowing liquids and the associated properties and physics to simulate flowing water. As has been discussed there are various means to "cheat" at least aesthetically.

Sort of akin to fire and its mechanics. Trying to recreate the mere visual of fire in cgi is almost impossible. Closest people come are a grab bag of visual tricks and cheats, and a whole hell alot of processing power. Makers' "Behind the Scenes" discussion on the first Ghostrider movie is a good example.

Real question is how crucial is it to the Devs' collective vision, present and future. Where does it fit in the development timeline?

Aesthetically it would be nice. Gameplay wise... would the work involved really have a similar impact to gameplay? For a sandbox, the "water" would have to at least simulate some degree of free flow in terms of gravity. Not to mention updating to changes some shovel-crazed maniac might make.

Added advantage is the same mechanics can be attributed to lava with a few tweaks to speed and the like.

Edited by Klaa

Share this post


Link to post
Share on other sites

One doesnt need to perfectly emulate flowing liquids and the associated properties and physics to simulate flowing water. As has been discussed there are various means to "cheat" at least aesthetically.

Sort of akin to fire and its mechanics. Trying to recreate the mere visual of fire in cgi is almost impossible. Closest people come are a grab bag of visual tricks and cheats, and a whole hell alot of processing power. Makers' "Behind the Scenes" discussion on the first Ghostrider movie is a good example.

Real question is how crucial is it to the Devs' collective vision, present and future. Where does it fit in the development timeline?

Aesthetically it would be nice. Gameplay wise... would the work involved really have a similar impact to gameplay? For a sandbox, the "water" would have to at least simulate some degree of free flow in terms of gravity. Not to mention updating to changes some shovel-crazed maniac might make.

Added advantage is the same mechanics can be attributed to lava with a few tweaks to speed and the like.

 

whats the point of having flowing water, if you can't swim in it or float your boat down stream in it?  I mean... who doesn't like taken a few brewskies down a river in summer?

If its poorly added to the game, its existence could very well be more negative than positive.

 

If players really wanted to divert water simply for drinking purposes... Then plumbing is a much better, and wurm friendly idea that doesn't interfere with things like leading animals over tiles that "look different" than normal land.

Change everything in the OP suggestion from "water channel" to "copper piping" and it becomes a good idea that solves the OP "drink from" idea.

Share this post


Link to post
Share on other sites

And how do you code 2-3 or even 4 "nodes" converging on one tile? And if I divert the course of a 1,000 tile "river"  How does the end tile know it doesn't have a "source" node anymore? and the 999 tiles inbetween it?  Does it take 1000 hours for the last tile to update?

If we use tile corners as nodes and tile slopes as edges along which the river travels, we're down to basic path algorithms when determining the course of a river. If we want to determine the path of a river, we can simply use tile border slopes to determine the path(s) of least resistance and construct path trees (with their root at source tiles). These path trees can then be stored and used when rendering water. Modeling the amounts of flowing water requires a new layer of information that holds the amount of water currently flowing through any given tile corner. So similar to a terrain layer but with the heightmap representing water flow rather than dirt. If paths converge, the flow values for the nodes gets added together, which will affect all nodes "downstream". We don't need to model a constant propagation of water down the rivers since we can assume the flow is constant until any changes are made to the tiles near the river path trees stored in the database. Changes to the tiles near a river flow would call for the path trees to be recalculated for all nodes below the node of the change. The live recalculations could be done with a target pace of about 1 node per second, so if you cut off flow at one node all nodes below that one will have their flow set to 0 one after another, from root to leaf nodes.

All that said, I don't think rivers are necessarily a good idea. We're years into the game now with most servers being built up and having hundreds of deeds. Randomly adding rivers flowing down the lands could be problematic. I don't think too many mayors would be happy finding their bedroom flooded thanks to the terrain layout happening to channel a river into their house. And, as has been pointed out, the benefit of a system like this depends on how practical it is to implement it sufficiently well into the world.

Edited by EliasTheCrimson

Share this post


Link to post
Share on other sites

If we use tile corners as nodes and tile slopes as edges along which the river travels, we're down to basic path algorithms when determining the course of a river. If we want to determine the path of a river, we can simply use tile border slopes to determine the path(s) of least resistance and construct path trees (with their root at source tiles). These path trees can then be stored and used when rendering water. Modeling the amounts of flowing water requires a new layer of information that holds the amount of water currently flowing through any given tile corner. So similar to a terrain layer but with the heightmap representing water flow rather than dirt. If paths converge, the flow values for the nodes gets added together, which will affect all nodes "downstream". We don't need to model a constant propagation of water down the rivers since we can assume the flow is constant until any changes are made to the tiles near the river path trees stored in the database. Changes to the tiles near a river flow would call for the path trees to be recalculated for all nodes below the node of the change. The live recalculations could be done with a target pace of about 1 node per second, so if you cut off flow at one node all nodes below that one will have their flow set to 0 one after another, from root to leaf nodes.

All that said, I don't think rivers are necessarily a good idea. We're years into the game now with most servers being built up and having hundreds of deeds. Randomly adding rivers flowing down the lands could be problematic. I don't think too many mayors would be happy finding their bedroom flooded thanks to the terrain layout happening to channel a river into their house. And, as has been pointed out, the benefit of a system like this depends on how practical it is to implement it sufficiently well into the world.

 

 

Your second paragraph explains my concerns well ;)

 

Also, the mechanics are 1 thing, the "visuals" are another.  Does the river carve out land as to look like a normal river would snaking through a depressed channel in the landscape?  Or is it simply a blue tile?  Does the tile turn translucent?

simply having a blue tile seems doesn't seem at all interesting... and having 1,000s of "river sprite" tiles rendering some hokey looped animation sounds like a lag fest to me.

 

Its one thing to code in a water level that has full map physics and exists as a simply client render... its another to try to tie in a physical water snake that relies heavily on server resources...

 

As far as I am concerned... there is no way of doing it currently without making wurm look worse, or effecting game play negatively.

 

Maybe in Wurm II when devs decided to implement/design a proper 3D + Physics engine.  The current Wurm Engine just doesn't allow for it to be value added.

Share this post


Link to post
Share on other sites

Ship travel isnt dependent on the water level persay. Ive seen a few knarr on the test server being used as landships, even going up mountains and the like.

Overall it depends on how things are implemented, and if it looks passable.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this