CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.64k stars 4.18k forks source link

Discussion/planning: Moving towards a vaguely defined "official" map. #70056

Open I-am-Erk opened 11 months ago

I-am-Erk commented 11 months ago

Is your feature request related to a problem? Please describe.

I have been working on adjusting mapgen so that the geography of the world changes as you move away from the starting center point. There's a lot of reasons for doing this, the first of which is that it makes it more interesting to explore. In the near future I hope to start adding the necessary infrastructure to design "regions", areas of the map where different things can spawn, and I would like to plan how we could do this.

There's been a fair bit of debate in dev circles over whether or not we should continue with full procedural geography, or if we should head towards using a map of massachussets as in the mod. Personally I love procgen terrain, and even if the mass map would still be partly procgen, I don't htink it's the same. I also think it would be nice to keep Cataclysm set within a fictional location in New England, rather than officially putting it in Mass.

Solution you would like.

VITAL DISCLAIMER: Although I would like to implement some of this very soon, in the near future and for 0.H stable, I do not plan to remove any significant content from the default spawn area. In order to do that, we first need to make it easier to travel long distances. Some of the proposed ideas in here would help with that. Even if all this is added, the default spawn zone (Midland) should always be a place where you can find a bit of everything, just as now.

  1. I would like to propose that the game area is now, officially, taking place in a state in New England that doesn't exist in our world. Canonically the name of this state should be whatever your worldgen name is. We should go through the worldgen name list and change it to a list of fictional place names that sound like New England states; currently I believe it draws from the same list as the cities, which wouldn't always be appropriate. We'll call it "the State" here, and if we go with this plan, we should allow NPCs to refer back to the name of the world using (we may also want to differentiate the world name from the savegame name, I don't want my NPCs to start talking about when they moved to Dad Save 1.)
  2. Within the State, we should define a number of regions. This is not so much a map as a relation graph, based on where these regions are compared to overmap 0,0, the default starting overmap. Here's a rough example, subject to change: image Bear in mind that the Midland region in this example is probably at least 5 overmaps across in each direction, give or take, making it easily enough to play the entire game without ever leaving. Each of the other regions would be similarly huge. We already have the beginning stages of this in game now with my changes to urbanization and forests. They fit a kind of wedge graph like this.
  3. We assert several landmarks in the State that should always be in roughly the same relative locations. This isn't like the Mass mod, they do not always take the same shape or appear in the same place, but they do always show up in a predictable wedge slice. This is easier shown than explained. Note that these are just my ideas and semi randomly assigned names, they don't have to be the final versions: image image As you can see, while you can predict that Montauk is always going to be somewhere south of where you start, you can't just check the wiki and travel to a specific coordinate to find it (though it's pretty big, you'll find it at some point). We define these things more by their relations to each other, which becomes important for some things I'll get into here.
  4. In the same way, we can now start making assertions about where the various factions should have their strongholds on the map. Here's a suggestion list, not a canon one, just to show what I mean:
    • Triffids might always form somewhere in the central North
    • Mycus should always have a main stronghold just outside New Bristol
    • Migo center of operations may be on the edge of Miskwa Lake
    • Isherwood Farm could be in the forests beyond Bunyan
    • The refugee center could be in the south outside Montauk, and Tacoma Ranch would then be in an adjacent region
    • Hell's Raiders should also operate near Montauk, helping to accentuate the conflict between them and the merchants
    • Hub01 should be near, but not inside, New Bristol
    • Exodii could take a seat somewhere in the Northeast, with all their portal drop buildings appearing nearby, making their teleports a lot less wildly random.
    • Zombies are just everywhere, that doesn't change.
What all this change accomplishes

LOTS!

Overall I think the biggest thing is that it lets us tell a much more detailed and compelling story, without sacrificing very much of the "every world is unique" feel that procgen gives us.

Describe alternatives you have considered.

Well, to start with, we could do the region thing without the defined landmarks, and instead just have biomes of different weather and stuff, and the current vague megacity that extends out infinitely to the east, eventually turning into ocean when I implement it. That was where I started with this, but as I've thought further about it, I have really gotten fond of this idea.

All the specific places I've described are random, we don't need to keep this design. I'm very open to feedback and suggestions here. If we go with this idea, we'll almost certainly pick up more of them as we go along, too.

Also we may want to consider giving the State an official name and having that be separate from your save game name.

Rabdash94 suggests in comments:

The way I see it, the generated world might not have all of those places, but some, in random combinations. A world could have only New Bristol, Bunyan and the Ocean, or Montauk, Bunyan and the Tibickissi River. The generated stories and roads should respect the chosen locations.

