Hi all I think I read about this some where but want to clarify.
So I have a few mods running here and when I create a new world I see this error
Whats the best thing to do
Retry (Never seems to end)
Generate unlimited map (also never seems to end)
Change settings (does nothing no matter what settings I use)
Allow current invalid map (this works but I assume most of the map items wont spawn which kind of sucks as I want all of the cool mod assets).
No settings allow all spawns so i went into optoins and disabled the prompt for it so I assume not all spawns will work but at least I aint getting nagged
Regardless of player settings or just for defaults?
It is impossible to guarantee full mapgen on non-default settings in the mapgen in current master. Weâd need to redesign an important part of overmap generation to ensure that.
Given even in pure vanilla defaults Iâve had this issue before, it seems like âcanât prevent this from occurringâ is a bad way to look at it. Mapgen seems annoyingly sensitive to non-optimal conditions to the point where even the norm is error-prone, which is a sign that some form of overhaul is going to be needed in the future.
Chances are the best for now is finding the overmaps that cause the most problems and unfucking them as best as possible within the existing system before 0.D, then looking into what source magic needs to be done afterwards.
There was previously a big issue with cemeteries breaking generation right outta the box due to being too swole to spawn. I think theyâve fixed it but unsure, havenât updated in a little while.
Regardless of player settings or just for defaults?[/quote]
For 0.D for defaults, which we donât currently have.
This will likely require something like pruning the list of âguaranteedâ map features to one per type that is required by a quest.
Later we will want to overhaul mapgen to make it impossible for this failure mode to occur no matter how many map features it requires, which will require spreading overflow across multiple overmaps.
I agree, unless itâs easier than anticipated to stick quest targets on adjacent overmaps.
I donât see how would that work. Adjacent overmaps have their own unspawned mandatory specials.
On github, I have suggested getting rid of the âsector gridâ by first mapping all possible locations, then assigning specials to them. This would be rather hard to implement to be fast, but brute force approach could be enough. Plus, with the current implementation, many specials get 20 attempts at placement per sector, so what we have is effectively brute force anyway.
I donât see how would that work. Adjacent overmaps have their own unspawned mandatory specials.[/quote]
Mandatory specials are a hack to insure that certain pieces of terrain exist in order to use as anchors for quests, if we instead have a per-world or per-region list of specials, it eliminates the pressure of trying to cram every potentially necessary special onto every overmap.
Might be reasonable, not sure, but the root of the problem is cramming every special onto every overmap, if we get rid of that assumption the problem becomes fairly trivial, because each âretryâ at least makes progress by creating an overmap populated with some of the mandatory specials, and the next attempt has a smaller list it needs to find spots for. In principle that doesnât even need to happen at game start, it can trigger on overmap reveal based on player movement, or on mission creation that wants a target. In the latter case we could even move the desired special to the top of the list to insure it is created immediately.
Iâd rather avoid per-world specials: they could be fragile and could scale badly (unless crammed into (0,0) or have their coords saved separately). For example, if per-world special couldnât be placed in desired overmap, it could require generating many more (possibly infinite, if settings were bad) and searching for this special would need to remember where it is without grabbing all the overmaps from HD (which is one of the slower parts of loading).
Per region could work, but enforcing it could be pretty complex: currently consistency between separate overmaps is really bad because the only aggregating structure is overmapbuffer, which is more of an interface than âparentâ.
the root of the problem is cramming every special onto every overmap
On default settings, most specials fit just fine. There are just 3-4 specials which cause problems, with bandit camp causing like 90% of those (those pesky bandits).
In weird settings (16 city size), some specials may not fit on any overmap, so overflow wouldnât fix that.
We should probably privilege the default settings here. Without a big redesign, extreme settings simply wonât ever generate a truly proper overmap.
Would a suitable dirty hack be to make the area considered as one overmap to a bigger size, making specials more widely-dispersed but giving more room to spawn?
Iâd rather avoid per-world specials: they could be fragile and could scale badly (unless crammed into (0,0) or have their coords saved separately). For example, if per-world special couldnât be placed in desired overmap, it could require generating many more (possibly infinite, if settings were bad) and searching for this special would need to remember where it is without grabbing all the overmaps from HD (which is one of the slower parts of loading).[/quote]
Those are problems that need resolution, but they are all very tractible problems, and cramming an arbitrary number of specials onto a finite map is not. Additionally, spreading the specials across overmaps is a desirable feature in of itself, we should have features that encourage players to make long trips, and if our mapgen tries to put every special on every overmap, there is very little incentive to do so.
The overmapbuffer as an interface was just a first step, itâs totally reasonable to have a region entity that aggregates something between dozens and hundreds of overmaps and imposes structure on them, as well as providing a place to cache region-wide data, like the location of key specials.
[quote=âCoolthulhu, post:12, topic:13570â]
the root of the problem is cramming every special onto every overmap
On default settings, most specials fit just fine. There are just 3-4 specials which cause problems, with bandit camp causing like 90% of those (those pesky bandits).
In weird settings (16 city size), some specials may not fit on any overmap, so overflow wouldnât fix that.
We should probably privilege the default settings here. Without a big redesign, extreme settings simply wonât ever generate a truly proper overmap.[/quote]
âMost fit just fineâ is not an ok state to be in, and neither is âif weâre careful the defaults will work, but non-defaults will break unpredictablyâ. If it takes a big redesign, a big redesign it is.
Letâs lay out the stakes here:
Missions need key terrain types they can target
Failure to generate key terrain breaks missions unpridictably
The number of missions targeting different terrain types will continue to increase.
The goal is to have a compatible terrain available when a mision needs it, not to fix the mandatory specials list. If we prune the mission specials out of the mandatory specials list and use it just to structure overmaps, and add some other mechanism to place mission specials, that would be fine too, but no matter what we do, attempting to place specials over and over (leading to too-long overmap generation times), and prompting the player to decide between continuing to wait on a too-long mapgen process and possibly breaking future missions is not an acceptible solution to the problem.