From what Notch said a while ago, he switched to using floating point variables to represent block positions. This allows for nearly infinite worlds in theory. However, the map generation and the game engine itself go crazy at very large adressess because of precision errors. The precision of any floating point representation will at some point fall below the level where each block can be adressed uniquely (i.e. the difference of two consecutive values will be greater than two).

From what Notch said a while ago, he switched to using floating point variables to represent block positions. This allows for nearly infinite worlds in theory. However, the map generation and the game engine itself go crazy at very large adressess because of precision errors. The precision of any floating point representation will at some point fall below the level where each block can be adressed uniquely (i.e. the difference of two consecutive values will be greater than two).

This is why I can't understand why he chose to use floating point variables for blocks. Not only are floating points slower than integers, but you run into problems like these. If he used longs (64-bit), that means 2^64 blocks along any axis, which is still pretty damn big. That means that the total map area could be 3.4 x 10^32 square kilometers, which is absolutely insane.

Now I imagine he used floating point so that positions smaller than a block could be stored (such as player position, or whatnot). Even so, floating point is not necessary. Simply considering the last, say, 3 digits of the long to be sub-block position would suffice. The math would still be exact and he wouldn't be using slow floating point.

Anyone else have thoughts as to why he is using doubles?

The size of variables used in the game support a map of 8x the surface area of the Earth. Operational constraints limit a *practical* map to about 1.8x the size of the Earth. Both of these figures depend on you having sufficient hard drive space.

I've heard these statistics before, and they make sense.

Also, just like to note that any video purporting to show the 'end of a world' is almost certainly a video in which data associated with world generation is tweaked so that nearby chunks load under conditions that are similar to those found at the edge of the actual map (apparently, due to the way chunks are generated, maps become more chaotic the farther you move from the spawn, though the differences aren't extreme enough to notice unless you move an insanely significant difference-I wouldn't be terribly surprised if no map had legitimately reached such a distance).

If someone were to change their .dat file so that their spawn was a very large distance from the center of the map (preferrably close to the edge of the map) and then kill themselves, theoretically they should spawn at that point and be able to see the edge of the world without having to walk for years upon years.
I'm tempted to generate a world and do this, actually.

2^64 = 1.84467441 × 10^19 (Argh, why can't calculators just display the whole number? Specifically google calculator)

That there is the maximum size of a 64-bit integer (Damn me if I'm wrong, but I did teach myself Binary).

Minecraft calculates block positions by using 64-bit integers, so if it tries to generate a block outside that reach, it will malfunction, and you will see what you got in that video.

Rollback Post to RevisionRollBack

I'm not officially on these forums anymore, as I've quit to the new forums. If you see me online here, it's because I'm inviting people.

From what Notch said a while ago, he switched to using floating point variables to represent block positions. This allows for nearly infinite worlds in theory. However, the map generation and the game engine itself go crazy at very large adressess because of precision errors. The precision of any floating point representation will at some point fall below the level where each block can be adressed uniquely (i.e. the difference of two consecutive values will be greater than two).

This is why I can't understand why he chose to use floating point variables for blocks. Not only are floating points slower than integers, but you run into problems like these. If he used longs (64-bit), that means 2^64 blocks along any axis, which is still pretty damn big. That means that the total map area could be 3.4 x 10^32 square kilometers, which is absolutely insane.

Now I imagine he used floating point so that positions smaller than a block could be stored (such as player position, or whatnot). Even so, floating point is not necessary. Simply considering the last, say, 3 digits of the long to be sub-block position would suffice. The math would still be exact and he wouldn't be using slow floating point.

Anyone else have thoughts as to why he is using doubles?

The reasoning eludes me too, but it might have something to do with object positions within one block (as you already said) and avoiding problems with rounding (at sensible rannges).

However, what you say about floats being slower has not been true for ten, maybe twenty years. Even if you take raw assembly, the CPU should be able to execute floating point instructions just "as fast" as any other. Of course, with pipelining, out-of-order execution, branch prediction and other cool things, one can't really objectively say that this instruction is faster than that one. And with the added overhead of the JVM, the comparison doesn't really make sense.

Quote from mr0 »

Hm how much hard disk space would be required to store the entire world? :biggrin.gif:

Someone did the math a while ago, if I remember correctly it was on the order of several petabytes.

Therefore, Nether is 8 times smaller than the overworld, which is 8 times bigger than earth.

So Size of Nether = Size of Earth, and therfore....

...
Nether = Earth

oh god

That would be 8 * 8 = 64 times smaller, dear sir

Sorry I creepe'd your joke

What? No. MATH:

Let n be the Nether.
Let o be the Overworld.
Let e be the actual Earth.

o = 8e
n = o/8
Sub 8e for o.
n = 8e / 8
n = e

Therefore,
Nether = Earth. LAWESOME

Rollback Post to RevisionRollBack

Quote from wyrmhole »

First you measure the circumference of your cranium.
Then you look up some literature to determine the average elasticity of anal sphincter muscle.
That'll tell you if you can fit the former through the latter, and if so you can find the answer inside!

The map extends 32 million blocks in every direction from the center of the map, making a square 64 million blocks on a side. Since each block is supposed to be a cubic meter, than means 64,000 kilometers.

Area of minecraft map: 4,096,000,000 square kilometers

Surface area of Earth: 510,072,000 square kilometers

That's where the figure "eight times bigger than Earth" comes from: a map can theoretically have 8 times the surface area of Earth, but there's presently no computer capable of storing it.

However, as shown in this video, due to rounding errors the game flips out when you're more than a couple million blocks from the map origin, so the playable area is a lot smaller than the theoretical maximum.

Actually, the Nether can expand beyond the possible map. Presumably it can be just as large as the main world, its just that a certain distance out, portals don't work anymore.

But on both earth and minecraft, traveling in whatever direction, it looks flat.

So there is no telling if minecraft is flat or a sphere.

NUFF SAID.

There are ways. If we could manage to see if we could get a cannon to launch somebody fast enough, and they continue to rotate around the Minecraft sphere, then it's round.

I don't take the time to read every reply, but I'm pretty sure the world will be as big as your computer can handle. 8x bigger than Earth is probably an amazing computer.

Rollback Post to RevisionRollBack

There's only one way to find out. We must tie him up and throw him in the lake. If he lives, he is a whitch. If he dies, he is human. MY LOGIC BEATS YOURS.

on the far reaches of earth there is mystyrius land where things render like there is only half of it, the game is super laggy, andeventuly it crashes, more information about this can be found on http://www.minecraftwiki.net/wiki/Far_Lands

That would be 8 * 8 = 64 times smaller, dear sir

Sorry I creepe'd your joke

Grammar nazi with English as his second language is never amusedEpic troll threads:

COD is better

Remove all blocks

Glimmar's Steampunk texture pack.

This is why I can't understand why he chose to use floating point variables for blocks. Not only are floating points slower than integers, but you run into problems like these. If he used longs (64-bit), that means 2^64 blocks along any axis, which is still pretty damn big. That means that the total map area could be 3.4 x 10^32 square kilometers, which is absolutely insane.

Now I imagine he used floating point so that positions smaller than a block could be stored (such as player position, or whatnot). Even so, floating point is not necessary. Simply considering the last, say, 3 digits of the long to be sub-block position would suffice. The math would still be exact and he wouldn't be using slow floating point.

Anyone else have thoughts as to why he is using doubles?

I've heard these statistics before, and they make sense.

Also, just like to note that any video purporting to show the 'end of a world' is almost certainly a video in which data associated with world generation is tweaked so that nearby chunks load under conditions that are similar to those found at the edge of the actual map (apparently, due to the way chunks are generated, maps become more chaotic the farther you move from the spawn, though the differences aren't extreme enough to notice unless you move an insanely significant difference-I wouldn't be terribly surprised if no map had legitimately reached such a distance).

I'm tempted to generate a world and do this, actually.

-mc3488.servercraft.co:1595-http://www.minecraftforum.net/topic/334608-theelementalminers247group-system/

That there is the maximum size of a 64-bit integer (Damn me if I'm wrong, but I did teach myself Binary).

Minecraft calculates block positions by using 64-bit integers, so if it tries to generate a block outside that reach, it will malfunction, and you will see what you got in that video.

No you can't join, stop asking.

The reasoning eludes me too, but it might have something to do with object positions within one block (as you already said) and avoiding problems with rounding (at sensible rannges).

However, what you say about floats being slower has not been true for ten, maybe twenty years. Even if you take raw assembly, the CPU should be able to execute floating point instructions just "as fast" as any other. Of course, with pipelining, out-of-order execution, branch prediction and other cool things, one can't really objectively say that this instruction is faster than that one. And with the added overhead of the JVM, the comparison doesn't really make sense.

Someone did the math a while ago, if I remember correctly it was on the order of several petabytes.

What? No. MATH:

Let n be the Nether.

Let o be the Overworld.

Let e be the actual Earth.

o = 8e

n = o/8

Sub 8e for o.

n = 8e / 8

n = e

Therefore,

Nether = Earth. LAWESOME

Area of minecraft map: 4,096,000,000 square kilometers

Surface area of Earth: 510,072,000 square kilometers

That's where the figure "eight times bigger than Earth" comes from: a map can theoretically have 8 times the surface area of Earth, but there's presently no computer capable of storing it.

However, as shown in this video, due to rounding errors the game flips out when you're more than a couple million blocks from the map origin, so the playable area is a lot smaller than the theoretical maximum.

Sigged lol. Also diamonds for the witty response +1 :Diamond:.

There are ways. If we could manage to see if we could get a cannon to launch somebody fast enough, and they continue to rotate around the Minecraft sphere, then it's round.

If only.