Additional context

Remember, at least on a first pass and probably for a long time, I am not planning to make it so that you must leave Midland to experience the full game. I don't really plan to touch spawning in Midland, not until we can make sure it's not painful to travel 5 OM away to get to the refugee center. What I may do for testing reasons, if it's not too hard to implement, is to give 'global unique' spawns an official place they're supposed to spawn, but they're also always allowed a "temporary duplicate" that spawns in midland, so you'd get two aircraft carriers, one in the ocean far to the east and one in a random lake in the middle of the map.

Also remember, you're still not going to know where anything is. You'd be able to get an idea of vaguely what direction to look, but the size of these areas is huge. Knowing the refugee center is somewhere within a 50+ overmap area is not going to mean you can just walk exactly there every time.

freijie commented 11 months ago

This is as close as possible to what i'd expect from CDDA if i was a first time player. In fact initially i questioned if worldgen has similar ruleset.

My thought is about change of worldgen settings for this mechanic

I-am-Erk commented 11 months ago

This would go along with probably a very large number of json settings that define what you're talking about; we'd probably keep city size still, or some version of it, but you could also separately edit the details on how close and small the regions are. I'm not sure if these would be exposed in-game though, at least to start with you'd need to edit the text files until we'd sorted this stuff out

Rabadash94 commented 11 months ago

It would be great if this was done. The way I see it, the generated world might not have all of those places, but some, in random combinations. A world could have only New Bristol, Bunyan and the Ocean, or Montauk, Bunyan and the Tibickissi River. The generated stories and roads should respect the chosen locations. Although for this to work the unique locations would have to be quite numerous.

Ramza13 commented 11 months ago

Nice, maybe putting portal storms into a region where they are more common and never/almost never happen elsewhere would further solve some of the issues with them.

I-am-Erk commented 11 months ago

Nice, maybe putting portal storms into a region where they are more common and never/almost never happen elsewhere would further solve some of the issues with them.

I hadn't thought of that but yeah, portal storms could also be geographically isolated. Maybe we could then have some sort of Superstorm location that forms in the middle

Rabadash94: That's a cool alternate idea, but would play differently than what I describe. I'll add it to the alternate suggestions portion. The downside there is that it would be much harder to tell consistent stories if we lose the ability to guarantee that particular landmarks are going to spawn.

Rabadash94 commented 11 months ago

Another suggestion: Although I know it's not exactly in New England, the Ocean could have something similar to Plum Island, with its huge laboratory. A reference to the legends that are told about it would not be bad either. Or a large island with something. Edit: The game mentions a rumor that some cities managed to isolate and fortify themselves. They could be added.

I-am-Erk commented 11 months ago

Yeah, I didn't list here but I'd like to have at least one guaranteed island, maybe two, based on Nantucket and Martha's Vineyard, plus some procedural random islands

MrSlowline commented 11 months ago

For what it's worth, I absolutely love this concept.

Rimplestilt commented 11 months ago

Huge fan of this development and all the new world building it would allow. I could see the fun in still having a completely (or more) random map generation available as an option in world creation, unless that limits how this would be implemented. Since i imagine this will drastically change so much about world gen, perhaps it is more unshackled if the completely random nature is left behind, especially if it ends up messing up factions, locations, and other features. Regardless, this is so exciting. I can imagine mods eventually having entirely new regions and subregions added to the overall map, or even entirely different locations/campaigns.

I-am-Erk commented 11 months ago

With the implementation I have planned, it would still be possible to restore the old mapgen by just changing some JSON settings, at least for a good long while. Midland would remain exactly what we have now. Eventually, later on, i'd like to move a few things out of Midland, and then it would take some more specific modding to restore the old way.

It's too big of a system to make a simpler on-off than that. However, remember that Midland should by default be around 25-30 overmaps... that's a very, very big area to play in without ever even bumping into the new geography.

Edit: I should be clear, when I say "exactly", I may still make some things more or less common in Midland, but I wouldn't be taking anything out.

kevingranade commented 11 months ago

This issue has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there:

https://discourse.cataclysmdda.org/t/i-did-some-mapgen-changes-you-might-find-cool/29087/9

TheSaddestGoomba commented 11 months ago

This is a really exciting addition. I think it will breathe a lot of life and verisimilitude into the game world. As it is now, the overworld can start to feel like a version of the backrooms, but repeating blocks of overland New England rather than interiors. Varying faction spawns by region is equally exciting. I can't wait to see some new marine horrors. It also seems like this is the best way to implement long-distance paths like highways and rail lines.

