COMMUNITY - FORUMS - GENERAL DISCUSSION
The Shiny glint of sunlight off the water
+43

Hail Elyrians,

Over the past few shinies, I've been talking about map making a lot. As you can probably imagine, it's on my mind as we move to complete Domain and Settlement Selection (while at the same time literally generating the game worlds you will experience when you play). One of the more vexing problems is how to deal with water.

If you paid attention to the Domain & Settlement Selection channel in our discord server, you have probably seen me talk about how Caspian has been working to tune the water simulation so that we can properly account for the various water features of each biome.

One aspect of that process is accounting for surface water. In a nutshell: Given the topology of a region, the rainfall it receives, and the quality of the soil, how does water flow and accumulate across its surface to form features like rivers and lakes?

Even more succinctly: Where does the water go when it rains in each biome?

We don't answer that question predictively, we actually simulate rainfall and water accumulation across the surface of the continent and watch where the water goes to gain an understanding of both how the water flows across the surface, and where it accumulates.

Some games have actually done this on a small scale before. One example that comes to mind is the unparalleled Dwarf Fortress which simulates the flow of water across its game's surface, though admittedly at a pretty coarse level. However, I don't think I've ever heard of a game that attempts this at the scope we are.

So, for example, here's how our test map looks at the first moment of the sim, when a year's worth of rainfall has just been dumped across the entire map:


Now, take in mind that what you're looking at here is a 2048x2048 image. I took that from the 4096x4096 debug mask that our sim spits out at the end of every iteration but that 4096x4096 map? That is, itself, a condensed version of the "full-scale" 65k by 65k dataset that we use for water simulation.

In other words, you're actually seeing only 1/32 of the overall data the sim itself is producing.

The simulation actually spits out two maps ever iteration, one that visualizes the flow of water (water that doesn't move or areas with no water appear darker than area with lots of water moving through them), and another that visualizes the accumulation of water (Areas with more water appear whiter and brighter than areas with little or no water).

Here's the water accumulation map at the start of the sim:


It appears nice and bright because a year's worth of rain has all been dumped on the map at once. So there's a LOT of water. That's why the map looks kind of flat on iteration 1.

But, if we fast forward a little, you can start to get an idea of what the water is doing on the continent. For example, if we look at the flow map we can begin to see where areas of true flow -- the likely locations of rivers and other flowing water features -- can be found:


Likewise, if we take a look at the water accumulation visualization we can begin to get a much better sense of where the water collects and pools:


These images from the first and the 36th iteration of the sim, but we actually run several hundred iterations of the sim to get a complete picture. Actually we run so many iterations of the sim to get it down to the right level of specificity that the OS has a tendency to deprioritize the running process, which is incredibly annoying - it makes the whole thing take longer, damnit! ;)

