Best strategy for incremental development of a very large world and what are the limiting factors of large world development?

I am a beginner with UE. I am learning with the eventual goal of creating my own large 3D game world (~1.5x Earth’s circumference, scaled down). As creating a whole world is very ambitious, especially for a beginner, I want to start with a small section of my actual worldspace to practice (let’s say 2km x 2km or so). That said, I would like to be able to expand upon this small area to fill out the world gradually. I was hoping this post would help me and others in my position start off the right way.

What would a good strategy for doing this be to make sure my workflow is efficient and every thing lines up in the end? Just make a world that is 2km x 2km for now? If so, what is the process for adding more to the map later? Or should I make a map of the final size and just begin working on a small section of it?

Additionally, I was wondering if people would recommend making the world full scale (since it is possible, I think. Maybe like 58000 km x 29000 km) and just filling in small pieces as I go, or should I make it like 1/100th so I can represent more area of the world? What are the tradeoffs? EDIT: I have been thinking maybe a 1/500 scale would be adequate to make the spaces feel expansive but also allow me to fill out a good amount of it. Also, it seems there was some ambiguity. I will likely be building a flat map because it is easier, not a sphere. The flat map is just supposed to represent a whole planet.

The rest of this post is just some things I have learned and am hoping to get confirmed.

I will be utilizing the new Large World Coordinate functionality, which uses double-precision floats (64-bits) to represent the coordinates.

I read somewhere that Epic games says coordinates will function adequately as long as they can represent 1/16th of a centimenter. So, 4 bits of the mantissa (2⁴=16) are reserved for the decimal, leaving 49 bits for the integer portion. 2^49= 5.630x10¹⁴ cm or 5,630,000,000 km in any direction from the origin. Is this correct or have I made a mistake? If this is correct, my single planet should never be limited by the coordinate system.

I will use World Partition, which if I am not mistaken, will essentially mean that I can have as large of a map as I want and not be limited by memory. This is because it only loads the sections closest to the player and total map size doesn’t matter. Is this correct?

I know also that in a large enough world, disk storage space would be an issue, but I think this won’t be the case for my world, though I am curious if anyone has some general rule for correlating world size with the storage space needed. I.e. 100 km² = about 5GB or whatever.

With all those problems solved, I think my only limitation for world size is how much I can actually get done. Are there any other limitations?

That’s been the issue since always. Nearly all other “problems” are BS made up by people that don’t want to work.

Start by defining what system you want to support.
Make a random 4 tile landscape with an auto material. (Use a decent size tile, 4km squared in 2x2 configuration).
Bench performance on that system.

If it works (meaning 120fps at the desired size) - which it probably won’t because the engine sucks at performance, then you can move forward with that tile size.

If it doesnt, you have to pick out a different tile size.

Or you can go forward knowing that at the end of it all youll need to convert from using the landscape to using meshes.

After that, you just take the process one tile/level at a time.
On avarage, a 4km tile takes about 3 days to dress up so it isnt empty…

Obviously, your numbers are wrong but they also havent mattered one bit since always.
You just enable world origin rebasing or create your own rebasing system and the overall size can be infinite.

I think that’s a little unfair, considering I said that I am likely going to have to scale it down. I have been thinking I will do 1/500 or so scale. Additionally, probably at least 60% of the world would be ocean. I know it still leaves a large area to fill out, but I only intend to develop small areas at a time. I don’t care if the whole world gets fleshed out. I am just going to do what I can.
As far as making an actual “planet” goes, I was thinking I’d probably just make it a flat map and have it look back around on the edges or something, so I’m not worried about spherical worlds. This isn’t a space travel world, so it won’t matter if it is flat. The most I would like to have is sailing between continents.
I don’t think your reply offered much constructive advice. I am asking the best way to take a crack at this with the tools that are currently available to me, not for negativity. Thanks.

@AntiGravity Why would there be issues with collision or physics or animations? My understanding is that those were caused by the coordinate system not being precise enough, which is not the case now. It can literally support millions of km with appropriate precision, so there is no way it can’t support a few hundred or thousand km. Would you care to provide more reasoning to back up your claims? Otherwise, I fail to see how you are not the one making assumptions. I appreciate you taking the time to post, but if you aren’t actually going to provide info then why?

Also, @MostHost_LA said that my numbers were obviously wrong but didn’t bother to explain which numbers or why it is obvious. I’m trying to get objective information here.

What use is an incomplete answer?

You’re right. I don’t deserve any answers that I get here. It is not self-entitlement, however. It is frustration that people like you just come and give precarious information without any sources or reasoning provided. Wouldn’t it be nice if beginners didn’t have to search for hours to answer even a simple question, or at least if the answers they did find were somewhat trustworthy due to reasoning and sources being provided? However, I asked some concrete questions, and you gave no concrete answers. If you have nothing valuable answer with, why post? You essentially just came and said "Ha, no, you don’t understand what you are talking about :slight_smile: " and nothing else.