mkrutov commented 11 months ago

I'm trying to find an english synonym to the word "exciting" so I don't repeat words of others, but my vocabulary fails me as this is absolutely exciting and I love the concept.

CoroNaut commented 11 months ago

I have reservations that using such a detailed system of placement for everything will yield enough variety.

If every world follows this pattern, especially with your solution 4, where Triffids, Migos, Exodii, are all in their particular wedge-slice, how exactly would every world be different besides procgen? After a player learns the ins and outs of this generation, it would seem like exploring the world would be less fruitful. The player would know exactly where things are relative to each other, especially if they play a bunch, and die a bunch. I guess I'm fine with cities being in their own wedge nearly every time, but otherworldly threats wouldn't always spawn in the same place right? I don't think they should be this predictable unless mankind was tampering with these creatures in those specific wedge-slices. In that case, there should be lore about it.

What would the "size of cities" and "city spacing" options do? Would "size of cities" change the size of the whole state or just the cities within? Then "city spacing", would it do anything if the city placement is already well-defined or would it just effect cities outside the state? I can't help but think these options would become obsolete eventually.

Then, the issue of going beyond your state. If players are adventurous and like exploring much further away, how exactly would generation be handled beyond the state? Would many states essentially be generated as a grid or lattice of differently-sized circles? At that point, since states have such a well-defined structure, each state would essentially be copied past your initial state. There would have to be some different form of generation. The way I see it layed out, perhaps the N_far or E_far will generate infinitely? If that is the plan, then diversity in the four outer directions would degrade fast. Would Triffids to the north become more and more prominent until there is an impenetrable wall of them, or would they have their own little bubble in the north? If so, would there even be anything of interest past "N_far"?

I do like how well-defined the world you suggest is. Perhaps instead of making it the only form of map generation, we could have a listing for world generation containing all the states you plan. Having the player select their state upon world creation, the player could fine-tune their role play to their state. Landmarks would generate differently in every state, otherworldly threats would be in different locations, etc. This would provide much greater variety after a player has fully explored a single state and wants a fresh start. Then we could have our current world-generation being its own option as just "legacy procedural generation" It may be easier to implement it this way for testing as well.

PatrikLundell commented 11 months ago

I like the overall concept, but have severe reservations about the ripping apart of the existing content.

The way I see it, spreading all the contents of the current game out over an enormous distance will mean you'd blindly slog your way through obstacles in search of the refugee center two days drive (if you could drive straight and had a vehicle) in a vaguely southern direction (if it was south), although I guess you'd still get a path from the evac shelter (if you've started there or found one, and assuming the pathing logic wouldn't give up on account of it being too far). Then you'd have to set up a base there to go through their quests, before breaking up and heading in another vague direction to find the next set of starting content. Going through the starting content serially rather than i parallel would cut down on the game quality, in my opinion. Sure, it would stretch the content over a longer time, but it's not quality game time.

The way I would like to see this play out is that there'd be starting content in the center, with the starting content basically consisting of what's in the game now (which can be tweaked to fit with new content), with some outliers (e.g. carrier) possibly moved far away. Then you'd add new content to these locations (the vaguely mentioned Old Guard faction with its fortified cities and ships would fit the east, for example).

When it comes to the monster factions, they'd have to remain in the center or it would become boring, but that wouldn't mean they couldn't have a much more pronounced presence elsewhere and gradually disappear in the opposite direction.

I also believe there's some kind of trait that precludes the usage of vehicles, and such characters would never reach most of the game due to the sheer time they'd have to spend trying to reach the locations.

It can also be noted that it isn't particularly realistic that a resident has no idea of where the major land marks are located and that there are no physical maps available to allow you to find them. I don't think the world has gone completely digital and navigator dependent yet (although there are already cases of people who are so navigator dependent they can't get anywhere without the guidance of a navigator, but those people probably died shortly after the GPS signal was lost when they couldn't find their way out of their homes), so you should be able to find map resources that allowed you to find where the major features are located, which would cut down on the blind searching for major cities, lakes, and rivers.

Thus, in short, expanding the game instead of stretching it out.

I-am-Erk commented 11 months ago

If every world follows this pattern, especially with your solution 4, where Triffids, Migos, Exodii, are all in their particular wedge-slice, how exactly would every world be different besides procgen? After a player learns the ins and outs of this generation, it would seem like exploring the world would be less fruitful. The player would know exactly where things are relative to each other, especially if they play a bunch, and die a bunch. I guess I'm fine with cities being in their own wedge nearly every time, but otherworldly threats wouldn't always spawn in the same place right? I don't think they should be this predictable unless mankind was tampering with these creatures in those specific wedge-slices. In that case, there should be lore about it.