But, that irksome problem aside, the resulting data tells the world where the permanent rivers are (and where the wadis are too, though we don't actually simulate those in the live game), how fast they flow, how deep they get at each point, and where they pool and collect into ponds and rivers.

Now, that data gets analyzed pretty heavily by the system and any rivers or streams that analysis step deems "not active enough" or any lake or pond that isn't "deep enough" or large enough will be marked as "Do not show in-game," so don't expect to see quite as many rivers and lakes as you may see in these images. But, and this one of the things I love about this approach, we can say with some amount of authority that our rivers, streams, lakes and ponds are all real. Every rapids, every waterfall, that exists in Elyria does so because it would be there if the world were a physical place.

Nothing is placed simply because it looks cool (though, I'll admit, they will look cool) and that's because Elyria is more than just a "level" or a "Zone" -- Elyria is a world. Everything is there because it has a reason to be there, and a part to play in the massive clockwork mechanism that brings that world to life.

Stay Shiny friends!


  • Snipehunter
6/7/2019 7:23:13 AM #16
+0

4k Maps ... wooooow


6/7/2019 7:34:36 AM #17
-1

Water is overrated

Stay dry everyone!

6/7/2019 9:36:14 AM #18
+0

Interesting, and it leads me to think.

What does it mean to fine tune the water simulation for D&SS?

What is the goal of fine tuning?

Personally, when I look at those pictures, I just can't process that volume of information in them and imagine how to make the simulation work "better".


Never argue with an idiot, cuz he will drag you down to his level and beat you with experience.

Vice mayor of Lighthalzen

6/7/2019 10:40:00 AM #19
+1

Posted By Snipehunter at 02:08 AM - Fri Jun 07 2019

Want to see the 4k Images?

No, I want to see the 65k images silly. 👀


[EU] The Town of Farwatch Selene (Hrothi) - Demalion/Dae Erath/Ash County - Masonry, Scouting/Cartography Animal Husbandry, Agriculture Smithing, Tailoring. Light RP, Casual & PvP Welcome. 2400EP.

6/7/2019 1:44:12 PM #20
+1

Very interesting. Thanks for sharing!

Does this imply that water physics will be in the game after all? Or if not, what is the benefit to simulating water flow to this degree? Will we be able to notice the difference somehow?

Just curious.


6/7/2019 3:25:11 PM #21
+1

It'd be nuts if they continued the water simulation in game, but at the same time.... I'd love it. This in particular (if they really do simulate it in game) would mean that city planning would be ultra complicated. Building development and roadways would create impervious surfaces that would destroy the natural flow of water and may cause erosion at some locations either destroying the natural surroundings or making floods in the city/village (hence why you see massive retention ponds near new major developing areas.


6/7/2019 5:12:22 PM #22
+2

Posted By Jouten at 07:25 AM - Fri Jun 07 2019

It'd be nuts if they continued the water simulation in game, but at the same time.... I'd love it. This in particular (if they really do simulate it in game) would mean that city planning would be ultra complicated. Building development and roadways would create impervious surfaces that would destroy the natural flow of water and may cause erosion at some locations either destroying the natural surroundings or making floods in the city/village (hence why you see massive retention ponds near new major developing areas.

If they ran a sim every month or so, that could capture some interesting data, based on the changes us filthy players have done to the world, that would potentially give us an idea what we are doing to the world.

I wouldn't want them running a real-time water simulation but it could very well be something that they should do periodically so they can update some ecological models for the world.


6/7/2019 6:02:58 PM #23
+0

In the wise words of George Takei, Oh my!


6/7/2019 8:52:54 PM #24
+2

While all this sounds and looks great... At this rate and level of details, do we ever get a game? You have still 100+ professions to make interesting, mass combat, background simulation and million other things among other million things. You really need to learn to draw a line somewhere... If you fine tune water flows for weeks. How long will it take with other things? 20 years?

Like I said before... SBS - you can't revolutionarize all gameplay mechanics. It's just not possible. I hope you succeed, but my hopes have been dying bit by bit after each update during last year or so...


Backer #12. Friend code: 9B7EDE.

Mayor of Willowhaven - Crossstone - Whiteraven Rock - Tryggr

Join Whiteraven Rock Discord (https://discord.gg/ppTBAqs)

6/7/2019 10:16:58 PM #25
+1

Great shiny.

And was it only me who had to google "Dwarf Fortress"?


6/8/2019 8:55:48 AM #26
-11

sigh

1) 99.9% of the players aren't going to give af about this stuff. Even if they do, they can't 'see' it because they are too close. Forest from the trees kind of deal.

2) If they give this sim cpu resources during run time instead of other far more important systems, they are on some serious crack.

3) Just about every MMO has tried to include a sim system of one type or another, going all the way back to Ultima Online. They all ended up removing them, all citing reasons around #1.

4) Now that we are finally getting some real info about development of the maps -- and it is nice to get it -- it just proves how far off they were from what we were being led to believe. Not a good way to care for the hands feeding you, Caspian.


6/11/2019 12:51:20 PM #27
+0

Thanks, Snipe! I find myself just returning to look over shinies weekly and they're still awesome.


-Baron Wayland Ade'Braeden, Judicator of IronCall, Duchy of the High Seas. ][Imgur Friend Code: 2D1330

Please join our discord if you have any questions or are looking to join our town!

https://discord.gg/pq5WFAV

6/12/2019 9:04:17 AM #28
-6

Not really impressed, a proper wold gen involves erosion to sculpt the land forms and create the rivers simultaneously with the drainage topography. SBS clearly generated terrain first without the influence of erosion and then tries to model water flow with no alteration of terrain.

That's causing far too many parallel down slope rivulets and a complete lack of major river confluences or proper deltas and alluvial fans. It's fairly obvious that the rivers their generating don't really 'Go' anywhere because the underlying terrain dose not guide them to the sea. A whole lot of code seems to have been thrown at the problem for very little verisimilitude to an actual world. That goes for virtually everything we have ever been show, shorelines, mountains, rivers, political borders etc, nothing looks natural.

I suspect the root problem is that they starting with top down noise based generation and when that looks bad more steps are piled on to massage it into looking like it's a bottom up simulation, but that's just throwing good money after bad. The proper way to do this is a full bottom up simulation from starting with plate tectonics all the way to settlement growth.

But SBS keeps locking itself into the earlier poor code output by releasing partial maps, having us pick things etc. Now as they try to do the 'final touches' the legacy outputs are constraining everything and producing GIGO results.

Use what ever you get out of this for Alpha and Beta but frankly we should do the whole map gen over again backing up as far as the players are willing for actual final game.


Seneschal for the Hrothi County of Iskar, Recruiter for the Duchy of Aritaur

https://discord.gg/qRQ3Zj6

6/12/2019 5:15:01 PM #29
+9

Posted By Lodrig at 02:04 AM - Wed Jun 12 2019

Not really impressed, a proper wold gen involves erosion to sculpt the land forms and create the rivers simultaneously with the drainage topography. SBS clearly generated terrain first without the influence of erosion and then tries to model water flow with no alteration of terrain.

Whoah, hold up. No one said that. There is a difference between "We don't use this process for that" and "we don't do that at all" - and the space between them seems to be where you leapt to the wrong conclusion. If one looks at the coastline of the images we've shared, it should be pretty obvious that erosion has, in fact, been factored into the process. If that isn't clearly seen, then please allow me to say it explicitly: Erosion has been factored into the world generation process. In fact, this water sim doesn't touch the world until after erosion has been factored into the terrain data.

At a certain point in the process, we "freeze" the terrain - it becomes static data, a heightfield, that we then use in further world generation steps. From then on, the terrain is not malleable and cannot be terraformed. Once the terrain is static like this, we then model flow and water storage conditions for the static terrain data, that's the water sim we're talking about here.

Hope that helps! :)


  • Snipehunter
