Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Advanced World Generation Entity Spawn Controls  (Read 850 times)

JesterHell696

  • Bay Watcher
  • [ETHIC:ALL:PERSONAL]
    • View Profile
Advanced World Generation Entity Spawn Controls
« on: January 29, 2020, 09:56:36 pm »

-Edited-

I did a search for a few permutation of this topic and found no direct matches so here it is.

My suggestion is simply* to have DF read the entity RAW's when entering Advance World Generation and adding options in advance world gen that enable you to set exactly how many instances of each entity you want, entities could be listed by both [ENTITY:MOUNTAIN] and [CREATURE:DWARF], I see the default looking something like this.

-edit-

Spoiler (click to show/hide)

After DF loads the RAWs it would read the RAWs entity_default file, DF would then fill in the Biome and Creature values of each entities generating new entries for each extra entity in the RAWs.

So DF loads the RAWs and reads the entity_default file, finds the first entity in the file check biome = Mountain, checks creature = Dwarf and fills in the blank spots changing the result to,

Spoiler (click to show/hide)

DF then checks if there is another entry entity_default if it finds one it generates an new entry in the world gen file,

Spoiler (click to show/hide)

Which it then fills in,

Spoiler (click to show/hide)

rinse and repeat for all entries in all entity files would result in this for the default,

-edit-

Spoiler (click to show/hide)



With this you could set it to generate what ever you wanted and because it is adding options by reading the RAWs it should work fine with mods as any modded entities would also get read and added accordingly.

Note *: I doubt it would be simple or it would probably already be in, I meant "simply" as in there is not much more too the idea then that.


-edit-

This should also allow player to tell DF to always generate Dwarf civs even in a post Myth-Gen rewrite set to maximum crazy, telling DF that even if everything else is procedurally generated the dwarfs in the RAWs are to still be included.



-edit- this does get into map rewrite-ish territory but would be cool.

On top of all this the additional inclusion of a weighted map layer/painter for civilisations spawn locations, then the payer could mark a specific mountain, plains, forest, evil location/squares to always get a civilisation spawn.

This could result in civilisations not being able to spawn resulting in map rejections, but that is not much different the how you can already get rejections from the [minimum number of X-type map squares] settings, just a little more control over the world for the player, it would really help people versions of Westeros, Nirn, Faerūn etc, those are always popular mods for any game.
« Last Edit: February 01, 2020, 09:06:13 pm by JesterHell696 »
Logged
"The long-term goal is to create a fantasy world simulator in which it is possible to take part in a rich history, occupying a variety of roles through the course of several games." Bay 12 DF development page

"My stance is that Dwarf Fortress is first and foremost a simulation and that balance is a secondary objective that is always secondary to it being a simulation while at the same time cannot be ignored completely." -Neonivek

Scruiser

  • Bay Watcher
    • View Profile
Re: Advanced World Generation Entity Spawn Controls
« Reply #1 on: January 29, 2020, 11:57:26 pm »

There is already a MAX_STARTING_CIV_NUMBER as an entity token... but I think you may be right it makes more sense as an advanced worldgen token.  The first problem with this that I see is that the advanced world gen parameters are by default agnostic as to the contents of the RAWs.  I think it is probably best practice to make all the initialization files independent of the rest of the RAWs.  Your suggestion would break this compartmentalization.

Perhaps another file in addition to advance world gen parameters and/or an additional intermediate suboption that shows up after you set advanced world gen parameters that lets you tune things further prior to starting the world generation process?  This intermediate additional parameter stage could include the details you describe as well as some other fine tuning details (maybe the ability to precisely place starting sites, which would be fun for people looking to exactly create settings like Middle-Earth or ASOIAF).
Logged
Things I have never done in Dwarf Fortress;

- Won.

JesterHell696

  • Bay Watcher
  • [ETHIC:ALL:PERSONAL]
    • View Profile
Re: Advanced World Generation Entity Spawn Controls
« Reply #2 on: January 30, 2020, 03:27:24 am »

but I think you may be right it makes more sense as an advanced worldgen token.  The first problem with this that I see is that the advanced world gen parameters are by default agnostic as to the contents of the RAWs. 

which is why I said make DF read the raw when loading into the world gen screen,

I did a search for a few permutation of this topic and found no direct matches so here it is.

My suggestion is simply* to have DF read the entity RAW's when entering Advance World Generation and adding options in advance world gen that enable you to set exactly how many instances of each entity you want, entities could be listed by both [ENTITY:MOUNTAIN] and [CREATURE:DWARF], I see the default looking something like this.


Spoiler (click to show/hide)


With this you could set it to generate what ever you wanted and because it is adding options by reading the RAWs it should work fine with mods as any modded entities would also get read and added accordingly.

Note *: I doubt it would be simple or it would probably already be in, I meant "simply" as in there is not much more too the idea then that.

I'm sure that you have seen that when you first select "Design new world with advanced parameters" you get the screen with all the ASCII icons and loading bars right?

I'm pretty sure that is when DF loading the RAWs up for use, during this process it could read the entity_default file, write the relevant options into the world gen file for use right then and there and once the player is done they can be removed until the RAWs are loaded up for world generation again.

