News:

Simutrans Wiki Manual
The official on-line manual for Simutrans. Read and contribute.

Rivers development

Started by Fabio, January 19, 2009, 06:49:21 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Fabio

I want to revive this issue, now that there are many patchers. i would look at it myself, if i only had a little knowledge about C/C++.

I believe rivers would add some more realism and also some interesting challamges for the gameplay.

Rivers could be canals with a lower weight allowed. They could be built at the beginning of the game, BEFORE cities. Once the player sets a number of rivers in the new world dialogue, the program could randomly select n pairs of tiles, one on the shore and one on a higher level of ground. A waybuilder (maybe recycling the one for intercity roads) could try to connect the two tiles, favouring more bends. From the shore to the source, the path should be forced to go horizontal OR to climb, never to go down.
Additionally, for every tile on the shoreline, there could be more (2 op to 4) tiles on higher grounds and the river could split in different affluents at random points of its path. the river would be owned by the public player and could be upgraded to channel by the players.

Gameplay impact:
- a challange for the player to cross a new kind of natural obstacle.
- an opportunity, at the beginning of the game, to exploit natural routes using low weight and low speed barges.

Dwachs

One can even include some rain estimations to let rivers grow from the mountains (see the 'equatorial wind' topic).

One important thing that has to be dealt with:
What happens if the user changes slopes near river tiles? are such changes allowed at all?
Parsley, sage, rosemary, and maggikraut.

Fabio

there have been complex discussions on the two previous forums. But all the time rivers have been deemed as too complex and dumped.

my favourite choice, now, would be a static way object (waytype=water), which would imply easier coding and known results.

the rain estimations could influence its source tile and its path. maybe rivers could be forbidden at all in deserts and more likely in such climates as tropical ones. Also the size (graphical, but which could have different max weight and max speed) could vary with the path and the climate. but i believe this should be further tweaks.

IMHO the priority would be a waybuilder (which at the beginning could use normal canals (waytype=water).

vilvoh

Well, as far as I know, the current road system sets a max weight and speed for each road type so why not implementing the same system to rivers?

Escala Real...a blog about Simutrans in Spanish...

Fabio

I think the weight are now for all waytypes. if not, canals (and rivers) would definitely need it (e.g. to prevent/discourage big oil tankers to go through rivers/canals.

Also, rivers would be a help for the player at the start of the game, as they could use them for small barges. But later in the game, they would probably need to upgrade part of the river to a wider canal size, to allow bigger barges and higher speeds.

The Hood

I totally support this idea.  I have long hoped for a system where rivers can be used like very basic canals which were built on map-generation.  If possible I would also ask:
- That rivers were quite curvy, encouraging people to build short-cut canals early in the game
- That cities were generated on rivers preferentially at the start of the game.
- That rivers can be upgraded to higher capacity canals by the player.

Hopefully this isn't too hard!

AP

#6
Several things come to mind:

Rivers should be able to have a "source" on-map. That is, just start from nothing at a high elevation. No requirement to run across the entire map or something.

Elevation needs careful handling. I think rivers should be lower than the rest of the map (unlike canals say) by 1 tile. This means, realistically, there is no need for little hump-back railway bridges all over the place (slowing my trains down!) - they need to be able to be crossed on the level.

Is it possible to code them so that the max speed when moving against the flow is slower than the max speed moving with the flow? I mean, if the river has a source, can it know which way down is?

You'd need a "lake" feature in case the map generates a river flowing into an endorheic basin - a low area with no  possible outflow (e.g the Caspian Sea is such a lake).

It would be nice if rivers could be made to branch off, if confluences occured naturally after every n tiles (give or take), so on a large map you'd have a river with several tributaries. A crude natural canal network.

I assume I'm not the only one who would start wanting wherries and such in-game?

The Hood

wherries are planned for PakBritain, but not in the next release!

emaxectranspoorte

#8
More things need looking for, in my humble opinion: :)

1. The differences between the colours changes between sea and rivers (seas are normally green of colour, rivers are blue)
2. Smaller rivers may be called streams (with smaller weight capacity for ships).
3. Speaking of smaller to medium wheight capacity, in bigger and/or wider and/or deeper river canals, should not matter that much for ships with a smaller to medium wheight capacity. (just like bigger ships don't really matter that much with the sea in terms of wheight (with or without carrying a load (passangers and/or  mail and/or goods): for example: the Batillus Supertanker Add-On for sea usage only).
:-\

EDIT: I have forgotten, sorry, since there's going to be differentiation in between different types of rivers (like mountainous and plains, for example, (there may be more, but I can't think of any more at this time), we could even include more new industry chains, and also improvements to older industry chains (for river plains), as well (for example: irrigated (one or two tiles near a river) grain farms produce more goods).

EDIT2:  ??? In tropical climates there should be no rivers? :o I know that in the deserts maybe there shoudn't be any rivers, and definitely no streams. But not in tropical climates? :o I mean, there are rivers in, for example, South America, right? :-\

EDIT3: Fabio and AP, do you also mean deltas near the sea, not just river tributaries? :-\




jamespetts

Rivers would indeed be excellent from a gameplay point of view, and would make bridges far more useful. They would really make a difference.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

emaxectranspoorte

#10
Are you reffering to diversifying bridge differences in between sea and/or rivers, if you don't mind me asking? :-\

EDIT: You are quite right, James. :)

vilvoh

Quote from: emaxectranspoorte on January 19, 2009, 02:20:18 PM
we could even include more new industry chains, and also improvements to older industry chains, as well (for example: irrigated (one or two tiles near a river) grain farms produce more goods).

That's very interesting because there're a lot of old industries from 1900 and earlier that depend on water power (mills), and transporting goods by rivers was a very common mean in the past (wood, stone, sand, salt, etc..)

Quote from: emaxectranspoorte on January 19, 2009, 02:20:18 PM
EDIT2:  ??? In tropical climates there should be no rivers? :o I know that in the deserts maybe there shoudn't be any rivers, and definitely no streams. But not in tropical climates? :o I mean, there are rivers in, for example, South America, right? :-\

I guess you don't know Amazonas (the second largest river on earth) and Orinoco....  ::)....The Nilo is in a tropical climate too (I would say desert climate)
So the veredict is: yes, there must be rivers in tropical climates and probably they will be the largest of all climates.

Escala Real...a blog about Simutrans in Spanish...

emaxectranspoorte

#12
Thank you for considering what I thought about, vilvoh. :)

Quote from: vilvoh on January 19, 2009, 05:00:51 PM
That's very interesting because there're a lot of old industries from 1900 and earlier that depend on water power (mills), and transporting goods by rivers was a very common mean in the past (wood, stone, sand, salt, etc..)
Yes, that's correct. I was even thinking of something similar, as well (maybe like some ... kind of older looking assembly facility near the depot, for example, for constructing older type ships from the 1800 to the 1900 era), to carry those types of goods, and even passengers and/or mail.
Quote from: vilvoh on January 19, 2009, 05:00:51 PM
The Nilo is in a tropical climate too (I would say desert climate)
That's what I based my idea about the irrigation of some industries (for example, mills (of any type)). :)

Roads

Whenever I create a new game I go into public service mode and use the terrain tool to make something akin to rivers.  That's how much I like them.  No doubt there are many problems creating them though.  Even advanced as SC4 is, the rivers are not very realistic.  From what I've seen and understand about heightmaps, water has to be no higher than altitude zero.  That situation created some very nice looking cliffs in SC4 but unfortunately does not allow for realistic water wheels since there is no such thing as "fall."

I suggested in the "equatorial wind" thread that perhaps rivers could be painted on like houses, etc.  VS did not reply to that suggestion so I don't know if he thought it was too stupid or is still considering it.  I do think it is possible that some of these terrific artists could paint some river tiles - reference how great the fish ponds look.  Maybe we could even have some tiles with water flowing and water falls.  Wouldn't it be possible to do them a similar way as trucks moving or people walking?

At any rate if something like this is done or no, it would still be nice to have some water transportation that is not so expensive early on.  I've found I have to have a pretty big operation to afford anything when it comes to water transportation.

emaxectranspoorte

#14
Quote from: Roads on January 19, 2009, 05:53:40 PM
I do think it is possible that some of these terrific artists could paint some river tiles - reference how great the fish ponds look.  Maybe we could even have some tiles with water flowing and water falls. At any rate if something like this is done or no, it would still be nice to have some water transportation that is not so expensive early on. 
Yes, that's correct. :) Exactly what I was thinking about, as well. We can even have a graphical moving water based objects, to make it even better, IMHO. And add new industries at the bottom of the river flow (say near a city and/or near sea and/or city level), using that river as an irrigation resource (for irrigating farms, adding, maybe, a destination for the bottling industries, etc...) and somewhere during the rivers running we could add (and/or also a source for the bottling industries) a resting place (for example a national park), only with boat transportation to make it more peacefull and somewhere for simuthanians to enjoy a wonderfull time with their families. :)
Quote from: Roads on January 19, 2009, 05:53:40 PM
Wouldn't it be possible to do them a similar way as trucks moving or people walking?
??? Oh ... you mean the river flowing like trucks moving or people walking, right? :-\
Quote from: Roads on January 19, 2009, 05:53:40 PM
I've found I have to have a pretty big operation to afford anything when it comes to water transportation.
Yes, I have found out about that, as well. :) :o
Quote from: AP on January 19, 2009, 10:37:00 AM
I assume I'm not the only one who would start wanting wherries and such in-game?
Yes, you're right AP, you aren't the only one :) Maybe gondolas would be another one, IMHO. :-\

