Making an open world map. Could use some input.

Yeah, I had my hopes up for a second. What I wound up doing for my project was getting the edge pixels of the heightmap for one terrain, and setting those equal to the pixels of the heightmap for an adjacent terrain.

i had a technique for smoothing the edges of the terrain with GIMP … its in a notebook at a different house though right now :confused: … wasnt really the best though, but it worked for what i was doing…
… oh yeah i wasnt using Unity’s terrain either though, i was making meshes, for tiles of ground that are like 20m x 20m or something… or 50m x … was for random gen terrain, and so the terrain looks bumpy instead of just flat… micro hills and divots and stuff
but yeah i was doing it with heightmaps

but yeah there was a good $10, $15 asset that does it… it was made by one of these guys that was on the forum all the time a couple years ago… i think he made one of the networking middlewares and sold it to Photon, Bolt
i think it was that guy… maybe? … or him and the actual dude’s forum avatars were kinda the same maybe? i dunno…

You’re probably thinking of @Eric5h5 . I saw him touting it on a couple of questions asking how to do it.

yeaaah!!! thats it
https://starscenesoftware.com/utilities.html

he only wants $5 for it … sounds worth to me!

SO there is no free way to generate 16bits raw file?

Maybe there’s an add on for it.

Didnt read all the posts sorry :confused:

Here is a nice pic to just get an idea of environment size:

Now for tools to create large landscape

terrain:
Gaia, Map Magic / Terrain Composer

foliage:
Gena, Vegetation Studio(not out yet)

With this tools i would go for a system similar to skyrim where cities/dungeons/interiors are separated scenes.

Path/road/river:
So far i only tested easy road, there may be other tools. You will want some kind of tools to generate splines that adapt the landscape for road and river, it’s near impossible to do with just using unity tools.

On a sidenote, something like Voxeland can be worth considering, i didnt try it so i can’t give a good opinion on it.

shaders:
If you want to have caves and such inside the terrain you can use one of the shaders that allows transparency on terrain and sculpt cave meshes in blender.
For shader RTP looks nice but i found that it’s integration with other recent tools is not always great.
Megasplat is pretty good for big terrain and the large number of texture you can use to paint, it’s not easy to use and you may spend quiet some time to create your texture in the right format and making cluster etc that are needed.
CTS - Complete Terrain Shader is the most recent one, i didnt buy it so i can’t say much about it, looks nice and claim to be easy to use so i would check it out.

When building such large environment i would go for what the fastest easy to use, you may miss a few fancy feature but you can spent more time actually designing your environment.

Lighting / Time of Day:
So far the most complete tool i have been able to use is Tenkoku, i don’t like the look of the clouds much and it’s kind of heavy performance. Time Of Day is kind of old now and doesn’t have Weather system. I didnt try the others.
Tenkoku and similar tools are probably your best bet to not waist time on a weather system.

Other addons

I would add HxVolumetricLights into your list as it adds a lot to scene, it’s nice for exteriors and it’s just a must have for any interiors.

Horizon Based Ambient Occlusion and SE Screen Space Shadows can be a good addition.

There is more tools that can be use for making things faster / prettier but really depends on your game and what is most time consuming for you.

3 Likes

Wow, didn’t know BOTW was that big, even bigger than Skyrim.

Btw, I made some tests some time ago with multiple terrains with Unity and as the camera reaches distances like above 1k units in any axis the shadows starts to flicker, I don’t think it’s viable doing big open worlds with Unity unless you use some kind of origin shift. What would you guys recommend to circumvent this?

Somehow I could tell…

Same, and I was equally surprised at how small Ocarina and Twilight Princess actually are.

You already mentioned the ideal solution. Origin shift (aka floating origin).

I’ve worked extensively with multiple terrains, hundreds. The camera issue has nothing to do with origin shifting, can’t say what that is.

Origin shifting is a can of worms. Honestly, open world is a buzz phrase that most people don’t really stop and think about the value of. What is the value of it? Not much really. In fact zones can add strategy and even be a better player experience if done right IMO.