By the way, accusing the OP of being entitled and just telling them to go look elsewhere is one of the most banal things to see in a place like this. It’s unhelpful. If there was a suitable answer out there that I could find by searching, I would’ve done so. And if you expect someone to read through every post in the history of the forum for every question they have… really? So, instead of saying that I should go look at one thousand posts to accumulate the knowledge that someone experienced already has and can give in a few minutes, why not just give a solid answer and make this the place people go for that information in the future?

Greetings everyone!

I can see this potentially derailing. Please let’s remain respectful in these public forums. This is a platform for discussions. Let’s please be mindful to remain civil in our discussions. I’m going to gently drop our community guidelines here just in case a quick refresher is needed. Clicking the link is free! :wink:

'- Your Friendly Neighborhood Moderator

Because what you ask implies years of learned / hands on experience.
I’m not going to sit here to write a free book of everything wrong with the engine and the issues you have to work around, Hell, I’m not even bothering to tell you why your math is completely wrong because I’d have to write out 1.7Idon’t9frackingrememberE+308, and you think I’ll sit here and explain all the gotchas completely free of charge?

I don’t see why.
People do it all the time since 99% of the time OP didn’t even bother googling for an answer and all you need is a link to the right page of the documentation.

You need to do your own research and benchmarks. It’s as simple as that.
You not wanting to put the work in is normal, you end up being just another one of the ones that invents BS as to why it’s impossible to do things.
It’s not impossible, It requires experience and work - and probably NOT using unreal, that’s kind of a given if you spent even 20 minutes working in engine…

Procedural systems. You make your own, wait hours for arrays of transforms to compute.
It’s not THAT hard really.
Much less solid systems exist and work well, like for No Man’s Sky.
It takes time to manicure it manually. That’s really all there is to it.

If you scale things down, there’s issues with all of the above. Go research why.

Your understanding is incorrect. Even with separate doubles to store what could be considered near infinite irrational numbers (Pi to some crazy digit) You would still experience a lot of issues with just about everything based on both Location (drift from 0,0,0) and Animation/Physics when the environment is scaled down.

It can literally NOT. Do the math again. You are using the wrong measures. it’s .01mm precision not 1cm precision.

Why don’t we invent genetic memory so you don’t have to? Alas, genetic memory isn’t a thing, so please stop crying about having to put work into stuff. Particularly when you opened so well by asking what strategy to use…

And that was answered btw. One level tile at a time.

1 Like

As a matter of fact, I’ve done plenty of searching on my own. I’ve seen your posts on other topics, actually. I can’t stop you from posting here that I am aware of, but I know that all you do is spread negativity. Kindly refrain from doing so on my posts. If you can’t even bother with some math but you insist that mine is wrong, you really have nothing to offer the community. I don’t think you actually know any of this stuff, at this point. I think you just troll the forums.

And if you’re not here to provide any advice for free, why are you here?

And I don’t even understand what you are talking about with scaling. Any scaling that I do would be done prior to importing my heightmap? I’m sure you are talking about some UE thing that I have no knowledge of, but I don’t think it is relevant.

And and and, for someone complaining about people not even googling something, why didn’t you bother to look up the definition of banal?

Man, this is NOT negativity. This guy have really great amount of patience. You are asking very general questions - answering to those would take a book (or two).

Probably you are VERY new to unreal, with “big and best idea” for the game. Both of those things are great - good starting point!
But after having this, just start exploring and learning from small, simple things, watch some tutorials - and follow them in engine!, read documentation, …
Then repeat. And repeat. Because it’s best way of learning.
Start from exploring and implementing the rest of your gameplay in small batches - for example player controller, NPCs, vehicles, … While doing that, you will learn engine and you will finally be able to create your big planet.

Here’s a non-technical answer to your techy question. In Nintendo’s BOTW, they have huge /very huge worlds. However, detail is not revealed until you get up close to an area. Which means there’s a sort of compression / decompression strategy going on to save massive amounts of storage for these huge worlds. Albeit even BOTW isn’t a complete Earth sized universe, the scale of it is pretty impressive. But that’s how I’ve seen them tackle a problem of this scale. C’mon, the Nintendo Switch isn’t a real powerhouse, but the programming they used makes it seem so.

1 Like

@MostHost_LA Alright. I was frustrated that day. To be fair, you did offer a great deal of advice in your first reply and I have since seen informative posts of yours elsewhere. I just happened to see some posts where you were mostly trashing unreal engine and I wrote you off as a troll. Sorry.

My initial post was probably trying to ask too much at once, so I will try to ask any follow up questions in more specific posts.

1 Like