Snowiiii / Pumpkin

Empowering everyone to host fast and efficient Minecraft servers.
MIT License
580 stars 25 forks source link

World Generation #36

Open Snowiiii opened 3 weeks ago

Snowiiii commented 3 weeks ago

This will be a fun one. I bet this will take longer than a week :c

Packets

Resources:

Random's

Mojang uses some own Random implementations.

The map is built using a sequence of fairly simple operations, referred to as “layers”, which are stacked on top of each other. Each layer takes the biome map from the previous one, adds some details, and passes it to the next one.

image

Terrain:

image

Finally, the third phase populates the world with the remaining features. Structures like villages, strongholds and ocean monuments are placed first, followed by decorative elements like trees and grass. This is also when ore veins are added in the world, in a process not dissimilar to the ones used by “Infiniminer”.

image

Biomes

Resources:

Offland biomes (islands/oceans)

Highland biomes

Wetland biomes

Flatland biomes

Arid-land biomes(it neither rains nor snows at all, but the sky still turns overcast during inclement weather.)

Cave biomes(oh hell they exist as well :c)

Void biomes

Nether (hell (literally) it does not end)

The End (this game is endless)

Structurs

Resources: https://minecraft.fandom.com/wiki/Structure

Overworld

Underground structures

Aboveground structures

Aboveground and underground structures

Underwater structures

Nether

The End

End City

Structure-like features

mhh. maybe 2 weeks

Bryntet commented 3 weeks ago

Idea, maybe a first start could be to implement superflat, we also should probably have an enum with the different world-gen options (noise, debug, superflat, normal)

Snowiiii commented 3 weeks ago

Idea, maybe a first start could be to implement superflat, we also should probably have an enum with the different world-gen options (noise, debug, superflat, normal)

Good idea

CoolSlimbo commented 3 weeks ago

To add, slime chunks are also needed to be generated.

NiLSPACE commented 3 weeks ago

Another resource that could be useful : http://cuberite.xoft.cz/docs/Generator.html

It documents the way Cuberite's world generator works. I believe Feather also based their generator on it.