VS

Roads, sorry, I probably overlooked it or did not feel like going on another tangent. The whole weather campaign has two parts: 1) add precipitation as a parameter for every tile and 2) new climates based on that. That said, it would make sense to build upon this further and choose river starting points based on this data. But that would be even part #3... and rather detached from what is discussed here. There is a difference between adding rivers and such into game, and choosing where they start.




My 2c on rivers...

I may be wrong, but there should be more classes of river, according to size. Small streams, rivers, large navigable rivers. It somehow seems wrong to have a river starting at some point and staying the same all the way towards ocean. The last kind should allow for seamless connecting of tiles in the same direction to the side, so that at the last class, river could grow in width to more than one tile.

Cities and industries near rivers would be great, too.

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!

Roads

No need to apologize VS.  I realized at the time it was going off topic and also that you needed to maintain focus on the subject to ever get anything accomplished.

At some point I'm still planning to get in on the programming side of things.  Until then I'll just be happy with whatever is done.

I agree with you totally about rivers.  It is unrealistic and we would likely soon become dissatisfied if the rivers were not part of the total picture and that of course includes streams.  My feeling is that with the graphic engine we have now it might not be possible to incorporate rivers in any way that would not have to be redone later on.  But, who knows, maybe someone will come up with a clever plan...

AP

Quote from: emaxectranspoorte on January 19, 2009, 02:20:18 PM
EDIT3: Fabio and AP, do you also mean deltas near the sea, not just river tributaries? :-\
Deltas and Rias (flooded river valleys) are relatively rare geographic features, actually. Most rivers just have an estuary (ie get gradually wider and more saline as they meet the sea).

So I specifically meant tributaries. The further from the sea, the more branches a river should have to successfully drain its watershed.


The Hood

Practical idea - to make things easiest to implement to start with, could we go with something like the following logic on map creation - then once we have that working in the game to start thinking of other nice things to add in?

1 - generate land with heights / climates as at present
2 - before adding cities, industries, roads etc, add rivers:
     a - pick a square on the terrain on the height 1 or 2 levels down from the highest points
     b - build a "river" waytype (which would be coded like a canal) from that point, making it head only downwards until it reaches the sea or another river.  This process would reject ways which end in depressions with no way to the sea, and would also include some randomness in direction, e.g. 80% chance of carrying on in same direction, 10% chance of turning right, 10% left (this would have to be tested and altered to make it work).
3 - build cities, industries, roads as before

If we try to make things too complicated now from the start, it will be a nightmare for anything to get done, but if we can get something simple then we can take it from there and see what happens.  Anyone who knows code know how hard my logic would be to code?

Spike

Quote from: The Hood on January 20, 2009, 09:25:50 AM
     b - build a "river" waytype (which would be coded like a canal) from that point, making it head only downwards until it reaches the sea or another river.  This process would reject ways which end in depressions with no way to the sea, and would also include some randomness in direction

It could also fill those depressions, creating a lake, until it "flows over" somewhere, spawning a new river from that point.

I've several times tried to implement this, but always felt too lazy to actually do it. It should work though, without big problems. What stopped me in the past was the lack of riverbed/riverside tiles, and I felt not inspired to draw like 48 new tiles just for the rivers ... nowadays the work could be shared among coders and painters, so it's not so overwhelming anymore.


The Hood

I would be happy to draw rivers, but at present it would be a way down my to do list as I'm concentrating on making a stand-alone PakBritain release.

Spike

Maybe one doesn't need so many tiles anymore nowadays. Shores and climate transitions are calculated from light maps and textures. I have no idea if those code can be employed for rivers, too, but basically it should be able to do it, since shores and riversides are very similar, and water would just be like another ground texture for a climate.

vilvoh

That may be easy to achieve with Blender. A couple of surfaces, with fractal, reflection and transparency to simulate depth. We can make side and center tiles in order to have lakes, not only rivers. So now we only need coders.. ;)

P.S: Wouldn't be possible to use current water tiles? at least in early stages, just for testing proposes.