I'm not sure you appreciate how big a wedge slice is. If we allow triffids to form their major base in, say, a random one of the n3 regions, then depending on worldgen params that's a chunk of space roughly 100 km wide and 25 km deep in which they hold a chunk. We're only asserting a loose constraint on roughly what part of the world it might be in.

I don't know why human intervention has to have anything to do with this, or what you mean by that part.

What would the "size of cities" and "city spacing" options do? Would "size of cities" change the size of the whole state or just the cities within? Then "city spacing", would it do anything if the city placement is already well-defined or would it just effect cities outside the state? I can't help but think these options would become obsolete eventually.

They'd do the same thing they do now, like, exactly the same. Their main role would be in Midland but it would rattle on through every other region as well. There would be (already are, and growing) new worldgen variables to control other things. When I talk about New Bristol, I'm not describing a little 20x20 omt city, it's like the megacity that we now have by default in the east, a giant cityscape spanning multiple tiles. The little towns and villages of older mapgen are still there in the other parts of the world.

Then, the issue of going beyond your state. If players are adventurous and like exploring much further away, how exactly would generation be handled beyond the state?

However we decide to define it. It'd use the same mapgen we currently have, set to fit roughly whatever region you're travelling from... So, more cold and tree in the north, more swamp and warm in the south, more tree and Appalachian in the west, ocean in the east. I honestly don't have strong opinions about the Far regions, they're mostly to prevent an "edge of the map" effect.

I do like how well-defined the world you suggest is. Perhaps instead of making it the only form of map generation, we could have a listing for world generation containing all the states you plan.

Good lord man, I'm only planning to make one state. Even what I've outlined here is a herculean amount of effort.

All this is defined in JSON though. It's not going to be hard coded, candlebury would kill me if he had to adapt aftershock to work around new Bristol spawning.

I-am-Erk commented 11 months ago

@patricklundell do note the Additional Context section.

Before anything is moved out of Midlands, we have to have the features that prevent exactly what you're describing. I won't move the refugee center anywhere until you can fast travel across a few KM very easily in your car, or even possibly on foot through a time skip mechanic.

However, it doesn't really make sense to declare everything we have now "the content that should be in the middle" and arbitrarily say that whatever we make after is "the stuff that's allowed to be on the edges". All that will mean is that the outer regions are very, very boring for a really long time.

PatrikLundell commented 11 months ago

No, I didn't mean that the current content should be fixed in the middle, but rather that the middle should contain starting content, and any significant movement of stuff away from it should be coordinated with the introduction of replacement content to ensure the center content doesn't get diluted to homeopathic levels.

The decision to make an increasing number of things unique necessarily means the surrounding areas gets increasingly devoid of content. This can be counteracted by the introduction of new non unique content that can appear in the outer areas (possibly appearing in only some region(s)).

CoroNaut commented 11 months ago

I have a better understanding of scale now that you've clarified it, thanks. I was thinking that this world suggestion was more of a pre-generated world, something with lore specifically for it, rather than all-encompassing our greater mid-lands region. I suppose that travelling farther outward would be considered a long-term endgame task.

As a suggestion, perhaps we could have an option to scale the mid-lands region or conversely, scale the wedges. If players want to specifically explore the major landmarks and otherworldly creatures' major bases, having a small mid-lands and/or closer wedges would allow faster travel between these landmarks. A larger mid-lands would maintain the current generation and variety.

I-am-Erk commented 11 months ago

I made a typo on the scale and said om when I meant km, but the area is still ginormous. I'll sleep now and reply better in morning

db48x commented 11 months ago

spreading all the contents of the current game out over an enormous distance will mean you'd blindly slog your way through obstacles in search of the refugee center two days drive (if you could drive straight and had a vehicle) in a vaguely southern direction (if it was south)

It doesn’t seem that bad. Two days is enough to cross the whole country (3,000+ miles), and it wouldn’t be quite that big. Given the scale as described it would be about 9 OMT from the center of the midlands to the center of Montauk. That’s only about 60 miles, or an hour’s drive on the interstate. The refugee center would be somewhere near, but not inside of, the city, so it could be anywhere from 40 to 80 miles from where you started.

Of course it wouldn’t be good gameplay if it took an hour of the player’s time to make that drive, but all that means is that better fast–travel options need to be implemented. Maybe once you find the interstate, getting to any exit from the interstate is just a matter of clicking on it in the map view. Or maybe you get interrupted half–way by a roadblock, and have to clear it or get around it.

