Use this topic to discuss features included in the Tiny Takeover game drop!

14

The Minecraft world should repeat after 30 million blocks from the spawn

5 Comments

Please sign in to leave a comment.

Sorted by oldest
  • 0
    Registered User commented
    Comment actions Permalink

    So it would loop back around?

  • 1
    Registered User commented
    Comment actions Permalink

    so it would be the same generation? or some kinda pacman situation where it sends you to the other side of the world

  • 1
    Registered User commented
    Comment actions Permalink

    AI给我了结论:完全不可能实现 Please use the built-in translation of your browser to translate it.

    MC 玩家位置用64 位 double 浮点数存储,浮点数有致命特性:
    数字越大,相邻两个整数之间的间隔越大。
    在 0 附近:1 格和 2 格之间精度极高,细分 0.0001 格都能区分;
    在 3000 万坐标附近:浮点数已经无法精确区分相邻方块,走路会抖动、碰撞失效、红石、粒子、水流全部错乱。

    ava 版有两层锁死屏障:
    可视世界墙:±29,999,984,蓝色半透明屏障,挡住玩家正常移动;
    代码硬数值上限:±30,000,000,源代码写死坐标不能超过这个数,所有移动、传送逻辑都会强制把超出的坐标钳位在 3000 万,不会自动取模跳转。
    游戏底层逻辑是:如果 X > 30000000,直接令 X = 30000000,而不是 X = X - 60000000(循环逻辑)。
    两种处理方式完全是两套代码分支,Mojang 原生只写了「钳位封顶」,没写「取模环绕」。

    你瞬移到负 3000 万区域,那里一样存在完全相同的精度丢失循环只是把你从一片崩坏区域传送到另一片一模一样的崩坏区域,根本解决不了远距离物理失效问题。

     

    地球绕圈的美好设想前提是「世界两端坐标计算都稳定」,但 MC 超过 2000 万格就已经逐渐失真,3000 万彻底没法正常游玩。

    MC 所有地形、生物群系、矿洞、村庄依靠多层 Perlin 噪声生成,噪声函数有一个硬性要求:输入区间必须是无限连续平面,不能有环形边界条件。
    想要实现「X=3000 万和 X=-3000 万地形完全一样、无缝衔接」,必须满足:
    Noise(30000000) = Noise(-30000000)
    但 MC 的噪声种子算法完全没有设计周期性闭环,两端噪声值完全不相等,直接拼接会出现:
    东西两端生物群系断崖(一边热带雨林,另一边冻土);
    河流、山脉直接截断,出现垂直巨型悬崖;
    村庄、地牢、废弃矿井在接缝处重复 / 消失。
    如果强行修改噪声为周期 6000 万,等于全部重写地形生成核心代码,工程量相当于重做半个 MC,官方不可能为大世界牺牲现有全部地形逻辑。

    MC 底层是标准直角坐标系:
    • X 左右、Z 前后、重力永远固定向 - Y;
    • 所有碰撞、渲染、区块加载、实体 AI、流体流动,全部基于「无限平直平面」编写。
    而「走到头回到起点」属于环面(甜甜圈)拓扑结构,两种几何体系完全不兼容:
    1. 区块加载逻辑崩溃
       
      正常只加载玩家附近 ±8 区块;如果是环形世界,玩家靠近 3000 万边界时,引擎要同时加载世界最东侧 + 最西侧两大片区块,内存、显存直接翻倍,低配电脑、多人服务器直接卡死。
    2. 实体、红石跨环边界大量 BUG
       
      矿车、水流、TNT、生物 AI、红石信号穿过接缝时,坐标瞬间从 + 3000 万变 - 3000 万,位移计算会出现巨大跳跃,直接卡死、穿墙、无限复制实体。
    3. 渲染透视错乱
       
      相机渲染依赖远近坐标计算,环形边界会让渲染管线同时渲染两个相距 6000 万格的区域,出现透视撕裂、贴图闪烁。
  • 0
    Registered User commented
    Comment actions Permalink

    So like pac-man? 

  • 0
    Registered User commented
    Comment actions Permalink

    It's actually quite simple, either portals or 2 dimensions in one world, and the problem with numbers, coordinates and everything else from Java is solved, it's all about architecture 🕶️