Minecraft: Terrain Generation
Written by fael on junho 13, 2011
A alguns meses o Notch criou um post [1] falando sobre a geração de terrenos no Minecraft e interessante o que ele faz. A gente fala que o mundo é gigante, mas na verdade ele é “infinito”.
O mundo é divido em chunks, que são “pedaços” de mapa de tamanho 16 de largura, 16 de comprimento por 128 de profundidade. Quando o jogo é iniciado são carregados 81 chunks [2], um total de 2654208 blocos – acho que por isso o jogo é tão pesado. É um grafão. O resto do mapa não é gerado. Caso você atravesse os 81 chunks uma nova remessa é criada.

A tristeza da solidão em um mundo infinito
O número de chunks só é limitado na verdade pelo tamanho da variável que guarda a sua quantidade. É um inteiro de 32 bits. 2^32, de -2147483648 a +2147483647. Esse é o máximo de chunks. Logo é possível ter um mapa de 274.877.906.944 por 274.877.906.944 blocos, mais ou menos.
Levando em conta que a velocidade do personagem é de ~5 blocos por segundo [3], pela teoria, sem utilizar nem um hack, levaria cerca de ~1767 anos para atravessar de uma ponta a outra, jogando 24 horas por dia. Na verdade o jogo começa a ficar instável bem antes devido a erros de redundância de números decimais, assim Steve começaria a entrar por dentro dos blocos e a andar mais lento ~13 anos depois do início da maratona.
Minecraft é uma aula de programação.
[1] http://notch.tumblr.com/post/3746989361/terrain-generation-part-1
[2] http://www.minecraftwiki.net/wiki/Chunk
[3] http://www.reddit.com/r/Minecraft/comments/df4cz/character_walking_speed/
Posted in: Games
One Response to “Minecraft: Terrain Generation”
challenge accepted!
Responder
By Harry Stark on jul 7, 2011