Jump to content

What do you consider to be a "biome"?


Recommended Posts

Perhaps this is my own personal issue, but I find it difficult to find a useful definition for "biome" in this game.

How would you define a biome in Don't Starve Together? A simple way to define it would be to just base it on the turf present, and that's what most people and the wiki default to. With this definition, there's a forest biome, savanna biome, grasslands, ocean, and so on. But the biomes in this sense appear multiple times in each world, and require ways to make each one more specific. For example, are you talking about the big savanna with beefalo and rabbits, or the small savanna with beefalo within a forest?

Another possible way to define a biome is by defining it more as a region rather than by specific turf. The idea can be seen here:

Spoiler

12D905CF826EDA762D6B687BB482633331A8EB13

This only labels "biomes" that are optionally generated, but you can see how the other "biomes" could be defined the same way.

Biomes in this sense only appear once. For example, the Oasis desert only appears once. Same for the Killer Bees biome. In this case, I don't need to specify which Oasis desert or which Killer Bee biome. I find this more practical when describing locations of certain objects, such as mandrakes, meteor spawners, and walrus camps.

I would like to know what you guys think. Do you prefer the simple one based on turf, or the regional concept, or something else?

Link to comment
Share on other sites

I would say that "a biome is a set of connected tiles". Furthermore, "a biome usually has the same one (or few) types of turf, but is not affected if the turf gets changed". "Each biome has a set of prefabs that can spawn in it upon world creation (like mobs, plants and items)".

I think that's a sufficient definition, what do you guys think?

Link to comment
Share on other sites

Spawning map after map I find it pretty easy to identify a biome.  The only ones that are really similar are the deciduous with and without pig king.  The rest are pretty specific.  Each spawned set of landmass is a biome.  They are the containers in which spawn all of the things which make that biome what it is.  Sometimes there is land branch which can smash two biomes together for some flare, but even then you can see which sections belong to which biome.

Once you identify the biomes it becomes increasingly easier to locate the resources you're after at any point in the game.  I would imagine there are game files that give explicit names to these.  I'm not sure where any confusion could really come from...

If you're just asking what to call it - call it by whatever seems most unique about it.  The deserts used to be the same biome spawned twice, with and without dfly similar to deciduous and pig king, now they are the dfly or tumbleweed desert, and the oasis or sometimes goat desert depending on which you're after.

Link to comment
Share on other sites

1 hour ago, Shosuko said:

Spawning map after map I find it pretty easy to identify a biome.  The only ones that are really similar are the deciduous with and without pig king.  The rest are pretty specific.  Each spawned set of landmass is a biome.  They are the containers in which spawn all of the things which make that biome what it is.  Sometimes there is land branch which can smash two biomes together for some flare, but even then you can see which sections belong to which biome.

Once you identify the biomes it becomes increasingly easier to locate the resources you're after at any point in the game.  I would imagine there are game files that give explicit names to these.  I'm not sure where any confusion could really come from...

If you're just asking what to call it - call it by whatever seems most unique about it.  The deserts used to be the same biome spawned twice, with and without dfly similar to deciduous and pig king, now they are the dfly or tumbleweed desert, and the oasis or sometimes goat desert depending on which you're after.

Yeah, there are world generation oddities that causes some biomes to intersect each other, but otherwise a spawned set of landmass is what I prefer. Unfortunately, the wiki does not seem to go by this definition. Otherwise, there would be dfly desert, oasis desert, bee queen field, etc. Instead, desert is just general desert, and there is no mention of a bq field. Complicating the matter is that singleplayer Don't Starve biomes also need to be considered. RoG is similar to DST for the most part, but there are also "biomes" to consider in shipwrecked and hamlet. 

1 hour ago, fimmatek said:

I would say that "a biome is a set of connected tiles". Furthermore, "a biome usually has the same one (or few) types of turf, but is not affected if the turf gets changed". "Each biome has a set of prefabs that can spawn in it upon world creation (like mobs, plants and items)".

I think that's a sufficient definition, what do you guys think?

Yeah, I agree with this. It wouldn't make sense to me to rip out all the sandy turf in the oasis desert and fill it with savanna and then call it savanna. You'll still get sandstorms in summer regardless. So there are definitely predefined regions that the game keeps track of.

Also, I should mention that I'm considering rewriting the wiki pages on biomes. I just wanted to see what other people considered a biome to be before commiting to it. Perhaps I should start a discussion on the wiki itself...

Link to comment
Share on other sites

6 minutes ago, mistrbushido said:

Also, I should mention that I'm considering rewriting the wiki pages on biomes. I just wanted to see what other people considered a biome to be before commiting to it. Perhaps I should start a discussion on the wiki itself...

I don't think this is a very good idea unless you're able to read the code and figure out how it handles biomes. From what I know, the game does have some kind of biome system used during worldgen, so it would make way more sense to research how that works rather than asking people what they consider a biome to be.

Link to comment
Share on other sites

Ok so here's a simplified explanation on what Biomes are technically in the game, I'm sure that'll be helping everyone here :

 