I think it is probably best practice to make all the initialization files independent of the rest of the RAWs.  Your suggestion would break this compartmentalization.

They would still be separate compartments, one would just read from the other as necessary.

Perhaps another file in addition to advance world gen parameters and/or an additional intermediate suboption that shows up after you set advanced world gen parameters that lets you tune things further prior to starting the world generation process? This intermediate additional parameter stage could include the details you describe as well as some other fine tuning details (maybe the ability to precisely place starting sites, which would be fun for people looking to exactly create settings like Middle-Earth or ASOIAF).

Your idea of dictating where sites start would fall into the world gen file as well, what I think you're asking for is for world gen to stop after geography but before history to enable you to choose these things then?

I think that this implementation would take more work and is something that would likely have to wait until the Myth Gen Map Rewrite as it requires breaking up the current world generation process into extra stages, I'm personally hoping this can get in after the Steam release but before the Myth Gen Map Rewrite which means not reworking the current system but working within it.


Have you seen the Perfect World utility?

It allows you to control the geography of your world in an easy and user friendly way and it merely uses options that already exist in the advanced world gen, here are a couple of examples of a more thoroughly designed world.

Spoiler (click to show/hide)

The data for DF to build these world is stored in the world gen file, any option to say "Civilisations Start Here" would fall under the purview of the world gen file and not a separate file or sub option IMHO.



Edit: I feel this post comes off as hostile and I'm sorry for that, it seems to be an unfortunate habit of mine and I'm trying to work on it.

Also, The example of how I think it would look was when the RAWs are loaded, if you were to look at the World gen file outside of DF I imagine it would look something like this,

Spoiler (click to show/hide)

After DF loads the RAWs it would read the RAWs entity_default file, DF would then fill in the Biome and Creature values of each entities generating new entries for each extra entity in the RAWs.

So DF loads the RAWs and reads the entity_default file, finds the first entity in the file check biome = Mountain, checks creature = Dwarf and fills in the blank spots changing the result to,

Spoiler (click to show/hide)

DF then checks if there is another entry entity_default if it finds one it generates an new entry in the world gen file,

Spoiler (click to show/hide)

Which it then fills in,

Spoiler (click to show/hide)

rinse and repeat for all entries in all entity files, should make it compatible with all mods.
« Last Edit: January 31, 2020, 10:57:22 pm by JesterHell696 »
Logged
"The long-term goal is to create a fantasy world simulator in which it is possible to take part in a rich history, occupying a variety of roles through the course of several games." Bay 12 DF development page

"My stance is that Dwarf Fortress is first and foremost a simulation and that balance is a secondary objective that is always secondary to it being a simulation while at the same time cannot be ignored completely." -Neonivek

Scruiser

  • Bay Watcher
    • View Profile
Re: Advanced World Generation Entity Spawn Controls
« Reply #3 on: January 30, 2020, 09:31:11 am »

Sorry for the reading comprehension fail.  Yeah, I think your suggestion makes sense.  I guess you are right, it doesn't make sense to split things off into too many suboptions... I think I would like the advanced world gen option to be organized into submenus.  Still one file and done in one step, but to make the in-game UI seperate things into sub menus... as it is, whenever I open up advanced world gen I end up scrolling through a long list of terrain features I never touch to get to a few options that I do.
Logged
Things I have never done in Dwarf Fortress;

- Won.

JesterHell696

  • Bay Watcher
  • [ETHIC:ALL:PERSONAL]
    • View Profile
Re: Advanced World Generation Entity Spawn Controls
« Reply #4 on: January 31, 2020, 01:11:15 am »

Sorry for the reading comprehension fail.  Yeah, I think your suggestion makes sense.  I guess you are right, it doesn't make sense to split things off into too many suboptions... I think I would like the advanced world gen option to be organized into submenus.  Still one file and done in one step, but to make the in-game UI seperate things into sub menus... as it is, whenever I open up advanced world gen I end up scrolling through a long list of terrain features I never touch to get to a few options that I do.

Not your fault so no need to apologise, I suck at explaining things, the "show your work" part of school was always a fail for me.  :P

I think that criticism of DF's interface is generally accepted by most people, I've personally said before that I would like for DFs native Advanced World Generation UI to be remade into a knock off of the Perfect World utility, I just think this,

Spoiler (click to show/hide)

is better with its sub menu tabs ;) then the native adv gen menu, its why I suggested that implementing the features and UI of the 3rd party utilities Dwarf Therapist, Legends Viewer and Perfect World would do a lot too "Help Save The Noobs" in the relevant general discussion thread.

The only reason I learnt to lay DF was because of 3rd party utilities and while I have long since learnt how to play without them I still prefer them over the native options.
Logged
"The long-term goal is to create a fantasy world simulator in which it is possible to take part in a rich history, occupying a variety of roles through the course of several games." Bay 12 DF development page

"My stance is that Dwarf Fortress is first and foremost a simulation and that balance is a secondary objective that is always secondary to it being a simulation while at the same time cannot be ignored completely." -Neonivek