Sedimentology
Project Moved to Minetest
I am ceasing all Bukkit-related development, and instead focusing on a 100% GPL Voxel game called Minetest. I have ported this plugin over to Minetest, and encourage everyone to switch with me.
This project is *not* dead (on the contrary) but there will be no new releases for Bukkit or any minecraft server mod. No permissions to take over or maintain the current project page on dev.bukkit.org are granted.
For more information, Visit the Minetest Mod releases Forum.
Cheers,
s0f4r.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Quick links: <Concepts> <Configuration> <Screenshots> <Bugs>
Sedimentology
a bukkit plugin that simulates erosion and sedimentation
Description
This plugin attempts to create processes that are involved in the transport and deposition of sediments:
- water picking up material
- transportation down slopes
- weather influence
- material falling down cliffs
- material decaying/degrading into smaller grained materials
- creating thicker piles of snow, and thawing snow
The plugin doesn't properly recreate real geologic processes, instead it mimics the bahavior of erosion and deposition by rolling a dice for most of the factors involved, and if the roll was succesful, proceed to the next step.
Material hardness and resistance are taken into account - some materials are easier displaced than others. Some materials degrade easier than others. Some materials (sand) have a different angle of repose.
This plugin isn't meant to enhance game play per se, it will operate slowly over time and vegetation will prevent most of it's effects from taking a toll on the landscape in most cases, so it will take a long time in default settings from actually doing anything noticeable. Because dirt naturally gets a grass cover in Minecraft it will be unlikely that this plugin does significant damage to your world. Of course, planting stuff is still advisable if you want to reduce the effects of the plugin further.
From version 8 on and higher, this plugin will create thicker piles of snow, potentially up to several blocks high. Snow accumulation and melt are based on various factors and will create thick snow covers on mountain tops, and thin covers near snow edges or lower down. Daylight and sunshine cause snow melt, and the plugin can even remove all snow cover entirely over time if the parameters are right.
Do you like a more dynamic world? Please check out my Botany plugin too!
Screenshots
Please have a look at the screenshots page here.
Concepts
Please have a look at the in-depth Concepts of Sedimentology page here for more information on the concepts of this plugin.
Configuration
Please have a look at the Configuration page for console commands and configuration options.
Factions / Towny / WorldGuard
These plugins provide ways to protect blocks from being modified, and Sedimentology can interface with them to see if blocks are part of a Faction claim, Towny town, Residence claim etc. If the protection feature is enabled in the config.yml file, and one or more of these plugins are loaded, then Sedimentology will not modify blocks in any region that these plugins have on file. Snow buildup, however, will still take place everywhere, since it's a reversible process that is not destructive.
The testing that I do for these plugins is limited - please report any issues in the bug tracker on github.
Tested are these versions:
- Factions 1.6.9.5
- Factions 2.3.0 with mcore 7.0.1
- Towny 0.84.0.9
- WorldGuard 5.8
Bugs / Code
The project code is hosted on my github page: https:github.com/sofar/Sedimentology.
Please file all bugs and feature requests here: github.com/sofar/Sedimentology/issues/new
Due to the overwhelming number of requests and issues I'm receiving for this plugin I request that everyone please file all issues on the github issue tracker. You can file support requests, errors or crashes, feature requests and report problems with this plugin.
The main page thread can be used for discussion just as it is being used right now, and I have no problems with people discussion issues there, but please take the courtesy of filing an issue for problems you see so I can properly track all reported problems and do not need to scan through the many pages of comments.
For bugs, tips, donations please feel free to contact me: Auke Kok - [email protected]
@pilvimaa
At that location with that seed I only see rainfall, there is never any snow created. The surroundings (100-block range or so) have appropriate levels of snow. Both with spigot and with bukkit.
The Sedimentology plugin looks at the block temperature and determines whether to stack more snow on existing snow, only. Only thing I can think now is that you have a plugin or setting modifying the temperature of blocks?
@s0f4r
As far as I could tell the when the snow was generated at the Taiga biome it was always/most of the time 2 layers thick which I found peculiar. It seemed as if Sedimentology assumed the ground already had 1 layer of snow - which it didn't.
Seed: 4592794291021271700
x: 2000 z: -2300
My server runs on Spigot 1.7.2. build 1223 (latest at the time of writing)
@pilvimaa
Hi pvilmaa,
Thanks for testing! If you can, post seed and x/y/z so I can duplicate the issues easily.
The snow code doesn't generate the first layer of snow, so if you see snow in a location, it's there because the core server code put snow there. The plugin will stack the snow higher, but never puts down the first layer.
The snow thickness created by the plugin has algorithms to make the edges and surfaces smooth. It does a fair job but you can still get a 1-block high edge in some places. Snow melt is also random, I probably should add a smoothing function while doing melt to keep the smooth snow cover around better.
The smoothing function should prevent the edges from ever getting out of hand, the edge block of snow should never exceed 1 block height. The randomness eventually doesn't matter, but again I do have to apply smoothing when melting the snow too, so ignore any strangeness when there is no snowfall for now.
Edit: I've been playing around with making snow thawing more smoothed out and it works pretty well - I also added that the last snow layer doesn't disappear unless it's at an edge, which reduces the irregular shapes when melting persists. It looks pretty decent so far but I can't entirely get rid of the RNG effects that refuse to thaw a stack - example: I just did 1000+ attempts to thaw a snow stack and the RNG refused to roll favorably, thus beating the 1 in 10 odds or so that a stack will thaw. Still, the area looked really good with the new thaw code.
I found a small bug with Sedimentology-8 and I have some questions.
I have been testing out the new Sedimentology-8 and the snow feature is very cool but are you aware that you are generating snow in Taiga biome? Ever since 1.7 Taiga is no longer a snowy biome - we have now Cold Taiga and it's variants to take that role. Therefore you should not generate snow in Taiga as it is in fact a completely snowless biome.
But since this is happening it gives an interesting opportunity to observe the patterns in which the extra snow is being generated. It seem to generate in piles, one pile here one pile there not much in between (during one single bout of snow).
About the specifics of the snow generation, I have a few questions to ask:
Given enough time how much snow will Sedimentology generate? Is there a limit or will the snow just keep piling and piling up until it hits world height limit? :-) will it generate more snow on snow blocks?
Have you taken biome borders into account - generating a sort of buffer zone so that snow will even out before it vanishes when it reaches the next - warmer climate. What about biomes next to each other that are both cold biomes? No need to do that there, I suppose. What about height differences? It now snows at high mountain peaks at most biomes. Towards the edge of the peak where the height is low enough for it to rain - are you evening out the snow or will there be sharp edges of snow (4 blocks high snow -> move 1 block down -> 0 snow)? Because it would be cool to take it into account. It looks rather ugly otherwise.
Have you taken into account ice? Like you said in your change log Minecraft won't let you place snow on ice ... but do you have a "buffer zone" setup between the ice of lake shore and the snow? It will probably look very ugly if you have ice here at .. let's say height 62 and then right next to it you'd have snow which has piled up to height 64 with a sharp drop ..
Borders around a heat source like lava lake?
And what about evening out snow piles during a snowstorm? Do you check for height differences in the snow levels in surrounding blocks before generating more snow on a block? In real world situations the snow cover will always be rather even, except in situations where the terrain and winds gather larger piles. But in Minecraft it looks rather ugly if you generate snow here and there randomly because it will not even out and become a smooth surface quite the way it would naturally do unless you pay special attention to it. I don't think doing it 100% randomly will cut it in the long run.
All of these things are a non-issue if you only have the vanilla 1 layer of snow. Mojang probably did it the easy way so they wouldn't have to think about these kinds of situations.
But all that said I really really like the concept. I hope these questions gave you some good ideas in case you haven't already taken all of them into account.
Sorry for the longish rant. I'm just still so super excited about this plugin :-)
EDIT: I was testing it some more, set it to 10000 blocks / second to speed things up a bit. At least mountain tops look very nice. I will now test lakes. Hm, yes. Ice borders start to look a bit nasty after there is enough snow. Sharp borders. But I suppose it's a difficult problem to solve.
I've uploaded Sedimentology-8 for 1.7.2-R0.2. This release has a lot, a lot of small fixes and adds "snow accumulation" which helps to create glacier-like erosion (sans the actual ice blocks) patterns. More in the changelog notes of the file release.
Enjoy your white minecraft X-mas, now with piles and piles of thick snow!
(As usual, it takes a day or so for the release to become public, sorry).
@s0f4r
Ah, now that makes more sense! :P
@TheSigler49
I'm assuming he's taking a class on Sedimentology, which is an actual subject if you study geology. I have taken several Sedimentology courses myself, including field work. They're fun, lots of fun.
@ricardotill
There is a class on how to add erosion to minecraft? o_O Sign me up!
Super original plugin you have! Really awesome! The ironics.... On college we are learning this now!
If you have time from other more important things, perhaps you could add autoupdate code for the config.yml. At the moment if there are new config options you have to manually update the config.yml or delete it.
@s0f4r
Awesome, thanks!
@TheSigler49
The download link works for me - just choose a version on the side (v4 for 1.6.x, v6+ for 1.7.x).
I'm looking at WorldGuard integration right now, shouldn't be too hard to do.
Edit: Just worked through the APIs and I think I have WorldGuard support nailed down. I'll push to github, but I'll take a few days of time to test and roll out a new release - there's a few bugfixes that still need to go out as well but aren't done yet.
Download link not available?
Also, any idea how to make it so it doesn't affect ANY world guard region.
@KevinABC96
Possibly, modifying trees to fall over isn't easy though, and wind transport (as I said in an earlier thread) has some tough problems as effectively you'll need to move blocks horizontally.
In nature, this really happens in tiny, tiny bits at a time as sand grains slowly move. However, in minecraft we're confined to move at minimum about 6000lbs of sand at a time (the rough weight of one block of sand!). At best it would be a crude replication of real-world effects, but the way it would have to be done in-game would be far from looking normal.
@pilvimaa
I just did some tests and this can indeed currently happen. The root cause is that when decaying one material into another, I don't always reset the data byte attached to each block to 0. This usually doesn't cause problems, as most blocks won't have any data values set, but it might in 1.7.x due to some of the new blocks. Specifically, Chiseled sandstone and grassless dirt (!) and the various colored clay types. What happens is that they decay into gravel with data=1, then into dirt with data=1, then ultimately into sand with data=1, and that's when red sand finally appears. I've also seen podzol being created from smooth sandstone as well. I'll make a note and fix the plugin to always reset the data bit to 0 for all rock types that we don't want the data value to be carried over.
I've seen red sand forming in deserts due to erosion. Just 2 blocks so far in places where there has been water flowing. I suppose they could have been placed there by someone but I find that unlikely due the way they have been placed. Could you double check your code for this? As I'm guessing this is not intentional. Before all the deserts turn red... :-)
v6 is pending acceptance and adds an option to increase the time between ticks ("ticks" integer in config.yml). I've also removed the "protect" option from the command line, as it doesn't make much sense to modify that setting in the game. Should be downloadable soon. Enjoy.
For afterwards, I'm working on adding snow accumulation and glacier formation, so we can create possible glacier erosion effects - possibly converting many blocks into gravel at higher altitude - glaciers are gravel producing and transporting machines.
@pilvimaa
I'll add a setting that allow you to modify the ticks interval. It will be something that can only be set through the config.yml file, though, but it should be useful for a lot of server operators.
Edit: since blocks/ticks are integers, the settings will remain an integer value - you won't be able to pass a fractional block count, since that makes no sense.
I found setting 10 and 5 to be too fast for my taste. I'm now testing blocks: 1.
I don't suppose you could rework the settings a bit to allow it to have more range for adjustment. Something like down to 0.001, so it would skip some 20 tick sequences.
I am assuming that this isn't supported yet.
Thanks :-)
@pilvimaa
The "blocks" setting determines the amount of attempts per tick (there are 20 ticks per second) that a random block will be eroded by the plugin. The default setting is 10. Lowering it to 1 makes the plugin work 10x as slow.
When you initially deploy the plugin, no matter how low the setting is, you will quickly see stuff erode just because some blocks are easy to erode, that's always possible. It only takes one badly placed block (e.g. between water and a chasm) to create a waterfall with all the following cascade effects. The erosion rate will always be the highest when you deploy the plugin in a new world. After the initial easy erosion, things will slow down and reach a balance where things won't erode as fast anymore.