Store Biome Per Block

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Some related topics:
  • @Immortius has thought about a block system overhaul that would treat blocks more like prefabs so Components could be added more easily. Been a while though, nothing in progress that I'm aware of
  • Support for modules to define new per-block data is on a list somewhere. Might relate to the above item.
  • Block families can help cut down on excessive blocks when it comes to variants (making all grass shades or stair block orientations stack the same)
On biome vs block when it comes to interpolation between biomes I could see either option used. However I think biomes might hold an advantage as there are going to be fewer biomes than blocks. If instead of GrassHue1-10 + DirtHue1-10 + SandHue1-10 you simply add the biome overlay with a set of variants (a BiomeFamily?) you only need the one set, regardless of the underlying blocks. That way if the interpolation is smart enough to add hue to anything it can do so without block variants needing to be available. Seems potentially cleaner to me. Other logic could simply base off the BiomeFamily if it doesn't care about the individual variants.

Varying the "strength" of the biome may also lead to other interesting gameplay utility and could change over time. I'm hesitant to say all terraforming should be temporarily maintained by machinery or magic: what if somebody nuked a whole mountain? The nuke object disappears, but the biome should probably change to some sort of radiation-soaked wasteland indefinitely. Unless the player then starts cleaning it up somehow.

Changed biomes could also decay naturally over time toward whatever the default provided by noise is. If it makes sense for the biome.

Mostly I'm excited by the option to use an aquifer biome :) Strength of the biome there could indicate the flow unleashed if exposed. In open air it could be used for wind strength somehow. Liquid-bearing blocks could hold oil deposits. Moisture content of blocks deeper in the soil could be used for growth simulation. If exposed to the surface it could go from measuring moisture to showing the standard biome in the area instead.

More ideas in the old thread I linked earlier
.
 

shartte

New Member
Contributor
Architecture
Support for modules to define new per-block data is on a list somewhere. Might relate to the above item.
I think this is probably pretty important. Also not per-block but per-chunk while keeping the actual chunk storage as transparent as possible, heh.

*edit* Regarding interpolation: the issue with using independent blocks is a) the sheer number of .block files you need right now and b) interpolating between discrete blocks is difficult. interpolating between color values stored in a vec4 is very easy and could potentially be done on the graphics card.

Regards
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Merged! After some happy fun times. Thanks!

We've roughed up some stuff here and there over the last few weeks, but I'm sure we can start polishing that back to a nice sheen soon :)

I noticed in a TtA world the block/biome impact on a chunk boundary, or something, a tree was colored half one shade of green, half another :D

Up for making this the official Biome discussion thread under Core Projects + eventually make a nice paired wiki page? :cool:

And what's next now? We need cave and aquifer biomes :alien:
 

shartte

New Member
Contributor
Architecture
That is really odd. It did work in both the dev-version and dist-version previously.

I'll have a look when I get home. We should probably add an issue.

Regarding what's next: Next steps would be:

1) [Low] Color offset interpolation in the engine (automatic, visual only)
2) World Generation improvements to make use of the features, heh
 
Top