Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
I-am-Erk opened this issue Dec 7, 2023 · 61 comments
Open

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

I-am-Erk opened this issue Dec 7, 2023 · 61 comments
Labels
Game: Balance Balancing of (existing) in-game features. Lore Game lore, in-game communication. Also the Lore tab. Map / Mapgen Overmap, Mapgen, Map extras, Map display (P5 - Long-term) Long-term WIP, may stay on the list for a while. <Suggestion / Discussion> Talk it out before implementing

Comments

@I-am-Erk
Copy link
Contributor

I-am-Erk commented Dec 7, 2023

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!

  • First, having a rough idea how the map is structured lets us do a lot more complex writing. We can now have stories about actual places in the game, and ensure those places fit the story as you can find it. You can run into an NPC that warns you that parts of New Bristol have been taken over by a constantly growing sheet of alien mold. Another NPC might tell you to avoid Miskwa Lake if you don't want to fight alien crab monsters. NPCs can make reference to places and landmarks in the region, and they're not just theoretical: you can go there.
  • Second, it is much easier to tell compelling stories if we can make assumptions about where our factions are relative to each other. In this system, we no longer have to worry about tacoma ranch being two OMT away from the refugee center, or 2000. It's always going to be close, but not too close, and the stories make sense. We can also offer breadcrumbs that are helpful but more vague than just "go to this spot", like "our scouts report seeing a castle made of scrap metal somewhere north of New Bristol, they didn't get the exact location though"
  • This also allows us to start reducing the spawn rate of some of the more gameplay-ruining monsters in the Midland area. That has some vast changes. First, it means we can make sure mycus doesn't overrun the refugee center, because mycus just plan doesn't spawn in that region, it's too far from their center of operations. You can run into them occasionally in midlands, frequently in their own zone and nearby, and pretty much never anywhere else. The same goes for any faction - they all have some light presence in the Midlands zone, to give new players a taste, but the chaos is otherwise contained. Beyond gameplay advantages, this also (in my opinion) helps a ton with the story. Now, Mycus isn't taking over the entire planet, it's a localized phenomenon. We can now see what the lore says: mycus is still a speck compared to the zombie invasion that's spread over everything. Presumably if you travelled to California, you'd see a bunch of totally different interdimensional factions.

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.

@I-am-Erk I-am-Erk added Game: Balance Balancing of (existing) in-game features. <Suggestion / Discussion> Talk it out before implementing (P5 - Long-term) Long-term WIP, may stay on the list for a while. Map / Mapgen Overmap, Mapgen, Map extras, Map display Lore Game lore, in-game communication. Also the Lore tab. labels Dec 7, 2023
@freijie
Copy link

freijie commented Dec 7, 2023

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

  • Distance between towns directly increases size of each 'region'
  • City size setting may by reinforced/changed into a setting that increases/reduces relevant region size near the midland sector, essentially making it faster or slower to move to massive metropolis or innawoods-like areas, or make player feel like they started closer to metropolis or rural areas.
    (e.g. if player has only 2-3 overmap chunks til metropolis area but some 10-20 chunks to get to rural areas, player will feel like they started in suburbs without actual changes to midland area.

@I-am-Erk
Copy link
Contributor Author

I-am-Erk commented Dec 7, 2023

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
Copy link

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
Copy link
Contributor

Ramza13 commented Dec 7, 2023

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
Copy link
Contributor Author

I-am-Erk commented Dec 7, 2023

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
Copy link

Rabadash94 commented Dec 7, 2023

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
Copy link
Contributor Author

I-am-Erk commented Dec 7, 2023

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
Copy link

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

@Rimplestilt
Copy link

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
Copy link
Contributor Author

I-am-Erk commented Dec 8, 2023

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
Copy link
Member

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
Copy link
Contributor

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
Copy link
Contributor

mkrutov commented Dec 8, 2023

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
Copy link

CoroNaut commented Dec 8, 2023

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
Copy link
Contributor

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
Copy link
Contributor Author

I-am-Erk commented Dec 8, 2023

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
Copy link
Contributor Author

I-am-Erk commented Dec 8, 2023

@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
Copy link
Contributor

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
Copy link

CoroNaut commented Dec 8, 2023

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
Copy link
Contributor Author

I-am-Erk commented Dec 8, 2023

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
Copy link
Contributor

db48x commented Dec 8, 2023

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
Copy link

CoroNaut commented Dec 8, 2023

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
Copy link
Contributor

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
Copy link
Contributor

mkrutov commented Dec 9, 2023

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.

@Inglonias
Copy link
Contributor

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
Copy link
Contributor

Inglonias commented Dec 11, 2023

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
Copy link

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
Copy link
Contributor Author

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
Copy link
Member

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
Copy link

Cenness commented Dec 12, 2023

@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
Copy link
Contributor Author

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
Copy link
Contributor

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
Copy link
Contributor

Procyonae commented Dec 14, 2023

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
Copy link
Contributor Author

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
Copy link
Contributor Author

I-am-Erk commented Dec 14, 2023

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
Copy link
Contributor

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
Copy link
Contributor Author

I-am-Erk commented Dec 15, 2023

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
Copy link
Contributor

db48x commented Dec 15, 2023

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.

@I-am-Erk
Copy link
Contributor Author

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)

Dammit, I've been made. Run!

@CoroNaut
Copy link

In before the entire planet is modeled.

@Procyonae
Copy link
Contributor

Procyonae commented Dec 15, 2023

