Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

temperature and precipitation does not wrap properly #77

Closed
tibor95 opened this issue Jun 17, 2015 · 31 comments
Closed

temperature and precipitation does not wrap properly #77

tibor95 opened this issue Jun 17, 2015 · 31 comments

Comments

@tibor95
Copy link

tibor95 commented Jun 17, 2015

I am not sure because no artifacts are seen in generated png, but when creating the map I got something like this:
broken_map

See how the ice does not wrap.

Also when I received raw data from program and comparing 0x0 vs 199x199 pixel (mapsize is 200x200) values differ too much:
x y temperature precipitation
0 0 -0.0154863047591 -0.20062381937
199 199 0.110205019679 -0.291956405397

But perhaps the problem is on my side, I dont know...

@psi29a
Copy link
Member

psi29a commented Jun 17, 2015

From what I remember of worldsynth[1], temperature does not wrap around (left to right on x-axis). Weather (wind and rain) precipitation also goes into one direction, which also does not wrap around. It was good enough for giving us seeds for river generation and biome information.

These are things that can be improved on.

[1] Lands and Worldsynth merged to form worldengine.

@tibor95
Copy link
Author

tibor95 commented Jun 17, 2015

OK, then, at least it is not me who is mistaken :)

2015-06-17 14:11 GMT+02:00 Bret Curtis notifications@github.com:

From what I remember of worldsynth, temperature does not wrap around (left
to right on x-axis). Weather (wind and rain) precipitation also goes into
one direction, which also does not wrap around. It was good enough for
giving us seeds for river generation and biome information.

These are things that can be improved on.


Reply to this email directly or view it on GitHub
#77 (comment)
.

@psi29a
Copy link
Member

psi29a commented Jun 17, 2015

I love the screenshot anyway. :)

@tibor95
Copy link
Author

tibor95 commented Jun 17, 2015

I am still tinkering with it :)
And I like it as well :) :)

@ftomassetti
Copy link
Member

Me too, the screenshot looks great! Yes, we should support better wrapping worlds: lands used to have very deep oceans at the border of the map and it was not intended to be wrapped :)

Now the altitude wrap but we have other things to fix, hopefully it should not be that difficult.

@psi29a
Copy link
Member

psi29a commented Jun 17, 2015

We can always "cheat" and do some fuzzing along the x-axis to try to blend/merge things as a stop-gap with the existing algorithms. The best solution I feel would, again, involve some noise. ;)

@psi29a
Copy link
Member

psi29a commented Jun 17, 2015

I've always wanted to try to create "real" rain shadows and work backwards from the backsides of mountains, but that requires that we also do real wind simulations instead of just picking a direction and blowing for the entirety of the map.

I'm wondering if we could use the heatmap that is generated as a basis to create air-currents. That might help. As air travels over water, it picks up water vapour and as it 'hits' land... loses water (as rain) which higher the elevation the more rain that is lost. Obviously after very high peaks, there wouldn't be much water vapour and as such would be rain-shadows after mountains.

Now that I talk about it... I want to work on it. :P

@ftomassetti
Copy link
Member

it sounds a great plan :D

@psi29a
Copy link
Member

psi29a commented Jun 17, 2015

@tibor95 are you a widelands dev? If so, you planning on using WE for map generation? If so, how can we help? :)

Update:
https://wl.widelands.org/wiki/Contribute/ <-- help wanted: maps... I think we got you covered there.
https://wl.widelands.org/developers/ <-- oh, ook, I found you there. :)

What are your (widelands) intentions? A tool for use with your map editor, or something that can be integrated into widelands (and it's editor) itself?

@psi29a
Copy link
Member

psi29a commented Jun 17, 2015

oh god, look at that... drool I want this:
http://earth.nullschool.net/ <-- wind/weather currents
https://github.com/cambecc/earth
http://hint.fm/wind/

@tibor95
Copy link
Author

tibor95 commented Jun 17, 2015

@psi29a

I work mostly on computer player logic, but also other things as we are short of C developers.

Also, I have created couple of maps for the game.

Widelands has a random map generator - but very primitive... If you are asking if I intend to incorporate your code into widelands - than the answer is: not. There is huge amount of work between output of your generator and playable / balanced / polished map. My experience is that by hand you can never never never never :) create realisticallly-looking map. This is why generator like this is usefull.

