64-bit Coordinate System

@zeroexception

Hi Zak,

In terms of converting everything (entire engine) to doubles, is that seen like a multi-month or multi-year project for Epic, assuming you can offer us a hint? Regarding awesome creations, while Lumen / Nanite grab all the headlines, doubles are a 1000% game changer. :+1:

4 Likes

I can’t really say as to when it will land, but we’re actively working on it and have made a lot of progress already in UE5. Many teams are collaborating (Physics, Rendering, Gameplay, Networking, etc) to get it to a good state.

14 Likes

Good to see it being worked on from all directions, hope the work goes well and fast because when this hits in combination with Nanite - there won’t we any other engine that can do that amount of detail on such scale (built-in, not custom made)

2 Likes

Just when you think UE couldn’t possibly get any more awesome!

4 Likes

Its not just changing float to double. physics and rendering is a big challenge.
I wait for Dounreal 5 :blush:

I can’t thank you enough and your team for adding this, I’ve been waiting for this feature in a quality engine such as yours to add this for over 2 years now. Keep up the amazing work :+1:

5 Likes

How large will large be? Will it truly be 2^32 times larger than the current world or will there be some limitations

1 Like

Interested in size as well

1 Like

Hi. I’m VERY interested in this! I have a 64 bit procedural voxel planet library ( Planet with noise based shading - YouTube ) that I’ve been working on. It does LOD, Threading, Chunking, large planetary terrain and surface to space transition, all at runtime from just functions. However, I’m stuck on Direct X because there is no engine that really can do large coordinates well. I think I can even do the streaming collision for it since I have it in my old non-voxel code. However it would be nice to have the animation and all the other cool things that a real engine provides. Mind if I ask what’s the current status on this? Thanks.

1 Like

Is this Twitter post accurate?

While waiting for UE5 large world coordinates (LWC), I decided to move an entire galaxy instead of moving my character when I’m traveling in outer space. (Testing Framerates at Up to 1.44 Billion Km Per Hour [Atlantica Galaxy] - YouTube)
The only time that my character is not at or close to the original world origin (0, 0, 0) is when I’m in close proximity to a planet, moon, asteroid, or space station.
I’ve seen a lot of success with this illusion, but only in the planetary system close to the world origin. I convert vector floats into doubles and do my math in doubles, then cast my doubles back into float vectors. I’m pretty sure I’m losing a lot of precision because I have trouble trying to land on planets, at speeds less than 70 km/sec, in systems far away from the world origin. For now it’ll have to do until LWC are made available.
Another sacrifice I had to make is multiplayer features. My game has to be single player now that I’m moving the entire galaxy to give the illusion of the character moving.

2 Likes

If you store discrete/integer offsets for the galaxy’s current illusory position, you can network those offsets as components of player position, and subtract them locally for each client, rather than replicating the galaxy’s position.

In other words: Replicate the illusion, not the individual object positions.

1 Like

I was planning on storing the offsets of the galaxy’s position for each player to create that illusion for multiplayer features. I just wasn’t sure if it was going to work or not.

Aaaaand… Released! :smiley:

2 Likes

So how far from origin can we go in multiplayer now before precision issues like jittering etc happen? Can anyone test? UE5 just keeps getting better and better!

From a very quick and simple test it seems that i can move an object and still have stable physics at around 4 194 km from 0! - giving us a solid 8 000 km cube of playable space

But right after that point the objects just dissapear when clicking Play.
Rendering is also not completely fine still at that distance but that was never the problem as client side you could just use origin shifting for visuals.
The current new limit is a very big improvement in comparison to what was possible before but honestly i was thinking they could squeeze out even more than that since the jump to double precision is quite a big one.
Maybe they can improve even more with time but I’m not complaining, this is still a huge win.

■■■■, just shy of being an Earth sized volume, need 12,800km for that.

Some more testing also shows that at this distance it also gets hard to move things smoothly with logic, even tho physics seems to handle things just fine.
Maybe the Blueprint / Transform interaction part is not yet completely upgraded

Even more testing shows some promising results.
I just drove past the limit using Physics and Add Force.
If there is no trickery happening behind the scenes then I can say the physics should no longer be a problem…


Yes, that is kilometers.
After 46 746 272 km rendering gave up :smiley:

4 Likes

I just found out about Large World Coordinates!!!
Thank you Epic Games!!! This is absolutely incredible!