1:1 size of our planet

Hi, I´m trying to make flight sim. and the most important thing is making the world in which you can fly around. 1:1 scale of our planet just like in other simulators. I think this cannot be done just by terrain editor. Maybe some chunk system used in minecraft?
Is it even possible to make this in Unreal engine 4?

There are MANY factors that come into play here. If it were me, I’d come up with a world generation algorithm, split the world into a however many chunks, assign a static seed to each chunk, and generate the world on the fly. Though, I am particularly fond of procedural generation, so that’s just me :slight_smile:

Your best bet would probably be to generate the world from actual heightmaps as the player flies along, the downsides to this are that there might be cracks in the terrain if you make the earth a sphere, and you couldn’t have multiplayer.

It’d take some time, but you could definitely import heightmaps with the terrain generator to create the world as a series of “chunks” and use level streaming to seamlessly “connect” them without having them all loaded at once.

That’s way too much information to be able to put into a game, without really much benefit, it would be better to focus on a much smaller and more manageable area

Sorry, couldn’t resist it :slight_smile:

So I have this little wip project on the boil over here: The Eden Project - Work in Progress - Unreal Engine Forums

It’s not exactly what you’re after of course, mainly because I’m not even going to try to replicate earth accurately… something to do with me not owning a server farm that can store the over 20PB of data used by Google Earth or having access to every satellite made ever.

Games like FSX do it, probably using procedural generation from heightmap info, as well as procedurally placed foilage and building models.

Yeah, they’ll be pulling heightmap information from somewhere, though I don’t see how good / accurate that information could be if it’s stored locally. You’d absolutely need to do procedural work (and a lot of it custom built in code) to get it done, you’re not going to do this with hand-created landscapes.

This, and somehow faking the curvature.

It’s not practical - the sheer size of the generated Unreal content files (maps in particular) would be absurd. You need to stream in the data from an external server and generate the world procedurally and on the fly.

If he doesn’t need high resolution heightmaps then the size might not be extremely high. But I agree with you, this is better done by generating the heightmap within a radius and procedurally adding static assets, materials etc.

[QUOTE=Dogsofknowledge;510474]
Games like FSX do it, probably using procedural generation from heightmap info, as well as procedurally placed foilage and building models.

At best they pull info from Google, which isn’t super great quality as far as games go. And is there really any benefit of having something that large?

Even Google’s data is pretty hefty, hence why you stream it from some big data centre somewhere, though some key locations may well be partially modelled. The thing about aircraft is, they’re pretty damned small with respect to the size of this planet.

Wouldn’t you need 64-bit floats to represent world coordinates to be able to do planetary scale levels ?

That’s what Star Citizen had to implement in CryEngine in order to be able to achieve planetary scale.

It’s not necessary, you can use origin-shifting / origin-rebasing instead.

Could you please elaborate what that is and how it’s done in UE4?

Basically because actor positions are stored using floats, the further away they get from 0,0,0 in world space the more susceptible they become to jitter.

This happens because floats don’t store very large numbers with absolute accuracy, but more as approximations. So for instance, if you made a big planet mesh and centered it at 0,0,0 you’d probably find (assuming the planet was large enough) that out at the surface of the planet when you tried to move actors around they would appear to be, well, vibrating as they moved.

As it turns out, there’s a bit of a sneaky workaround for this. Just offset the whole planets position so that the part of the surface you’re standing on is at 0,0,0 in world space. That way the coordinates of the objects around you will be well within the range of values that floats can represent accurately. And with objects that are far enough away from your players position to start jittering again, the artefact will be too small to see at that distance anyway :slight_smile:

I think this will be pretty hard to do this in UE4. Now i’m not pretty sure how it´s done by other simulators.
When i was in-game FSX it doesn´t look like the world is shaped like sphere. but who knows…
I have an idea about a plane which will be the whole world and when player reaches the border of the plane, player seamlessly “respawn” on the beggining of plane.
(Umm… really don´t know how to explain this. take a look on my attached “high-tech” picture. :wink: :smiley: and also forgive my english)