I am working on lua script that will be able to process output of your program, do 90% of work and then I will spend quite a lot of time polishing the map... Once the script will be good enough I want to create more maps - but definitely not incorporate the algorithm into widelands itself...

@ftomassetti
Copy link
Member

well, maybe we can help incorporating some features in WorldEnginer that makes easier for use to create this adapter. Then I think WideLands could benefit from nicer maps (though they would be still not 100% automatically generated) and we can get a bit more users and improve our software in the mean time. It sounds like a win-win :)

@ftomassetti
Copy link
Member

@psi29a those projects definitely looks cool :) We need to update our roadmap :)

@tibor95
Copy link
Author

tibor95 commented Jun 17, 2015

coastal erosion would be nice - If I understand, entire simulation is done without water, and it is only filled afterwards... I have to manually decrease coasts (make the elevation less steep) to allow buildings there. Most coast on the earth have beaches and slow ascend (I mean in the distance like 5 - 20 km from coast or so), dont they?

When the map will be finished I will mention you and acknowledge the credit where credit is due, of course :)

@ftomassetti
Copy link
Member

Water is present (it has a limited effect in the plate simulations) and we have hydraulic erosion (which carves up rivers) but we do not have coastal, thermal and wind erosions.

For us is very good to have feedback from someone using the map in a game because it is a different perspective.

There are so many things to simulate a perfect world, it is an endless list... but as far as I know there are no better open-source world generator out there, our goal is definitely to become and remain the best one :)

@tibor95
Copy link
Author

tibor95 commented Jun 17, 2015

river erosions are usefull too. It should form less steep coast or even estuary/delta or so...

I must admit for now I ommited rivers from map, because there was some problem extracting the data, I dont remember what it was now... and I am on the other computer now...

@psi29a
Copy link
Member

psi29a commented Jun 17, 2015

@tibor95 that is super of you for giving credit. We would like to help further. If you can give us a run-down of all the things your script does or even let us see it, we can help git rid of that 90% overhead. We want to improve WE to make it more useful and of course to create great maps.

@tibor95
Copy link
Author

tibor95 commented Jun 18, 2015

I can send you the script - it is run inside editor in widelands, but these are things that cannot be on done your side, like

  • making slopes less steep (here I must say the we have unproportional height of mountains vs map size in widelands, so this is not fault of your generator
  • changing terrains (~ground surfaces / biomes), smoothing borders between them
  • adding trees and rocks on surface
  • adding water underground
  • creating "mountains" = mines, and placing resources there (coal, iron, gold, granite) in them
  • fishes to sea
  • placing headquarters, making sure resources around are - the same
    And perhaps another small details...

@psi29a
Copy link
Member

psi29a commented Jun 18, 2015

Honestly.. some of those things are things we want. ;) So saying that it cannot be done on our side is a bit of a misnomer. ;)
Things we would like to see in WE:

  • border smoothing
  • adding trees/rocks to our antique maps
  • adding more geology: types of stone, metal and other resources
  • adding aquifers (underground lakes and rivers)

So if you are already doing some of these, well maybe we can re-use your techniques in WE. :)

@tibor95
Copy link
Author

tibor95 commented Jun 18, 2015

Look at the screenshot - the random map generated in widelands. Under "border smoothing" I mean f.e. elimination of small patches of different terrain, or simply make different terrains more compact or so...

widelands_editor

Trees and rocks - this is pure random, no logic there. Only on my map I group them more then here on this screenshot

Metal (mines) - more-less they are random, above some elevation - But no logic, no 'geological context' here :) So if you introduce terrains like "fertile land", rocks/mountains, metal ore rocks - this could be used. Of course fertile land is usually on flat areas... but mountains with ores - this could be indicated by your map.... Or maybe coal beds have probably specific localities... Usually we make coal mines in mountains, but in real world it is not this way, or is? I am not sure... :)

@psi29a
Copy link
Member