What's a biome ?

  • "Biome" is a wrong term to define how the game is generating maps, we should actually call it "Task".
  • A Task is a set of Rooms.
  • A Room is an delimited area that have a defined content such as : The ground, entities, setpieces, etc...
  • The game will generate the world by using a Taskset which is just a group of required Tasks, with random optional Tasks.

 

Now that you know all the previous details, this is how the Task (or Biome, whatever) is made :

I'd be using the Deciduous Forest as an example, and first, this is our Task In-game :

2.thumb.png.68c74988a7f75345b9d19073b7129fc6.png

Quite beautiful, isn't it ? Well, just for precision I'd like to tell that Tasks have names !

(That's not important at all but if you want to see by yourself, everything you need is in the scripts/map folder) :2.jpg.722ccd206ba6c471cc5e67698bf1929e.jpg

 

The highlighted Task is called "Speak to the king". It's one of the required tasks from the default Taskset, which means you will always have !

Now... just like said before, this Task is just a bunch of Rooms :

room_choices = {
	["PigKingdom"] = 1,
	["MagicalDeciduous"] = 1,
	["DeepDeciduous"] = function() return 3 + math.random(SIZE_VARIATION) end, 
}, 

The first one is "PigKingdom", of course it's the Pig King village... and just like "MagicalDeciduous", they will spawn only 1 time.

The last one is "DeepDeciuous", the function following is just used to make the Room bigger or smaller depending the SIZE_VARIATION, it's the world size you selected in the options before generating the map. Anyway, the minimal is 3 + the size variation.

And yet, these Rooms will be generating the full Task !

 

Only if you're looking for details, this is all you need to know about Rooms, I'd be using "MagicalDeciduous" for the example :

Spoiler

The useful elements to us are :

value, tags, countstaticlayouts, distributepercent, distributeprefabs :

 

value is the Turf used on the ground. Since we're on a Deciduous Forest, the ground is GROUND.DECIDUOUS.

 

tags are shortcuts used by the game to give the Room some properties, you will see here that this room have :

  • ExitPiece : This room can be connected to another Task
  • Chester_Eyebone : It is possible to find the Eyebone here.

 

countstaticlayouts is a list of setpieces that must spawn in the Room, in this example "DeciduousPond" is the Glommer's Statue setpiece.

Note : The game is generating additional setpieces in a post-parameter who's looking at the turfs and valid space to place the other required / optional setpieces that have no defined location ! So that's why you can find other stuff here. ;)

 

distributepercent and distributeprefabs are used to spawn everything else in the Room ! The distributepercent will set the density of prefabs (entities), and the distributeprefabs is the actual set of entities with a following chance to be picked.

Some rooms also have advanced generation details, such as countprefabs : used to spawn a set amount of the prefabs defined. (or with math functions so they are controlled)


AddRoom("MagicalDeciduous", {
    colour={r=0,g=.9,b=0,a=.50},
    value = GROUND.DECIDUOUS,
    tags = {"ExitPiece", "Chester_Eyebone"},
    contents = {
        countstaticlayouts = {
            ["DeciduousPond"] = 1,
        },
        distributepercent = 0.3,
        distributeprefabs =
        {
            grass = 0.03,
            sapling= 1,
            twiggytree= 0.4,
            berrybush= 1,
            berrybush_juicy = 0.05,

            red_mushroom = 2,
            blue_mushroom = 2,
            green_mushroom = 2,

            fireflies = 4,
            flower= 5,

            molehill = 2,
            catcoonden = 0.25,

            berrybush = 3,
            berrybush_juicy = 1.5,
        },
    }
})

 

 

Well ! I hope that you know everything you needed about the Tasks !

Obviously, all this stuff is completely hidden from the player view when you're only playing and not looking at the scripts, so you're not supposed to be knowing where the biomes are located and the properties they have.

So in case you have questions, you can ask me ! Maps is my favourite topic on the game :wilson_goodjob:

Link to comment
Share on other sites

1 hour ago, Sunset Skye said:

I don't think this is a very good idea unless you're able to read the code and figure out how it handles biomes. From what I know, the game does have some kind of biome system used during worldgen, so it would make way more sense to research how that works rather than asking people what they consider a biome to be.

Agreed. I'll have to dig into the code and see how it works.

50 minutes ago, ADM said:

Ok so here's a simplified explanation on what Biomes are technically in the game, I'm sure that'll be helping everyone here :

 

What's a biome ?

  • "Biome" is a wrong term to define how the game is generating maps, we should actually call it "Task".
  • A Task is a set of Rooms.
  • A Room is an delimited area that have a defined content such as : The ground, entities, setpieces, etc...
  • The game will generate the world by using a Taskset which is just a group of required Tasks, with random optional Tasks.

 

Now that you know all the previous details, this is how the Task (or Biome, whatever) is made :

I'd be using the Deciduous Forest as an example, and first, this is our Task In-game :

2.thumb.png.68c74988a7f75345b9d19073b7129fc6.png

Quite beautiful, isn't it ? Well, just for precision I'd like to tell that Tasks have names !