Ah it was me that did the bad reading, I read it over quite a while as well as looking how a few other games work and thought about it mostly in bed so alot of the deets slipped away from me >_>
For the most part I'm chill with your OP suggestions having reread it, though I will say that with the size you're suggesting your suggested amount of regions seems like way more than needed and would just overcomplicate things.
I will say that autodrive being able to go 70/80 kph along a highway with vehicles on it in the near future sounds unlikely (unless it used to go that speed?), and there's numerous things getting in the way of actual highways or even a heavy compromise like just spawning 2 thick roads so any work on this stuff is unlikely to see much player interaction for a long time which is partly why I feel a fast travel (that say calced an autodrive route and had a chance to drop you part way along the path into an "event" that could use local horde info to increase chances off the top of my head) would make sense to implement imo. Even if it gets removed in the long run once better systems are in place the code would likely be used for mods or something else like an offmap location. I appreciate these distances are drivable in the current game state I just heavily doubt the average player will feel motivated to do so.
Apologies for messing you around >_>

@Maddremor
Copy link
Contributor

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)

Dammit, I've been made. Run!

I was actually going to suggest something to this effect. I am personally if the opinion that the IRL MA map thing would be the best, but I'm not sure we can actually pull it off. Having this pseudo-MA is good since we can play a bit fast and loose with the details, but we wouldn't have to scrap or heavily rework content if we get to the point of using real life maps.

@BaumgeistOne
Copy link

This sound like a really cool idea.

Just one thing: If the fungus is going to have a huge patch of land somewhere - what prevents the player from just burning it down? Would take the challenge out of that region.

@PatrikLundell
Copy link
Contributor

@BaumgeistOne: Two things:

  • Fire only progresses while in the reality bubble, and
  • There's work in progress to slow down fire progression (while in the bubble).

@BaumgeistOne
Copy link

  • Fire only progresses while in the reality bubble

Well, I can wait a bit; just this week I burned some infected portion of a forest, took only about an (ingame) hour before I could move into the burned out area and wait for the next reality bubble to burn down.

  • There's work in progress to slow down fire progression (while in the bubble).

That should be good. While fire does spread quite rapidly under the right circumstances, it takes a while for something big like a house or a tree to burn down completely.
On the other hand... there is still that problem of a fire burning weeks or even months after leaving the reality bubble, right?

Still, "fire only spreads in the reality bubble, so it would take too long to wait for the whole area to burn down" is - in my opinion - not the best solution to the problem of the Fungus being no threat for anyone with a lighter.
There are those fungus towers which are able suppress fire, right? Maybe they, or a smaller version of them, could be more common in the big fungus area.

@ashGlaw
Copy link
Contributor

ashGlaw commented Jan 26, 2024

Reading through the thread, it is impressed upon me how much we need to have highways. I think they would allow for much faster travel between places, even if the first time you make the trip, you have to push cars out of the way and kill some zombies. It's bothered me for a long time that there are often no road connections between adjacent overmap sections, but that would be less of a big deal if each of these independent areas were connected to the highway system

@Procyonae
Copy link
Contributor

It's bothered me for a long time that there are often no road connections between adjacent overmap sections, but that would be less of a big deal if each of these independent areas were connected to the highway system

The code attempts to guarantee road connections on 3/4 sides of every overmap already, if you want it changed to 4/4 that's a simple number change tho

@db48x
Copy link
Contributor

db48x commented Jan 26, 2024

Agreed. In fact, in addition to the interstates mentioned already, I think that there ought to be State Highways that consistently run north–south and east–west. In real life these highways often run through the middle of town (especially in the North East), so all that is really required is that we generate them first. Cities can be randomly scattered about the map without regard to the highways, and then either connected center–to–center or center–to–highway or both.

I also think that they ought to be more ambitious than the existing tile–based city streets that we have. Instead of having a limited set of 45° and 90° corners and intersections, interstates and highways should be created as splines that are laid down onto the overmap. The player would still see a grid of tiles when they approach such a road, but the road would not be as constrained to the overmap tile grid as roads are now. Straight sections would align with the grid for ease of interaction with ordinary roads and buildings, but on curved sections only the endpoints would be required to do so; the curve itself might pass through multiple tiles and cross the tile boundaries at any angle.

But that’s a completely different idea; just having roads that run consistently N–S or E–W and continue across many overmaps would be a huge improvement for long–distance travel even if they were simply made of the existing road tiles.

@kevingranade
Copy link
Member

Just to point out one pretty big deal, if all we do is populate some kind of global regions_data class with a little table of these huge cities, (at world generation time we would pin down the exact center points and sizes of these cities), that one piece of coordination lets us actually generate multi-overmap cities without much extra effort. Not just "so many little towns that they run together", but a whole new (but at least in principle, simple) city generation system that places a downtown area filled with skyscrapers, industrial areas with just industrial buildings, commerce districts with... you get the picture. Then outside that you have more general "urban" and then "metropolitan" and finally "suburban" areas with increasing distance from the center.

Since there's a central location that "knows" the size, location, and shape of the city, we can have overmap generation coordinate across multiple overmaps to seamlessly stitch the thing together.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Game: Balance Balancing of (existing) in-game features. Lore Game lore, in-game communication. Also the Lore tab. Map / Mapgen Overmap, Mapgen, Map extras, Map display (P5 - Long-term) Long-term WIP, may stay on the list for a while. <Suggestion / Discussion> Talk it out before implementing
Projects
None yet
Development

No branches or pull requests