Open world is one of those phrases like player driven economy. People throw it out and make assumptions but never really think through it critically.

3 Likes

I also forgot to mention the glitches (vertices going crazy because they need that extra floating point number that they don’t have anymore) you have above 5k units.

Ah I see… I’m not a big fan of origin shift, I wonder how games like horizon zero dawn and witcher 3 solves this problem… if they have it, because they might have the sweet double precision transforms in their engine.

Yes, I think it have something to do with >this<

But, I like open world games… And by zones you mean like in MGS3 and Zelda Twilight Princess?

I seriously doubt it. Single precision is only about twice the performance on most modern CPUs, but on a GPU the difference is staggering. Most modern GPUs are 32 times faster for singles as opposed to doubles.

Additionally, while I don’t know about Horizon Zero Dawn, I know Witcher 3 is using PhysX and that physics engine only exists in single precision form. They would have to use origin shifting at some point. May as well use it all the way.

1 Like

Also you won’t really have any problem with size if your open world smaller than the 20km² centered on 0rigin, since most problem start after that limit (ie 10km away from center in all axis direction).

Floating point is for really big world beyond the 10km axis radius limit, both BOTW and Skyrim are within that limit.

But if you want to see what scales is like, I suggest you to look at xenoblade X on Wii U. As big as 4x san francisco and it has big verticality.

In that video the character is moving on mech, you are on foot for half the game (30h) now that’s big open world.

The problem is that even though technically we can reach this distance, if you pass from 999 to 1000 you already lose one number in the precision (what was 999,0001 is now 1000,000 for example) the same happens when passing from 9999 to 10000, we can still reach this distance but the vertices starts to go crazy, also the lights, the shadows starts to shake when above 1k units.

This is a fairly simple maths question. Estimates vary, but Doom-guy runs at about 100 km/hr. That means that in a 15 hour game, your character can travel about 1,500 km. That’s assuming an infinite runner style game play, in a more conventional style game the player is probably only travelling about 10% of the time, giving a travel distance of 150km.

So the question now becomes, how much terrain do you need to have to make the player travel 150 km? On a 5 km map that’s the equivalent of going from one side of the map to the other about 30 times. That means your player can only be exploring an 166m wide section of content at a time. And they need to have a reason to visit all 900 166x166m blocks.

You can drop some of this down by allowing for retraversal, or by forcing the players to travel in a non optimal route. You can also play with the numbers, the more time a player has to spend completing content, the less time they can spend travelling. You can also slow down the players travel speed.

Its worth pointing out that there are significantly smaller open worlds that take significantly longer to complete the lego open worlds aren’t very big at all. Yet the content is very dense, and the player speed is fairly limited.

3 Likes

There are many factors that impact that. The near clip plane of the camera and the shadow bias distance of the light both make a huge difference. You may have to script some auto-tuning of these if your game plays across different scales. It’s not a weakness of Unity, it’s to do with how floating point numbers work.

5k? What kind of glitches? I’ve got a project where I’m going way past 5k without any noticeable issues. Heck, some bits I’ve tested with no noticeable issues out to 100k.

It really depends on what you’re doing, but if you’re getting noticeable issues as close as 5k I wonder if there’s not also a large disparity in object scales or weights or lots of scaled parenting or something?

For reference, 1 units = 1m in my case, that mean 1k = 1km therefore 10k is 10km.

Distance is not going to be an issues, btw. At the very edge of the map (which the player will not ever reach) the player will be AT MOST 250 units from 0,0,0.

Taking what Kiwasi, digging the name change btw, said I feel comfortable that 5x5 will be good so long as I put lots of obstacles (like mountains) to move around. Also, with the last 500 meters out of reach it’s more like 4x4, so 16 square kilometers.

That sounds like a tight little jaunty.

Distance is never the issue anyway. Relative magnitude of numbers is the issue. If floating point precision is going to be an issue then scaling the world up or down won’t help it.

1 Like