Download

64-bit Coordinate System

Doubles are certainly being added, I would dare say very soon,
https://github.com/EpicGames/UnrealEngine/blob/ue5-main/Engine/Source/Runtime/Core/Public/Misc/LargeWorldCoordinates.h
I don’t see how multiplayer is affected by this, by some I think it probably shouldn’t really mean much hopefully, and probably a very small thing.

2 Likes

I hear you about decimals.

1 Like

That’s great news.

The only issue I’m having with multiplayer is world origin rebasing and custom gravity. I’m not sure how double precision would be an issue with multiplayer either.

1 Like

Yeah I was waiting for this tech, and glad its finally arriving, hopefully soon. :grinning_face_with_smiling_eyes:

2 Likes

popcorn

Finally some talk about this!
I was waiting for this tech for a few years now so finally seeing this brings some hope.
What worries me is the fact that they removed any mentions of this - the youtube video is gone/private and the Large World Coordinates mention on the site is also gone ?
From what i see on GitHub - there are LWC (Large World Coordinates) related commits every couple of days so my hopes are up.

2 Likes

Mentions about Large World Coordinates were just removed…

2 Likes

That’s … very wrong.

First, read this: What Every Computer Scientist Should Know About Floating-Point Arithmetic

Second, realize that any integer can be a fixed-precision decimal number. You can say “the lowest 10 bits are fractional bits” and now your integer has a resolution slightly better than 1/1000th of a whole unit. You will have to do some adjustment for magnitude when doing multiply/divide, but it’s pretty straightforward.

int64 for the “higher level” coordinate would make sense for a few reasons, including supporting equal precision no matter how far from the “origin” you are. For some kinds of games/simulations, this is highly useful!
The main drawback with fixed precision values is that you need to put away a fair number of bits for the decimal part to support the smallest possible velocity at the highest possible framerate without quantization artifacts. float64 gives you that “for free” as long as you stay “close enough” to the origin, but, really, you have the same precision problem, just with 54 bits of mantissa (including the implicit leading 1) instead of 64 bits, so it actually hits at smaller radii.

2 Likes

Thanks for the update. I’ll keep an eye on GitHub commit messages.

Keeping track of this thread for any news regarding Large World Coordinates within Unreal… can’t wait for that to be a reality!

2 Likes

Interesting

Update time:
Zak Middleton doing some heavy lifting:
https://github.com/EpicGames/UnrealEngine/commit/75107c146f316d15bc910cb6b7a27502e0d5a2db
If you ever see this - thank you for your work and everyone helping.

2 Likes

Just wanted to throw my hat in here and say I too have been lurking and waiting for something like this. Want to see this become reality for UE5.

1 Like

page not found, what was it?

It’s a private repository on GitHub, which means only certain people can access it. The content of the page was showing various source code changes adding support for 64-bit floats.

To gain access to the repository (you’ll need a GitHub account), follow this:

2 Likes

Thanks for the callout :slight_smile:
It’s been fun to work on, and I hope it enables even more awesome creations in UE5

-Zak

4 Likes

@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:

2 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.

5 Likes