Escala Real...a blog about Simutrans in Spanish...

The Hood

Why do rivers need separate graphics for shores?  Surely if they are coded as a waytype then they would just need to be drawn in a similar way to roads / canals etc.?

Roads

I have to agree with Hood on this.  When you created what passed for rivers in SC4, the banks of the river looked like normal sloped tiles.  Heck, even in real life the river closest to me has, for the most part no distinguishing characteristic at the bank.  Occasionally there will be a bit of sand or rocky place but that is mostly at a fjord.

It would make the bank look more realistic if the water came only part way up the sloped tile.

Fabio

Quote from: vilvoh on January 20, 2009, 09:59:52 AM
P.S: Wouldn't be possible to use current water tiles? at least in early stages, just for testing proposes.

honestly, i agree. Consistency is important in the way the game looks, IMHO, and having similar graphics for eas, rivers and canals is a pro. and even if they have different textures, it would be important for them to be strictly consistent.

Spike

Quote from: The Hood on January 20, 2009, 11:00:25 AM
Why do rivers need separate graphics for shores?

I imagined riversides less steep than the shore tiles that Simutrans uses. Technically I'd have rivers let be even with the landscape, and just make the graphics so that they look slightly depressed in comparison.

But that's just me. Painters and coders sure will create their own ideas :)

The Hood

Quote from: Hajo on January 20, 2009, 12:46:07 PM
I imagined riversides less steep than the shore tiles that Simutrans uses. Technically I'd have rivers let be even with the landscape, and just make the graphics so that they look slightly depressed in comparison.

That's exactly what I was thinking.  Apart from in mountains / uplands, most rivers are a similar height to the land around.  And if there is a worry about having to create hump-back bridges for roads/rails to cross rivers, isn't it already possible to have "level crossings" between river and road just like between road and rail?

Fabio

Quote from: Hajo on January 20, 2009, 12:46:07 PM
Technically I'd have rivers let be even with the landscape, and just make the graphics so that they look slightly depressed in comparison.
I personally support this idea.
For the rest, their behaviour could be based on canals'.
IMO, the most important thing is to make the routine to draw them well at the beginning of the game. For the rest, i's a matter of pakset.

Talking of river size, they could start small and sum their size (i would measure this in weight allowed for barges and ships, starting with a mere 2-3 tons and growing bigger). The images could be 3-4: stream (up to 10 t), small (10 to 50 t), medium (50 to 100 t), big (more than 100 t).


Quote from: The Hood on January 20, 2009, 01:49:41 PM
And if there is a worry about having to create hump-back bridges for roads/rails to cross rivers

they would be a natural obstacle for the player to deal with, so it would be very ok.



AP

I made a post on the adjacent thread which has relvence here. I think the river crossings should make use of an on-the-flat type of bridge, to avoid the need to cut a channel into the terrain so the river is lower than the land around.

The bridge should be a variant on the canal lift-bridge-  which is indeed on the level. If the rivers are wider than 1 tile (possible - estuaries etc) then maybe a swing bridge design could be made.


IgorEliezer

I can't write so much.

So, I leave here some samples of estuaries, canyons, rivers and some landscape design using infrastructures in Simutrans:

http://www.racehunter.com/cpg1419/thumbnails.php?album=1

Roads

That is some awesome pics!  Shows what a little imagination can do.  Thanks Igor.

When I suggested that the water only come part way up the sloped tiles I was thinking about those little depressions of 2 or 3, maybe 3 or 4, you sometimes see on the map.  If I imagine these completely filled with water, it seems it would look like just green or gray tiles adjacent to blue tiles.  Of course Hajo's idea of making those adjoining tiles appear depressed somewhat would, I think, be the best looking solution.  I was just thinking about a way to do it without the need for painting more tiles for the shore.

Magic_Gorter

I like those pictures too.

If it's possible to create rivers I think they should start all with the same size(=well). Everytime the river goes down one or mayby two levels the size of the river should become bigger and when growing allowing bigger ships.  This way the river will be bigger when it starts at an higher level.

An other way to get a growing river is became bigger after x tiles (e.g. x=10).

emaxectranspoorte

#33
I like them too. A better realistic improvement for Simutrans rivers. :)

jamespetts

Quote from: IgorTekton on January 20, 2009, 04:42:59 PM
I can't write so much.

So, I leave here some samples of estuaries, canyons, rivers and some landscape design using infrastructures in Simutrans:

http://www.racehunter.com/cpg1419/thumbnails.php?album=1

Very impressive! Now, if only Simutrans could be made to do that automatically, there would be a great many very happy Simutransians :-)
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.