6/12/2019 7:32:47 PM #30
+0

Posted By Snipehunter at 10:15 AM - Wed Jun 12 2019

Posted By Lodrig at 02:04 AM - Wed Jun 12 2019

Not really impressed, a proper wold gen involves erosion to sculpt the land forms and create the rivers simultaneously with the drainage topography. SBS clearly generated terrain first without the influence of erosion and then tries to model water flow with no alteration of terrain.

Whoah, hold up. No one said that. There is a difference between "We don't use this process for that" and "we don't do that at all" - and the space between them seems to be where you leapt to the wrong conclusion. If one looks at the coastline of the images we've shared, it should be pretty obvious that erosion has, in fact, been factored into the process. If that isn't clearly seen, then please allow me to say it explicitly: Erosion has been factored into the world generation process. In fact, this water sim doesn't touch the world until after erosion has been factored into the terrain data.

At a certain point in the process, we "freeze" the terrain - it becomes static data, a heightfield, that we then use in further world generation steps. From then on, the terrain is not malleable and cannot be terraformed. Once the terrain is static like this, we then model flow and water storage conditions for the static terrain data, that's the water sim we're talking about here.

Hope that helps! :)

I was wondering this. Does that mean we will see some larger examples of erosion such as canyons or glacial erosion?


NA-W, Governor of Ogralyn

Log in to post