Cuberite Forum

Full Version: Some semi-random thoughts on terrain generation
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Bukkit has 157 generator plugins. Do you really want to include 150 generators in mcserver? We can write a c++ interface that would cost the same in runtime as the current generators using shared objects. But then we would need a versioning system because miss matched c++ vtables are nasty.
The question is, are all of those 150+ generator plugins true rewrites of the generator, or do they only change some constants in the default generator, or add some rare contents? I believe most of them would work well enough within our current API.

If we needed really performant Lua generators, the proper way to go would be to write a set of C++ classes that handle the 2D and 3D arrays of NOISE_DATATYPE, and operations with them - GeneratePerlin, Multiply, Add, Threshold, etc. This way the calculation-heavy code will be in C++ while the plugins will still have the chance to use it.
I tried doing that with the c++ generators a while back and it turns out most of the generators have weird control flow that makes it difficult to express generators as a set of maps of the chunk data. However if we do go down that route it would make GPU generators a lot easier.
It looks like lakes don't like overhangs: http://puu.sh/7O7il.jpg
Yeah, they do that, and I haven't thought of a way to fix this yet. Even more spectacular when a lava lake does that Smile
We can say its a geyser, so its a feature.

World generation = art, and art is always never wrong!
Geyser underground, yeah right Smile And flowing downwardsTongue
First attempt at village generator: Not so great.
[Image: village1.jpg]
That is actually a pretty good start! Just need to fix the height...
Hmm, I go from extreme to extreme. My first village attempt had exactly 4 houses. My second village has a zillion houses:
[Image: village2.png]
But at least the general shape of the roads and house placement is kinda okay, this should be possible to tweak into something useful.