Uploaded image for project: 'Minecraft (Bedrock codebase)'
  1. Minecraft (Bedrock codebase)
  2. MCPE-102868

Woldwide collision becomes highly inaccurate at high coordiantes

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • None
    • 1.16.40 Hotfix
    • None
    • Unconfirmed
    • Windows

      This has been an ongoing issue that appears to be unfixable. In this, I will actually give a potential solution. 
      I apologize if this bug is already being tracked, as it likely is, but using the search I was unable to find the original bug report using any combination of words, keywords, or phrases.

      The Bug:
      This happens throughout the entirety of the world, even as close as 2k blocks from 0, 0. As you travel further and further out in the world, movement becomes severely jittery, and the block collision gradually shrinks from one side (seemingly dependent on which coordinate is the highest) until you're able to just fall through the world. In rare instances, you may even fall through the world at relatively low coordinates. It is impossible to recover from falling through the world, meaning you're guaranteed to enter the void and just die without any chance of recovery.
      Steps to reproduce:
      Simply teleport out far in the world, it occurs everywhere, but is far more likely to happen past 1 million in any coordinate direction, positive or negative.
      My Proposed Solution:
      To my personal knowledge, Minecraft Bedrock's physics calculations are based on the entire world, starting at 0, 0. In theory, this isn't a problem, but in practice, it results in this bug, as it's nearly impossible to have all the math perfectly line up to where such an issue doesn't occur. However, my personal idea to fix this issue without too much work would be to rewrite the part of the physics that origins the calculations at 0, 0. Rather, make the physics calculation use the origin point of each chunk for the best accuracy. What I mean by this, is if you're at, for example, 4, 13, your physics would be calculated based on the current origin point, 0, 0. However, if you are instead at 18, 25, your physics would instead be calculated using 16, 16 as the origin point, and so on. While it's not the most elegant solution, it'd definitely work and keep things nearly perfectly calculated regardless of distance from teh world's origin. And if performance is an issue for this, simply only have collision be active for each chunk that an entity exists within + 1 extra chunk. With the improved mob spawning/despawning, this theoretically shouldn't cause much issue.

            Gamershy Bobby Dobberstein
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: