In a recent Yogscast video it was mentioned that you always spawn on sand in a new world, is this true?
-
It also seems like you spawn very close to sea level and/or water, not just on sand anywhere– Nick TCommented Apr 25, 2011 at 14:31
-
I suspect that you don't spawn on sand, but rather at a certain surface height (as Nick T and Ronan Forman point out, so that you are close to land and water), and that height is usually sand.– Kevin ReidCommented Apr 25, 2011 at 18:11
4 Answers
As of 1.8, you do not always spawn on sand. I'm afraid I don't have source code to post, but in all of several worlds I made, I did not spawn on sand.
LATER:
This is my first foray into decompiling, but if I understand this right, the new initial spawn code does not mention sand at all.
public static void getInitialSpawnLocation()
{
scheduledTickTreeSet = a(scheduledTickTreeSet, "stat.useItem", 0x1020000, MovementInputFromOptions.m.length, 32000);
scheduledTickSet = b(scheduledTickSet, "stat.breakItem", 0x1030000, MovementInputFromOptions.m.length, 32000);
field_1019_F = true;
setSpawnLocation();
}
setSpawnLocation
is much bigger and filled with fun statements like
Iterator iterator1 = OpenGlCapsChecker.a().b().values().iterator();
So I thought it best not to post it. Nonetheless, I saw no mention of sand in it either. I checked both World.java and WorldProvider.java. The code posted by yatima2975 does not appear to exist any longer.
-
2MCP looks fun though, I'll look into posting the code. Commented Sep 17, 2011 at 17:24
-
Yep. This is the first thing I noticed when I started up 1.8. Commented Sep 17, 2011 at 23:54
-
2
Note: As of 1.8, you do not always spawn on sand.
Yes, you do always spawn on sand. Here's a few snippets of the source (decompiled by MCP):
From World.java,here's the function that gets called when opening a world:
protected void func_25098_c() {
findingSpawnPoint = true;
int i = 0;
byte byte0 = 64;
int j;
for (j = 0; !worldProvider.canCoordinateBeSpawn(i, j);) {
i += rand.nextInt(64) - rand.nextInt(64);
j += rand.nextInt(64) - rand.nextInt(64)
}
worldInfo.setSpawn(i, byte0, j);
findingSpawnPoint = false;
}
From WorldProvider, the relevant function called:
public boolean canCoordinateBeSpawn(int i, int j) {
int k = worldObj.getFirstUncoveredBlock(i, j);
return k == Block.sand.blockID;
}
So, when Minecraft starts setting the spawn point, it begins at X/Z 0/0 and moves the point around randomly (with steps of at most 64 in the cardinal directions), until the topmost block at the spawn point is sand.
As to why this happens to be near sea-level (most of the time), I'm not sure, probably sand has a higher chance of generating there.
Using purely anecdotal evidence: Yes
I have just created 10 new worlds and every single one of them has been on sand (and near water).
This is probably due to the idea that you wash ashore on an island at the start of the game.
-
This is, to the best of my knowledge, true. There were a couple of youtube videos called "Minecraft Mythbusters" or some such, and they came to the same conclusion. Commented Apr 25, 2011 at 14:58
-
1It could also be so that you get to experience both water and land areas upon starting the game (ie, not spawning in the middle of a continent, or in an ocean)– KeaanuCommented Apr 25, 2011 at 17:12
-
Spent about 30min searching forums and the wiki and such (even loaded some of the 'odd' spawning seeds from minecraftseeds.info) and this does indeed seem to be true... so +1 for that :)– JamesCommented Apr 25, 2011 at 21:27
-
4It is worth noting that even in a winter biome, will spawn in a shore, on snow... with sand below the snow.– badpCommented Apr 25, 2011 at 21:56
I have been trying about ~20 times, and in all of those worlds i spawned on sand, and near to a water source. However, if you use a seed in the seed generator such as 3666440496532277820, you will spawn in a dungeon (cobblestone/mossy cobblestone)
-
I'm sorry but the spawn point is independent of the seed, it is determined by the computer time, next time the seed it used a different spawn will be used.– RonanCommented Apr 26, 2011 at 16:08
-
@Ronan Have you tried it? I got spawned in a dungeon as well. Pitch black and a spider. Oh and fun note. Turn to peaceful and stand on one of the sides of the dungeon spawner and dig up. You'll hit, guess what, sandstone.– badpCommented May 6, 2011 at 23:05
-
@badp The map seed is only used by the world generator, and not for other stuff (such as spawn location, how many items mobs drop etc). ~Mojang blog– RonanCommented May 7, 2011 at 12:49
-
-
@Ronan, when I tried this a couple times with the magic seed, I always spawned in the dungeon. I suppose it could be that the seed limits the where the random spawn selection can choose.– Nick TCommented May 11, 2011 at 15:03