psi29a commented Jun 18, 2015

I know a guy... phd in geology, he has hooked us up with reading material. :)

@SolarizedRed
Copy link
Contributor

A couple of hobbyist-level sources incoming:
If I may suggest some reading material myself, Geoff's Climate Cookbook: www.thumbprintpro.com/~tiqdreng/ClimateCookbook-Geoff.pdf
is an brilliantly simple explanation of wind, currents, and climate. Worldbuilders have been using it for years, hopefully someone here will find some useful info from in. If worldengine could implement most of these steps on generated worlds, we would have one of the most amazing generators ever made (not that we don't already! ;p)
I would definitely love to see smoother coastline slopes and possible more defined continental shelves. They would help make the maps more usable for digital elevation/game maps, and the continental shelves would be important for modelling currents, and therefore climate.
On the subject of ore and geology, I found the blog here:
https://geoheritagescience.wordpress.com/2013/11/15/the-geology-of-skyrim-an-unexpected-journey/
to be interesting. There are several articles in the series, fyi.

@psi29a
Copy link
Member

psi29a commented Jul 9, 2015

For now, we are concerned only with x-axis wrapping.. left to right because we can easily wrapped this onto a cylinder or globe.

y-axis wrapping will likely not be supported, and if it is.. it will be a setting and not default.

@tibor95
Copy link
Author

tibor95 commented Jul 9, 2015

psi29a,

but your model of plate tectonics is (wrapped) rectangle not globe, and is wrapped in both directons.... so this is an inconsistency.

@psi29a
Copy link
Member

psi29a commented Jul 9, 2015

@tibor95, that is why I said "we are concerned only with..." meaning this is what we are aiming for, not for what is currently happening. This still needs to be fixed.

Wrapping along the y-axis is nice for games, but not our current goal.

@esampson
Copy link
Contributor

I wrote some code a while back for lands to let the temperature and humidity noise wrap left and right back on lands. I'll have to double check and see if I ever submitted the code and if it ever made it into worldengine. I've got a couple of other adjustments I made concerning the percentages of terrains that are considered polar, desert, etc. that I know I didn't submit.

It looks like most of the problems are with wrapping up and down, but since the map is designed as a Miller Cylindical Projection/Mercator Projection those sides aren't suppose to wrap anyway and it would make very little sense to do so (you end up with a single 'cold pole' if you do that).

I'm currently having trouble getting the latest release (0.18) to run properly (if I try a resolution higher than 512x512 astar.py throws an error "AttributeError: 'NoneType' object has no attribute 'lid'"), so that's slowing me down, but hopefully I will be able to get it resolved, readd my code, and issue a pull request.

@ftomassetti
Copy link
Member

Hi! Definitely some of your code was merged (you appear among the contributors: https://github.com/Mindwerks/worldengine/graphs/contributors) but we are looking forward to the adjustments and future contributions :)

If you are stuck feel free to ask for help, we definitely do not want to miss your contributions!

@esampson
Copy link
Contributor

Right. I knew the biome code was merged. I just can't remember when I wrote my code for wrapping the noise function. I've had some environmental adjustments I've been sitting on that were designed to make the percentage of land types closer match Earth's than I never got around to submitting before life grabbed me and I can't recall if the wrap code was in the part I didn't submit or in the earlier part.

@psi29a
Copy link
Member

psi29a commented Sep 19, 2015

It will eventually be nice to specify the type of projection, in that case it would make sense to chose when to wrap and when not to.

I think I saw a pull request from you come in, it seemed like you haven't rebased in awhile... Anyway, just reading through it, I saw a lot of commented code. Ideally, this code should be dropped. :) If we need it back, we'll go diving in git history to get it back.

@esampson
Copy link
Contributor

esampson commented Oct 3, 2015

Just looked at the results from the latest build. Precipitation and Temperature (and therefore Biome) maps are wrapping properly east to west. The don't really wrap north and south but then they aren't intended to.

We can probably close this.

@ftomassetti
Copy link
Member

thanks for checking this @esampson . We are always looking forward to more of your nice contributions :)

Closing this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants