World builder suggestions

The World Builder comes in 3 parts:

  1. The Editor - allows a user to construct the “shader” used when generating worlds.

  2. The Generator - knows how to execute the “shader” to generate a world in chunks.

  3. The Pre-Generator - this tool knows how to orchestrate the generation of an entire world (via the generator) including all chunks at different LODs.

The World Builder we’ve released only includes #1 and #2. The Pregenerator is an app (script) that runs around everything.

Whilst we can increase the generation scale in the World Builder, it doesn’t include the additional logic for creating the LODs. Ideally, the tool would easily handle everything.

Should be trivial.

Eventually all world parameters will be exposed into the WB: weather, creature spawn stuff, sky + lighting, audio sfx, etc.

Possible - also considering the LOD issue above.

1 Like

Idea:

The WorldBuilder is great at defining a single type of world. Different climatic and geographic regions make up an entire planet (world). The “problem” I find (and it definitely a “first-world” problem - pun intended - as this tool is already AWESOME) is this: when I try to cram many types of geographic features into the world, things start repeating too much. It would be nice if several different worlds could be stitched together somehow.

What if the Pre-Generator was altered to work with several different world configurations (each the same size in chunks) and was provided world distribution criteria in the form of a noise map and numeric criteria (much like a single world’s biome distribution system using ‘altitude’, ‘temperature’, etc.) and was able to blend these worlds together as the player moved from one world configuration-sized area to the next?

That way you could define a mountainous world (“A” below), a watery world (“B” below), and an arid desert world (“C” below), making sure these three worlds had the same substrates, ores, strata, etc. (or maybe not) so that they would blend together nicely.

That way a single world could have radically varying areas, each lovingly designed in detail in the WorldBuilder. This would make for greatly varied game play within a single world. I’m not even sure this would be a ton of development work (LOL, what do I know?), except for the world blending piece, but you could seriously go to school on the biome blending logic already in-place in the WB.

This was just a thought I had when realizing that sometimes, building features into a world made for unwanted repeatability. For example, this repeats very nicely: the ice planet of Hoth (or some such):

When this repeats, it looks good, natural. You have some planes, a few hills, etc.

However, when I add a cool mountain feature, again this looks good:

But when this repeats I get too many mountains (at least for what I’m trying to achieve in my world - I mean, mountains tend to clump together as a geographic feature):

This was just an idea I had while playing with the tool.

1 Like

@james, @lucadeltodecso

For some reason, when defining layered substrates, I can never put clay on top of dirt. No matter what order I define them in the “Substrate” element, dirt is always on top of clay. Is this by design?

Also, just to clarify, the substrates are in reverse order top-down, meaning the top-most substrate should be on the bottom, right?

I’ve thought about this slightly differently - but I’m wondering now if I’m overlooking something.

Biome Creation Project

I’ve been planning to propose + host a biome library creation project for months - but wanted to wait until we’d released in the in-engine visualisation. Where everyone is invited to build, iterate, and tweak a large library of different biomes. We’ll also update the World Builder to accept configs from the library. We can then distribute the biome library with the game + world builder.

This means that new users can simply create new Worlds from a diverse library of biomes. Whereas power users can use the library as a starting point, before further customising them or creating additional unique biomes. [I have a standard list of 50+ biomes, before we even start getting creative.]

Biome Granularity + Control

However, this proposal was based on the granularity being the biome itself, and each new world would mix them together via the global Biome Distribution noises. But I’m beginning to think that to create an interesting “Biome” it is really achieved by mixing a collection of sub-biomes via a specially prepared biome distribution noise. (What you appear to be proposing.)

As a result, you’re asking for an additional layer on top of this biome distribution for selecting between your Biome Collections.

To clarify, the current model supports:

  • The Standard global Biome Distribution selects between Biomes.

However, you’re asking for:

  • The Global Biome Distribution selecting between a selection of Collection Biome Distributions. (Where each Collection Biome Distribution is a carefully crafted blend of biomes.)

Comment

I would have to discuss this with @lucadeltodecso to decide what is the best approach - given my ambition for a library feature whilst also achieving interesting sculpted / crafted worlds.


@lucadeltodecso is on holiday this week - so don’t expect any significant responses from him.

4 Likes

This is a question for @lucadeltodecso - it might be built into the tool - potentially because we put grass on dirt(?).

1 Like

Woop Subiomes have been on my wishlist since the second time I used the world builder.

As I Understand It

Today the WorldBuilder creates a world configuration which is comprised of many biomes. That is where the granularity stops. The PreGenerator then takes the configured world, loads it into the game and displays the world for the player. When the edge of the configured world is reached, the PreGenerator can simply “wrap” the player around to the opposite side of the configured world. Alternatively, the PreGenerator could generate a new instance from the world configuration and seamlessly joins the existing world with it (ad infinitum).

How I Understand Your Proposal

What I hear you proposing (which is very similar to what I am proposing above) is that the WorldBuilder would create a map of a world comprised of multiple biomes (newly-termed, meaning something different from what it does today). A biome is comprised of sub-biomes (which are what we think of as biomes today). This world configuration map could be predetermined ("put biome “A” here, put biome “B” there, etc. in a grid fashion) or it could be provided with biome distribution noise to select biomes based on distribution criteria.

I think some of the strengths in the right architecture include:

  • the configuration stays in the “world” configuration file and the PreGenerator can be coded to simply react to what is configured (limited world size with edge wrapping, or infinite size)
  • introduction of the “sub-biome” creates a “biome” layer that is complete enough to represent diverse geographical regions which can be productized in the library you talk about above
  • “worlds” generated by the PreGenerator can be regionally diverse and would feel more like a real world

I can see creating a library of hundreds of these new biomes (“Arid Canyons”, “Wetland Hills”, “Wetland Flatlands”, “Snowy Mountains”, etc.) and aggregating those to create a map of a world that the PreGenerator can use to generate the game world. Can you share the names of some of the biomes on your list so I can get an idea of how you are thinking about those?

Is there any concern that resulting worlds would be anywhere from 20 - 80KM in a single dimension instead of the existing 4 - 8 KM as today? With players strewn across the world, a server may need to hold many parts of this large world in-memory at one time. The “world” would also be sufficiently large that a player would need some sort of transportation to successfully circumnavigate. :smile:

4 Likes

Not quite…

The PreGenerator is a script that knows how to execute the Generator with a world config to pre-generate (build) a region of (or all of) a world. The Generator always does the generation. The Generator is a standalone lib + tool built into the Editor. The client app and server app both don’t know how to generate worlds. The server can be configured to call the Generator if some of the world is missing - but we by default only allow the generation of a flat world for memory / stability reasons on the live worlds. The PreGenerator knows how to orchestrate generation (by the Generator) of all the LODs and run everything across many cores. For example we normally build worlds on a 32 or 64 core machine.

Also it’s the Generator (again) that knows how to wrap the generation of worlds. The game server knows how to wrap the simulation of the world.

To be honest - we’re talking about a few different modules that we could just consider as features (or components) of the World Builder in general. The architecture (whilst interesting) is a little irrelevant to the user.

Yeah - (again we’re discussing all this in @lucadeltodecso absences but) - as you suggest the New Biomes (eg. Arid Canyons) are built out of a collection of “Land Formations” / “Biome Parts” / “Old Style Biomes” / whatever. This is simply because you’ve / we’ve learnt that to achieve interesting biome generation you need to mix + composite a few different biomes.

It’s possible that @lucadeltodecso will agree that we need this higher level to craft what we really want. Or alternatively, we might want something at a lower level where it’s easier to control the definition of the height field. Ultimately this will come down to - do we need an extra level of control for just the height map - or all the different biome features.

Again your text is miss using the PreGenerator - sorry for being misleading in my initial explanation of it.

This isn’t a concern. Yes generation is expensive. But the server only holds in memory a circle of chunks + entities surrounding the active players. The main limiter is the # of concurrent players on the server. If the world is too large then there will be a question about how sparse players are populated. Also would we prefer players to explore a single world? Or explore other worlds? We can do both…

But ultimately the tech for a 4km world is identical to a 400km world.

Your biomes are more descriptive - my current list is taken from geological sources, ie. real biomes in the real world. But what I’m most interesting in are the creative biomes that we make, for example: Floating Island Lava Falls, Crater Field with Forests at the bottom, etc. Things that don’t exist in the real world, but would be amazing if they did.

3 Likes

Please, train the World Builder to use unicode characters.

1 Like