Still, while I like the overall idea, I think that perhaps the refugee center should just be in the midlands.

CoroNaut commented 11 months ago

That's a good example of why it would be a good idea to have an option for scaling the mid-lands and/or the wedges. New players may want an easy time to get to landmarks, especially if they play for a few days and drop the game. If they start thinking "omg this is too far", they may get discouraged from the effort. I could imagine a new player going all the way to the refugee center and forgetting their refugee bucks at home lol. Long-term players could expand the map and go to the extreme late-game without feeling confined.

Inglonias commented 11 months ago

I like this a lot, and feel that the fear of not being able to see various parts of the game can be addressed by allowing scenarios to specify a starting overmap tile (or a range of overmap tiles) that you spawn in. That would be done after we're confident that the geography system allows for meaningful gameplay in that way.

The highways are also a great idea if we can pull it off - it would allow players to easily find various sections of the map. When the highway starts producing exits, we know we're in the right place.

I also agree this is a massive project. Best of luck.

mkrutov commented 11 months ago

Just something which popped up in my head. There's little to differenciate town and a village as of now. I.e a small city which would take let's say 5x5 residential still has potential to have a skyscraper office tower inside of it. In context of this, it would be nice to have separation between villages and cities so you'd get small residentials with a grocery store and a church in villages, without town-specific buildings.

I-am-Erk commented 11 months ago

That's already well in progress, don't worry.

XygenSS commented 11 months ago

I'm a bit concerned that this change would make static bases less attractive, and push people into deathmobiles again. I certainly would live out of a house on wheels if such long distance travel became a norm.

PatrikLundell commented 11 months ago

One problem with widely spread out locations of interest is that you'd either spend most of your time traveling and chasing fuel rather than doing something productive, or sit around waiting for the next trade good refresh/trust increase to get access to the good stuff until it's time to move to the next node (although I guess you can spend the time trying to locate that node, including all the detours required to actually be able to get there). You can't really loot more than for trade goods, as your vehicle gets full, and deathmobiles were nerfed to uselessness both by them becoming brittle and being restricted to two engines, which isn't really enough for a heavy vehicle hauling a lot of stuff (might be enough if you can get hold of aircraft engines, but not regular ones, and all such alternatives come with a huge fuel consumption bill).

I-am-Erk commented 11 months ago

Once again, we're talking about adding widely spaced out things after we set a distance of 4km (one overmap) to not feel like a vast journey. Until that time, I'm already aware of all these issues and that's why I've said several times I'm not going to change things until then.

We have other ways to discourage living out of your car, the main of which is just that it should be like living out of your car, with all the problems that go along with it.

esotericist commented 11 months ago

i'd like to add to what erk said with my opinion that it's an outright failure of the game that a few kilometers feels like a "vast distance" to someone with a working automobile. or even a bicycle.

crossing an overmap shouldn't be trivial, but it shouldn't feel far. dangerous, maybe, if you haven't cleared it. harrowing, if you're going a route you don't fully have mapped out yet. but not distant.

any arguments that "it's too far to travel" for distances that you plausibly should be able to readily cross should be arguments for "make it more plausible to transit", not arguments against "a more interestingly arranged world"

Ramza13 commented 11 months ago

It occurs to me that if static locations are too static it would be possible to have a few possible ones and use variables to adjust dialog. Maybe the migo are either east or west of the start for example and we just have a variable named migo direction that we slot into dialog. Would be a little annoying but not that bad and make things a bit more random.

I-am-Erk commented 11 months ago

That's more or less how I plan to do it, but I want to keep the relationships predictable, eg. Migo are always close to Isherwood

Wiergan commented 11 months ago

"Rabdash94 suggests in comments:

The way I see it, the generated world might not have all of those places, but some, in random combinations. A world could have only New Bristol, Bunyan and the Ocean, or Montauk, Bunyan and the Tibickissi River. The generated stories and roads should respect the chosen locations. "

This is a most shaite idea. Imagine you read a stories about those places. Start new world, play like 3-6 ingame months (2 real time weeks at least), hear some stories from NPC about these locs, but they at reandom not in your game, and you dont know about it on start and all whose weeks of playing, so you need to delete save with 2+ weeks of real time invested because random. And next world will not have another location, but to discover it you need another 2-3 weeks of real life investement. Very dissapointing experience, on second run may provoke to drop game forever.

All whole idea of semi-procedural map with pregen POI are brilliant, cant wait to test it/

