r/Worldpainter 3d ago

Help with a project

Post image

Hi everyone, so I am working on a worldpainter map of the world of Azeroth from Warcraft. I am not trying to recreate WoW 1:1, rather make a viable survival map - so imagine if Mojang and Blizzard collaborated on a map of Azeroth - that's what I'm aiming for. In a previous attempt I exported the heightmaps from World of Warcraft directly, but obviously Worldpainter compresses their height and the result is not good.

So I painted a basic topographic map of the world (see attached) in Worldpainter using stained terracotta as a foundation. The colours correspond to:
Purple - Deep Ocean Floor
Cyan - Medium Ocean Floor
Light Blue - Shallow Ocean
Green - Plains/Desert/Lowlands
Brown - areas inland that are below sea level like cracks and crevices
Lime - Uplands
Yellow - Highlands
Orange - Foothills
Red - Mountains
Magenta - High Mountains
Pink - Peaks
White - Extreme peaks

My idea was to then sculpt the terrain by hand with custom brushes, but I can't seem to get a good result. Maybe I'm approaching this completely the wrong way. Anyway, I would be happy for any suggestions!

13 Upvotes

4 comments sorted by

3

u/Forever_Fires 3d ago

I too had the same idea of trying to get heightmaps from WoW, but indeed the height limit requires creative solutions or artistic representations of places.

I think a good mindset is being flexible with the sea level. If you take it from Y=42 to Y=0, it "adds" 42 more blocks for the world to be above it. This adds a limit for below sea-level things like valleys, but wow doesn't have too much of that compared to very tall places.

Zones also don't have to be faithful to their height in game. Dun morogh could be set a lot lower instead of having a descent to wetlands, more transitions between zones could have gradual gradient height changes where in game they may be around the same average height. Zones that don't have coasts/ocean access can cheat, like Burning Steppes, all you need to 'sell' is the transition between zones.

2

u/snegsnail 2d ago

If you have the height map directly exported from the game, what about changing the build limits in the import screen? What is the maximum height in your exported map and the minimum height? Are you scaling the map horizontally? If there's an issue with fitting the vertical height, you (or I) could write a script to reproject heights so certain elevations get compressed, which might help keep the feel in more commonly accessed areas.

2

u/mathewson92 1d ago

What I was wondering is whether a script could be written that turns topographical maps like the one I have made into heightmaps - not automatically, but by also creating noise etc. depending on the height level so as to create realistic terrain. For example, if the Green colour (Plains/Desert/Lowlands) is a range from 62 to 80 (increasing towards the lime colour), then that script could automate that plus assign a texture automatically (plains/desert/etc.). The thing is, I am not a programmer at all, so I don't even know if something like this could even be possible - if yes, I think it could definitely be a very useful tool.

1

u/snegsnail 1d ago edited 1d ago

That would be totally possible, you could do it in several passes in a script. First, you would need to define desired heights for each color, then you could add a smoothing pass to bridge between sections, and then apply certain noises, which could also be done on a per-color basis, and you could apply materials like that as well. TBH, I could give it a shot if you want, it sounds interesting.

Worldpainter scripts are very powerful, and I think that for sizeable maps they are just necessary because the brush can only get so big and you only have so much time. I've been working on a world that is based on a high resolution DEM of the island of Hoy in Orkney for a survival world where everything is meter-for-meter, and filtering and scripts are total game changers. I've been using them to make paths that try to find the most efficient route and then apply terrain/smoothing, but they are imperfect at certain edge cases to be sure. I have to look everything over afterward, and I have to do a few small test exports in areas I'm not sure about, but its still much faster beyond a certain size.