Creo que entiendo mejor lo que estás preguntando ahora.
El ruido no es aleatorio: tiene un aspecto aleatorio, pero se basa completamente en una fórmula matemática y es repetible. Toda la información está codificada en la fórmula. Esto significa que puede tener una fórmula que potencialmente cubra un área infinita, y simplemente use la fórmula en las coordenadas del área que necesita. Cuando necesite un área adyacente, simplemente reutilice la fórmula en las nuevas coordenadas, y dado que la fórmula produce valores continuos, las áreas se unirán perfectamente.
Aquí hay un ejemplo simplificado, usando seno en lugar de ruido perlin para la generación de altura, e imaginando que el mundo es infinito en el eje X pero solo 1 unidad de altura en los ejes Y y Z.
La fórmula es: height(x,y) = sin(x/20)
El juego comienza, y generamos alturas para el área cercana, es decir. (0,0) a (9,0):
[0.0, 0.05, 0.10, 0.15, 0.20, 0.25, 0.30, 0.34, 0.39, 0.43]
Tenemos una colina que se eleva hacia la derecha. Digamos que caminamos hasta el final y necesitamos generar los valores desde (10,0 a 19,0) ahora:
[0.48, 0.52, 0.56, 0.61, 0.64, 0.68, 0.72, 0.75, 0.78, 0.81]
Observe cómo la colina sigue subiendo constantemente, y que el valor en (10,0) sigue muy bien del valor en (9,0). Esto se debe a que la función seno es continua, lo que básicamente significa que si la ingresas 2 números adyacentes, obtendrás 2 resultados adyacentes, para una cierta definición de adyacente. Entonces, si usa las coordenadas de su mundo como los parámetros de la función que define su mundo, obtendrá un paisaje continuo que se ajusta sin importar la cantidad o la cantidad que genere a la vez. Cuando genera nuevas partes, fluirán automáticamente de las partes existentes, porque las alturas ya están predeterminadas.
Si el mundo no va a cambiar, ni siquiera necesita almacenar nada, ya que puede calcular exactamente cuál es la altura en cualquier punto de la fórmula. Obviamente, con algo como Minecraft, el mundo es totalmente deformable, por lo que solo debe guardar cada fragmento a medida que lo crea. Dado que existe un alto grado de coherencia entre los fragmentos adyacentes (es decir, si 1 bloque es hierba, es más probable que el bloque al lado sea hierba también) puede comprimir los datos de manera muy eficiente: la codificación de longitud de ejecución funcionaría bueno, pero también lo haría casi cualquier algoritmo de compresión estándar
Mientras que he hablado de la altura como el valor más obvio, puede usar el mismo sistema para generar cualquier característica que desee. Utilice una función matemática con propiedades continuas y donde las entradas son las coordenadas de su mundo y eso puede decidir la presencia de puntos de referencia, depósitos minerales, puntos de generación, lo que desee. (Obviamente, los valores en una fórmula pueden afectar a otra: no tiene sentido colocar un depósito de carbón en el aire, por lo que genera el mapa de altura mundial y luego solo calcula las posibilidades de carbón para los bloques que están lo suficientemente lejos bajo tierra).