OldFriendEr commented 11 months ago

This map kind of reminded me of sunless sea semi random map generation that map is random every time but east city is always somewhere east, south city in the south and so on. It was great, and the space in between was filled with mixed unique spawns and flavor. As for quicktravel maybe something like fallout1 or fallout2 could work, picking a destination in overmap will just travel there without even loading a real map. Could be restricted to roads only if quicktraveling with a vehicle. Ofc there are nuances about roadblocks, random encounters, but maybe that could be good enough compromise.

I am very excited for this idea, and yeah the map now is too small, and it is tedious to travel long distances now. The idea of a trip of 80km entices me. the fact that something bad can happen and then a hard trip on foot of survival sounds interesting too. In real life there are wast distances without civilization and if the car breaks down that usually means im in deep.

Maddremor commented 11 months ago

I actually think one would want to have the Refugee Center situated in the Midlands (or at least closer than other points of interest). Compared to other factions it's pretty grounded and can serve as an introduction of sorts.

Caiggas commented 11 months ago

This is a really cool idea, but how do we handle save file bloat as the massive world is explored? I see the game continually slowing down the more I explore, with substantial differences after exploring only a half dozen or so overmaps. Just the midland alone would cause a significant slowdown once it is mostly explored.

Rabadash94 commented 11 months ago

This is a most shaite idea. Imagine you read a stories about those places. Start new world, play like 3-6 ingame months (2 real time weeks at least), hear some stories from NPC about these locs, but they at reandom not in your game, and you dont know about it on start and all whose weeks of playing, so you need to delete save with 2+ weeks of real time invested because random. And next world will not have another location, but to discover it you need another 2-3 weeks of real life investement. Very dissapointing experience, on second run may provoke to drop game forever.

With that logic, the best reason not to eliminate lakes would be to prevent fish from being left in the air. It is obvious that if a world does not generate all possible places, references to missing places should be avoided. It is a matter of difficulty, just as I-am-Erk said, but no one said it is impossible.

Inglonias commented 11 months ago

There's no reason to not spawn some or all of these locations without the player explicitly setting that as an option and even that's probably not high on the priority list.

Why would we want that?

Inglonias commented 11 months ago

Regarding the distance issue, I find with the semi automatic auto travel mode, getting through forests and trails is easy, and with the full blown autopilot for both walking and vehicles, long distance travel is almost effortless.

My one complaint is maybe vehicle auto travel speed of 12 mph is maybe too slow. If we could find a way to increase that speed, that would be cool.

We should also really have a default binding for auto travel mode.

Rabadash94 commented 11 months ago

There's no reason to not spawn some or all of these locations without the player explicitly setting that as an option and even that's probably not high on the priority list.

Why would we want that?

Consider that this opens the door to adding a huge amount of content. Consider, to say an exaggerated number, that there are 50 places of this type generated in a world. Imagine if distances wouldn't be a problem then. But even if it were said that 50 is exaggerated, 10 places are enough to make it difficult to see them all. Of course, having all places generated should be an option. It's also about getting to see different combinations and stories.

I-am-Erk commented 11 months ago

It's going to be possible to turn on and off locations, because mods will have to do that, but personally I don't see the value of randomising their existence. That opens a big element of complexity around content dev because we can't assume all of the features exist in a given world.

However it's not useful criticism, wiergan, to describe something as a "shaite idea".

akrieger commented 11 months ago

This is a really cool idea, but how do we handle save file bloat as the massive world is explored? I see the game continually slowing down the more I explore, with substantial differences after exploring only a half dozen or so overmaps. Just the midland alone would cause a significant slowdown once it is mostly explored.

@Caiggas do you mind creating an issue with the save and describe what specifically is getting slower? Auto travel, rest, something else?

Cenness commented 11 months ago

@I-am-Erk jfyi there are two potential problems:

  1. if there will be an option to configure city size/spacing - quest generation needs to be made aware of it, issue
  2. if exodii castle is made globally unique - rubik must have enough balance debt ceiling to allow character to install any cbm, issue
I-am-Erk commented 11 months ago

The latter isn't really related to this at all, but is a good issue to call my attention to.

I had thought a bit about the quest generation stuff. Really what we'd want is for the OM search algorithm to be smart enough to look in the correct regions, which would probably actually reduce those types of errors a lot since it would be less of a crap shoot.

Inglonias commented 11 months ago

I feel a good first step to making this happen is to give us JSON fields that allow us to restrict the overmap tiles that specials are allowed to spawn in. That way, we can get a feel for the layout before making major map gen changes.