(That's not important at all but if you want to see by yourself, everything you need is in the scripts/map folder) :2.jpg.722ccd206ba6c471cc5e67698bf1929e.jpg

 

The highlighted Task is called "Speak to the king". It's one of the required tasks from the default Taskset, which means you will always have !

Now... just like said before, this Task is just a bunch of Rooms :


room_choices = {
	["PigKingdom"] = 1,
	["MagicalDeciduous"] = 1,
	["DeepDeciduous"] = function() return 3 + math.random(SIZE_VARIATION) end, 
}, 

The first one is "PigKingdom", of course it's the Pig King village... and just like "MagicalDeciduous", they will spawn only 1 time.

The last one is "DeepDeciuous", the function following is just used to make the Room bigger or smaller depending the SIZE_VARIATION, it's the world size you selected in the options before generating the map. Anyway, the minimal is 3 + the size variation.

And yet, these Rooms will be generating the full Task !

 

Only if you're looking for details, this is all you need to know about Rooms, I'd be using "MagicalDeciduous" for the example :

  Hide contents

The useful elements to us are :

value, tags, countstaticlayouts, distributepercent, distributeprefabs :

 

value is the Turf used on the ground. Since we're on a Deciduous Forest, the ground is GROUND.DECIDUOUS.

 

tags are shortcuts used by the game to give the Room some properties, you will see here that this room have :

  • ExitPiece : This room can be connected to another Task
  • Chester_Eyebone : It is possible to find the Eyebone here.

 

countstaticlayouts is a list of setpieces that must spawn in the Room, in this example "DeciduousPond" is the Glommer's Statue setpiece.

Note : The game is generating additional setpieces in a post-parameter who's looking at the turfs and valid space to place the other required / optional setpieces that have no defined location ! So that's why you can find other stuff here. ;)

 

distributepercent and distributeprefabs are used to spawn everything else in the Room ! The distributepercent will set the density of prefabs (entities), and the distributeprefabs is the actual set of entities with a following chance to be picked.

Some rooms also have advanced generation details, such as countprefabs : used to spawn a set amount of the prefabs defined. (or with math functions so they are controlled)



AddRoom("MagicalDeciduous", {
    colour={r=0,g=.9,b=0,a=.50},
    value = GROUND.DECIDUOUS,
    tags = {"ExitPiece", "Chester_Eyebone"},
    contents = {
        countstaticlayouts = {
            ["DeciduousPond"] = 1,
        },
        distributepercent = 0.3,
        distributeprefabs =
        {
            grass = 0.03,
            sapling= 1,
            twiggytree= 0.4,
            berrybush= 1,
            berrybush_juicy = 0.05,

            red_mushroom = 2,
            blue_mushroom = 2,
            green_mushroom = 2,

            fireflies = 4,
            flower= 5,

            molehill = 2,
            catcoonden = 0.25,

            berrybush = 3,
            berrybush_juicy = 1.5,
        },
    }
})

 

 

Well ! I hope that you know everything you needed about the Tasks !

Obviously, all this stuff is completely hidden from the player view when you're only playing and not looking at the scripts, so you're not supposed to be knowing where the biomes are located and the properties they have.

So in case you have questions, you can ask me ! Maps is my favourite topic on the game :wilson_goodjob:

Thank you for writing this all out! I was aware of tasks and rooms, but the wiki was very vague on what they represented. "Task" sounds abstract compared to "biome" though. 

Link to comment
Share on other sites

After thinking about it some more, I realize there are issues which I find kind of discouraging.

1. There is no official definition for what a biome is. Instead, the closest things we have are tasks/rooms, and sound rather cryptic/technical.

2. People have different ideas on what a biome is. This is a consequence of issue 1, and I feel it requires community input to resolve (why I started this thread).

So even if I understood how world generation worked, there is still the issue that "biome" isn't really an official thing.

Link to comment
Share on other sites

If someone pitchforked a 50x50 tile area and placed down swamp turf, would that make it a swamp "biome"? Probably not, since there aren't tentacles, swamp ponds and merm houses.

In a game like Terraria, placing huge amounts of a certain block creates a new biome and has different types of enemies spawn. In DST however nothing really changes if you're in a huge swab of swamp turf or a huge swab of forest turf.

I just think of biomes as the rooms and tasks generated when the world loads in.

Link to comment
Share on other sites

When in conversation I typically use the turf as a reference unless I know the Biome(Task) specifics.  EG Pig king (Task), killer bee(Task), Dragon fly desert(Task).  What it sounds like is you want the correct name to call each one and as said already code would be the place for each of those. The community accepted variants that may be on the wiki I feel don't need "corrected".  If anything a list of commonly used descriptors for various biomes(tasks) could be provided in sort of a table with the codes official name.  This would allow new players to see that the code identifies certain areas as a specific thing and give them a common name/descriptor to use in game play.  That image from the mod page is a great simplified tool to understanding world biome(task) generation names.

Should note also like pointed out with sandstorm, if one relocates the Dark Forest turf to the Rock heavy Biome(Task) Trees will not naturally grow as the Biome(Task) is not coded to have world regrowth of that nature just because the turf is there.  With that known turf is merely a description tool while the land chunk itself is hard coded to be a specific Biome(Task).

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...