Map Generator 3.0 - Please Critique!

This gets more and more impressive every time I see it, Keep up the good work!

Yeah I have learned more about weather than I ever knew just from working some of these things out.

I will definitely be using the tectonics and jetstreams to guide earthquake and cyclone activity, which will have player settings in the game setup. I am thinking of having ā€œStorm of the Centuryā€ events where after some number of turns a huge hurricane makes landfall along the jet stream lanes. If you put a city in that area you will just have to deal with the consequences. Having a world that is hotter, or even one that becomes hotter as you play through a global warming event, could have direct consequences on the number and power of the cyclones. Should be fun. :slight_smile:

Same idea for large earthquakes and tsunamis. I will be able to designate ocean plates as ā€œRings of Fireā€ with increased earthquake and volcano frequency/magnitude on their perimeters.

Thanks! I will try to keep the progress rolling. :slight_smile:

Below is a picture of the Rain Shadow at work. Mountain Erosion is set to minimum. Right now, when precipitation hits a mountain, if the minimum precipitation level threshold is met, then there is 100% chance of a spike to max precipitation followed by a dropoff to minimum precipitation(different for each latitude band). This simulates the orographic effects of moisture rising, cooling, and condensing to drop on the mountain range while leaving the other side of the range relatively dry. Think the Pacific Northwest of North America.

You can see how the precipitation funnels through an opening in the mountains of the East continent, while the mountains of the West continent completely stop the rain from reaching the interior.

This is pretty close to how the Rain Shadow will work on the default setting. Maybe a little penetration. The player will be able to negate the effect with the setting in order to get generations that are very wet. With max rain shadow and high mountain creation, you could have vast interior deserts even with the highest possible precipitation levels.

Going to be quite the project communicating all of this to the player in the game/map creation screens. :stuck_out_tongue: Pretty sure I can take care of it though. :slight_smile:

Rain Shadow is basically done and scaled to a setting.

The top image has a setting of 5, and the bottom is maxed at 9:

An Earth-Like setting will probably be somewhere between 6 and 8.

Right now the Rain Shadow works only with mountains. I may alter it somewhat to instead work on the heightmap which should allow for a full rain shadow without also requiring a full, un-eroded line of mountains.

I will see if I can work out the jet streams tomorrow, and maybe the seeding.

Dude consider selling this on the Marketplace. :smiley:

100% serious.

Probably notā€¦ :stuck_out_tongue:

So why donā€™t you want to sell this on the market place?

Just curious?

Because of the work that went into it and the fact that it will be a huge selling point in the eventual game it releases with. After I launch a game with it, I may consider licensing it out, but that is still a big maybe.

Generally, I donā€™t need money, and I wouldnā€™t be pricing it at a reasonable indie rate anyway.

Wow, Iā€™m amazed you did this with blueprint and not C++! Iā€™m working on a random level generator myself, and things get very confusing and complicated, even in C++.

Yeah, it certainly gets complicated.

I think the visual nature of blueprint makes it less complicated, while also freeing more of your brainpower to accomplish the task. Assuming of course you know how to organize your blueprint. The visual aspect goes out the window if it looks like a ball of spaghetti. :slight_smile:

I have a basic setup that finds the start locations for each of the 4 jetstreams. Basically the 2 widest contiguous bodies of water at the equator spawn the large vortexes that move out from the equator towards the poles.

Once I get it moving along the right track I will widen them to be maybe ~10% of the map width.

Having a hard time finding a good name for this system. It is kind works like the jetstream, but not quite. It roughly correlates to the track cyclones take from the equator, but it is more than a cyclone track. Eh, whatever, I will just refer to it as the jetstreams even though that isnā€™t entirely accurate. :stuck_out_tongue:

For some reason the jetstreams are not as wide as they should be. If I set it to 5, then they are 3 wide. If I set it to 10, then they are 6 wide. Probably one of those things that will become immediately apparent in the morning when my brain has energy. :slight_smile:

Another thing I want to work out is some additive combination method with the normal precipitation levels. As it currently works, they would overwrite each other and the jetstream comes after the normal weather. I kind of feel like the jetstream should be first since the normal east/west weather can pick it up and carry it to a shoreline. This would be important in situations similar to the thin strip of blue you see in the top left of the above image.

The bug I was experiencing was the Offset. It always seems to strike when I least expect itā€¦ :stuck_out_tongue:

The additive combination turned out to be extremely simple. Here is a pic of the jetstream and the rest of the weather system in action:

Notice the jetstream going north through that thin channel, which is then blown by the normal system to the east to dump on that continent. Without the jetstream that area would be as dry as the second circled area. This is interaction is basically why Europe and the Pacific Northwest of North America are as wet as they are.

Actually, the second circle does have a jetstream, but it is out of water by the time it gets up there and the waters are too cold to pick more up.

Did you know anything about coding before you started work on this? What youā€™ve done is extremely impressive and I canā€™t imagine ever replicating it. Iā€™ve spent the past month on-and-off failing to get a significantly simpler system working!

I worked for 3 months back in 2012 getting a super simple Terraria setup working in Torquescript. I could probably do that in a week now. Other than that, my past attempts at scripting involved looking at Lua, Python, etc with a blank stare wondering where to even begin. I even looked at map generation algorithms back in 2010 when I was modding Civ 5. It was all Greek to me.

So yeah, I basically started last March with blueprint and have been learning bit by bit. :slight_smile: I didnā€™t know what an array was or how to use them until I started in blueprints. I probably didnā€™t even have a good grasp of exactly how variables worked, even though I probably used them in Torque.

If you start small and work your way up you can figure it out. Most of the systems I have created have been torn down because I have learned or thought of a better way to do it.

Someone please make this into a plugin and put it on the marketplace:

Instead of parallelogram wrapping I would need plain rectangular wrapping, if feasible. Also, flat topped hexes. I will pay all the money! :slight_smile:

Otherwise, maybe one day I will work it all out myself.

Neat! Iā€™ve had plans to project hex grids on spheres myself, but thought I would have to include a few pentagons to make it work (perhaps making all pentagons lakes or mountains to prevent ******** up the pathfinding). Projecting the way itā€™s done in the link is a pretty cool ā€œcheatā€, though Iā€™m unsure if it will work with non-flat hexagons. If youā€™d want to have other items in the scene, like a sun or a space backdrop, youā€™d also have to make them rotate along with the faked rotation of the globe, but that shouldnā€™t be too hard. Really cool stuff, though. Iā€™d also be very interested if someone made this in UE4. I might also want to give it a try myself, though my backlog is full enough as it is :stuck_out_tongue:

The map looping isnā€™t something Iā€™d want to jump into due to everything weā€™ve talked about in the past for re-generating instanced static meshes, but the spherical portion I took his math and tossed a material together that works:


It just uses the World Position Offset, so you could plug it into every material you have and itā€™d work across units, tiles, buildings, etc. Nicely masking the tiles out side the radius (modified by Z height) is something I didnā€™t get to, but should be simple enough.

, you are a god among men! :slight_smile: You did that in the material editor? I really need to dig into that system! Between this and the water material stream I watched the other day, I would say the material editor can do way more cool things than I even thought possible.

By looping you mean that the above is static and doesnā€™t update as you move around, or that it would be harder to get the left and right edges to meet up? Really in this case I just need the left side to wrap around to the right side, then I could just swing the camera around it and I would be pretty much set.

Is there much difference in implementation for hexes(math?), or would it be the same?

Whoa, that looks incredebly cool ! Looks like some kind of doomsday device :smiley: You put that together in the few hours after Zeus posted his request? I really need to start looking into materials soon.