Procyonae commented 11 months ago

To add my 2 pence I really dislike the radial zoning, I'd prefer we use the irl state boundaries for New England with proc gen names in game and randomised placement of everything within them, it requires less understanding as to what to expect and what to have spawn where, allows conveying the region information to the player (North of the top states would say Canada while south and west could just say "South/West of New England". I also dislike the fixed transport links and city locations etc, I think they should all spawn interconnected with logic and guaranteed but still in random locations (within a state/multiple states), one of the big pulls of this game over say Project Zomboid is the exploration component, it's bad enough that travel on this scale is going to require some form(s) of fast travel realistically (hopefully with events at least), making large features of the map that the player is likely to want to stay near to fixed seems like a bad idea.

I feel a good first step to making this happen is to give us JSON fields that allow us to restrict the overmap tiles that specials are allowed to spawn in. That way, we can get a feel for the layout before making major map gen changes.

I wholeheartedly agree that more control over special and city building placement should be a priority before this gets implemented

I-am-Erk commented 11 months ago

near to fixed

This is an ongoing misconception. Bear in mind that a region like "east 1" is set to be of a similar size to the average current play area, judging by what people think is "too far to go" to get to a refugee center. What we're effectively doing is defining several arenas of play wherein the specific quests and enemies are different, and setting relationships to each other, but in no way are we talking about things being "near to fixed". We're talking about eg. knowing that Isherwood is going to spawn somewhere in the West or North, between 5-15 overmaps away from center, in an overall area of around 30-50 overmaps. That's almost certainly less fixed than any current global uniques, because global uniques are pretty guaranteed to spawn close to the start right now. The only difference is that you know vaguely what direction they'll be in.

What's important isn't the map isherwood spawns in, it's that the code for choosing where they spawn can ensure they're always close to the epicenter of mi-go activity, because their plot intersects with the mi-go. And mi-go will spawn somewhere randomized into a similar giant swath of land, with checks to make sure they don't appear in the same region as isherwood.

I'd prefer we use the irl state boundaries for New England with proc gen names in game and randomised placement of everything within them, it requires less understanding as to what to expect and what to have spawn where

I don't really understand what this means. If you want to have an understanding of what to expect where, they we can't randomize placement of everything within a map. Either you know it's forests to the west, or you don't; for this to mean anything, we need to be able to link things up to appear in those forests. There's no point in knowing there's an ocean in the east if we can't add story elements that belong in the ocean there.

I-am-Erk commented 11 months ago

I feel a good first step to making this happen is to give us JSON fields that allow us to restrict the overmap tiles that specials are allowed to spawn in. That way, we can get a feel for the layout before making major map gen changes.

writing it out partly for myself as well.

The first step is really to add a few methods to decide what region an overmap is in. I don't think they'll be defined as they are above. Whatever region it is, we'll chose a region_settings JSON entry of that name, or use default if none are available. Currently I think the regions would be:

Inner ring, starting 3-4om out from center: east1, west1, north1, south1 middle ring, starting 8-9om out from center: east2, northeast2, north2, northwest2, west2, southwest2, south2, southeast2 outer ring, starting 12-15om out from center: east3, east-northeast3, northeast3, north-northeast3, north3, etc distant ring, starting 20+om out from center: far_east, far_northeast, far_north, far_northwest, etc.

To begin with, we wouldn't be doing so much of the factional stuff, I don't think, but we'd experiment with different buildings and we'd want to make a version of 'global unique', regional_unique. We'd use this framework to play around with the variable geography we have already.

Once this is in though, we can start working on a json structure to outline what things should be possibly isolated to what region. We need to be able to:

  1. define a range of regions for a particular "regional POI" to be allowed to spawn in
  2. define what regional POIs are (a) not allowed to be in the same region, and (b) required to be in adjacent regions. Then when we create a game world, we randomize these values and save them, and we can start talking about how to adjust elements of OM generation to suit what we know. Like if we know that Lake Waubgeshig is in west-northwest3, we can pick a spot for the river delta for Tibickissi River, and make decisions about what overmaps should contain the river. It's much easier then to have it connect from OM to OM, and we don't need to draw the whole river all at once at game generation.
Procyonae commented 11 months ago

I don't really understand what this means. If you want to have an understanding of what to expect where, they we can't randomize placement of everything within a map. Either you know it's forests to the west, or you don't; for this to mean anything, we need to be able to link things up to appear in those forests. There's no point in knowing there's an ocean in the east if we can't add story elements that belong in the ocean there.

