LF Feedback: Custom biomes, seasons, real rivers, worldgen

Discussion in 'Spigot Plugin Development' started by FlyingLlama, Aug 24, 2016.


Would you use the season system on a server?

Poll closed Oct 23, 2016.
  1. Yes

  2. No

  3. With changes/improvement

  1. I am looking for feedback on a large plugin i am making that will add highly configurable custom biomes, trees, world generators and new world types, mainly seasons and new biome feedback, but any suggestions are welcome.

    The features so far:
    Custom biome placement algorithm:, based on conditions: altitude, temperature, rainfall, distance from oceans, and some other maps to add randomness or rare biomes.
    This is an improvement on the better biome placement minecraft added in 1.8, but it also allows total customization of the biomes in a world.

    Biomes chosen per-world: Each world has a list of biomes and the conditions under which they are generated, so an all-desert world, an all-forest world, or any other combinations are possible.

    Ocean is no longer a biome: Biomes are split up into land biomes and ocean biomes, by default there will be normal, warm and frozen ocean, island biomes, and beaches/cliffs along coastlines. Adding underwater biomes like coral or kelp forests is possible.

    Real rivers and lakes: I am making an algorithm that will make real, gravity/terrain-following rivers that path across the lowest points in the landscape, ending in lakes or the ocean. River size would scale along with length, and would be generated independently of chunk generation (the river and river edge biomes are stored in a biome map up to two regions outside the current generation area). The same code could be adapted for lava rivers and volcanos.

    Custom Trees: A multithreaded tree generator for creating larger and more complex trees, it will be configurable on a per-biome basis, supports seed numbers for trees, and highly customized trees via config files. Meanwhile EpicWorldGenerator just pastes a couple dozen tree schematics :rolleyes:

    Seasons (Experimental): Each biome would have a default vanilla biome that is what the player sees (determining plant color, sky, water, rain/snowfall). Optionally, each biome can also have four more IDs for other biomes. In worlds with seasons enabled, the visible biome would be changed over time, and the custom decorators for small plants, snow, ect would have season-specific states: deserts would have spring plant growth, forests would change color, ect.

    Optifine Biomes: Some biomes will require optifine/CTM features for biome-specific textures, this will greatly aid seasonal change and making special biomes like bamboo forests, marshland, different colored deserts, ect. CTM biomes can be turned off per-world.

    Per-Biome terrain generator: Each biome generates columns of blocks with a unique generator, settings are "smoothed" between nearby biomes to prevent random cliffs or sharp, ugly borders. This could allow things like a smooth transition from normal biomes to skyland biomes, or just mathematically different

    Configurable undersampling
    : Minecraft naturally generates terrain at 4x4x8 undersampling,meaning it only generates every 128th block and averages the ones in between. For those pre-generating worlds and looking for more detailed terrain, i have working support for 1x1 (no undersampling), 2x2, 2x4, and 4x4 sampling.

    New dimensions (WIP): Skylands with normal biomes, Fantasy Skyland, Elemental plane biomes to replace the boring, useless nether.

    New Biomes: These are replacements for the vanilla biomes, but most will be relatively similar to them.
    (Feel free to suggest any others you want to see)

    Ocean biomes:
    Warm Ocean - shallow with sponges, lighter color
    Frozen Ocean - ice-covered
    Deep Ocean

    Coral Reefs
    Rock Reefs
    Several island types based on climate

    Land Biomes:

    Beaches - normal, red, white sand, rocky
    Cliffs matching the beaches, some with layered colored sandstone, maybe some of the 1.10 fossils
    Salt Marshes and river deltas
    Mangrove Forest

    Plains: found on flat land at all altitudes
    Grasslands - lush grass plains with some trees, replacing 1.10 vanilla plains
    Praerie - seasonal tall grass plains
    Savanna - seasonal dry grasslands with many small trees
    Normal and red sand deserts with a new sand dune generator
    Rocky deserts (southwest US, atacama desert)
    High Grasslands - darker colors, snow in winter
    Tundra - partial summer thaw with plants
    Marshland - open water, reeds and grasses, small pools
    Cyprus Swamp (southern US) - huge trees with trailing branches and moss rising out of the water
    Other biomes will be added to fill space as needed

    Forests: Found in higher-rainfall areas than plains, and some rougher terrain
    Oak Forests and Old Forest will replace forest and dark forest, massive trees and seasonal changes
    Birch forest will change color with the seasons and will be found in colder areas.
    Maple forests (CTM/optifine)
    Redwood/sequoia forests will no longer be pathetic (1.8 mega taiga)
    Bamboo forests (CTM/optifine)
    Alpine forests of mixed pines and birch, snow in winters
    Seasonal rainforests (west africa, australia)
    Rainforest replaces vanilla jungle with more types of huge trees and plants
    Cloudforest: high elevation rainforest with even taller trees, less dense brush
    Boreal Forest, replacing the cold taiga biome

    Grassy hills with sparse small trees (ireland, northern england)
    Dry desert hills, closer to the normal minecraft ones
    Mesa canyons and badlands, with a new generator for more coolified(?) terrain
    Border biomes along the edges of mountains

    Desert Mountains (mexico, central africa, north slope of the himalayas) - rock/gravel with few plants
    Icy Mountains: bare rock with snow and ice, canyons and caves
    Rainforest Mountains (borneo) - small trees and vines, large rock formations
    Tepui (table mountains, south america) - huge rock plateaus covered in water pools and stone, plants
    More standard mountains for alpine areas, temperate climates, ect

    Rivers and lakes:
    Rivers will flow downhill from small lakes or springs, to the ocean or a large lake, if the ocean is unreachable.
    Lakeshore and river shore variants for marshes, forests, desert, alpine, snowy biomes.

    Fantasy Biomes:
    I intend to add lots of other more unusual biomes, such as:
    A modified version of the current dark forests, mushroom islands, and ice spike plains.
    Other unusual biomes based on various literature and stories, and new ideas of my own. Some will be part of the additional dimension types. Leave a suggestion if you want to see a certain type of biome.
    • Like Like x 17
    • Creative Creative x 7
    • Optimistic Optimistic x 3
    • Winner Winner x 2
  2. Haven't read all of it yet. But for sure I'm buying this! It sounds dope
    • Agree Agree x 5
  3. This may be a while away from release - the tree generator is complete, the biome placement is mostly complete, but rivers, the actual terrain generation, and the biome config files are half-done. I have been working on it for a year so far, although most of the current code is from the last few months. The season system is a concept currently.

    On the topic of buying it, i plan on making it free for servers under a certain size.
    • Like Like x 3
  4. Okay well I wish you the best of luck on this because it sounds amazing. And if you ever need anyone to help test feel free to ask *winks*
    • Like Like x 1
  5. Sounds awesome
  6. 0$ in your paypal

    Looks really cool. So would this be like EpicEorldGenerator?
    • Agree Agree x 1
    • Useful Useful x 1
  7. Ye, but hew owes us money :p
    • Funny Funny x 1
  8. Sweet! I have been waiting for this! :)
  9. There is nothing particularly epic about EWG. It is more of a mix between BoP and TerrainControl.

    This is also just the first (and probably largest) part of a much larger project. My goal is to support mmorpg-like servers with a single, compatible suite of plugins. All the existing "mmorpg" plugins are fairly terrible, mcmmo just replicates pointless grinding, for example.
  10. Oh cool! Is this going to be open source? (even if premium)
  11. I intend to opensource some parts of the code, like the biome and terrain generator and the tree generators, possibly as part of guides or APIs. The whole project will not be opensource for security reasons, and i doubt anyone else could make much sense of it, as i have used an unusual configuration for the different parts of the project.
    • Like Like x 3
  12. it would be super cool if you added an option to generate worlds with a png file and stuff like terraincontrol
  13. I intend to make it possible to do exactly that.

    My world generator uses several parameters to decide where biomes go, all from noise maps:
    temperature, rainfall, altitude, coastlines, terrain flatness/hillyness, rarity (exponentially decreased value used to place rare biomes inside other biomes).
    Biomes have optimal conditions, weights for how important a condition is, and a range for how far away from the optimal they can generate.

    Too many variables for the 4 channels of an image file, but i am going to make it possible to paint worlds in some way, probably with multiple layered images.
    • Like Like x 2
  14. Bump, still looking for input.

    Addition: water levels vary per biome and optionally based on terrain height.
  15. Perhaps an Alantis-like biome, where there's (from top-to-bottom) sky(air), then sea(water), then a few layers of crust, before a miniaturized overworld generation?

    Also, if you were to edit (and successfully save/load) maximum build height on the server, could the client still build there? (Just a suggestion)

    And how will this work with structures? If you're improving terrain/biome generation, will you also take a crack at this? (I'm not really familiar with either system so I don't know how interlinked they are, nor do I have the time to get to know them: other stuff to learn.)
  16. Changing max build height is virtually impossible, one forge project tried it and quickly gave up due to various issues. It would be nice, though..
  17. I have finally gotten the world generator working in a fairly finalized state, with custom hill shapes, blurring, undersampling and global heightmaps.
    These are two extreme example biomes just to test the hill shapes.

    • Like Like x 2
  18. First attempt at making eroded terrain:

    It accidentally created large systems of very interesting caves, as well. I may join these up with underground caves of a different generation technique.

    And the blooper: reverse erosion.
    • Winner Winner x 2
    • Like Like x 1
    • Funny Funny x 1
  19. How did you apply the erosion? I am currently on mountains that look like really tall hills, and I want to make them look like real mountains