I don't know if you just skim read my comment or what I'm not saying everything should be fully random I'm saying using irl state borders rather than "E3n" is a lot more intuitive and easier to work with, distances shouldn't matter bc you'll be using some form of alternate travel to get to these places anyway (even with major highways on the scale you're talking we'll want some form of fast travel along them, the average player isn't going to enjoy driving around vehicles for ages with little else going on). I'm not suggesting any regression of your geography changes either, by randomly placing things within the states I mean I'd prefer that "Bunyan" or whatever always spawns in a specific state rather than knowing it's exact location, and that the major transport connections still spawn between these in such a way that they're all interconnected, but not in a way that I can guarantee going from "Bunyan" direct to "Montauk". This means all the story elements can still be achieved while having it play out more differently every time and that players will explore different portions of the map in different saves, for example in your first image anyone following the story stuff is never going to go to N3m or W3s so stuff added to those regions would be seen less.

I-am-Erk commented 11 months ago

I don't know if you just skim read my comment or what I'm not saying everything should be fully random I'm saying using irl state borders rather than "E3n" is a lot more intuitive and easier to work with

I'm confused because I read your comment, and what you're saying seems to be directly in conflict with itself, or I'm misunderstanding it. You wrote:

I'd prefer we use the irl state boundaries for New England with proc gen names in game and randomised placement of everything within them, it requires less understanding as to what to expect and what to have spawn where, allows conveying the region information to the player (North of the top states would say Canada while south and west could just say "South/West of New England".

What you're describing sounds far more fixed to me, although now that I'm thinking about it, I'm very confused about what "spawns in a specific state rather than knowing it's exact location" means. We're not talking about synthesizing all of New England here, that's much more than I'm willing to take on. As I said in the OP, this describes an area around the size of a single state. In the scope of the game, that area is huge. Trying to do something bigger is just going to mean we have almost incomprehensibly vast randomly generated areas... if city A is always in Massachusetts and city B is always in New Hampshire, that's many dozens of overmaps to travel to reach one of them. Even more, you don't want us to have defined connections between these cities, so it's dozens of overmaps without any guaranteed connection to allow you to travel that distance. Aside from being massively scaled up, though, I have no idea what this would add. Either the content is randomized - in which case, again, this makes it so that as long as you know where you are, you can guess what direction to go to to find a particular thing, exactly like the original proposal - or it's not, in which case we're just talking about using essentially the massachussetts mod, but so much bigger as to be basically impossible to work with.

you'll be using some form of alternate travel to get to these places anyway

I don't assume that. The major barriers to rapidly crossing a couple overmaps are that auto-drive is slow and it's hard to find long straight roads. Once those are fixed, it really shouldn't take long to auto-drive across a couple regions at 70 or 80 kph. If you do it manually in game, it's pretty quick.

I'd prefer that "Bunyan" or whatever always spawns in a specific state rather than knowing it's exact location

It's ironic that you accused me of skimming.

Again, I'm not talking about knowing anything's exact location. All you should know about the smallest major city is that it's somewhere north, northwest, or west of the start point, and more than 5om away in whichever of those directions it is. That is not the "exact location" by any stretch.

for example in your first image anyone following the story stuff is never going to go to N3m or W3s so stuff added to those regions would be seen less.

So, first, you appear to be getting in the way of your own argument here. yeah, in the first world, there's nothing in w3s on my map. In the second world, that's where Bunyan is, so you obviously can't just "never go to W3s". Like, this is literally my point about not knowing where its exact location is, the thing you were concerned about.

Second, just because I didn't draw every single possible POI on the map, or every possible random configuration of the ones I did draw, doesn't mean these areas are all empty. Likely they'll all wind up with their own special thing, but even if they don't, they're going to look more or less like worldgen does right now, the worldgen we've been using for years; having a few "non-story" regions is going to be something a number of players demand anyway. Knowing how content addition goes in this game, I fully expect that in a few years I'll be posting about how we should be reducing the number of interesting POIs and not every region needs to have something huge and exciting going on.

db48x commented 11 months ago

How many states do you think are inside that area? A box 250km wide and 150km tall just about contains all of Massachusetts, Rhode Island, and Connecticut. If you look at a map of Massachusetts, you’ll see that there is a great city to the east on the coast (Boston), a huge lake to the west (Quabbin Reservoir) with a city kinda next to it (Springfield), and a third city in between and to the south (Worcester). In the middle is the midlands. The map as described is basically just the state of Massachusetts with infinity extending out beyond it.

I am fairly certain that the game will never show the sector names described above to the player. That’s merely an implementation detail.