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

Only allow military base and aircraft carrier specials to be placed once per game world #59328

Merged
merged 2 commits into from
Jul 22, 2022

Conversation

anothersimulacrum
Copy link
Member

Summary

Content "Make it so large military locations cannot be found twice in a given world"

Purpose of change

Fixes #59115

  1. These locations should be exceedingly rare
  2. These locations are start locations, so making them exceedingly rare makes those starts not work
  3. These locations exist for variety. There is not content tied to them, like NPCs

Because these are meant to be exceedingly rare locations and do not have content tied to them, the issues with previous attempts (#57127, #49322), while not totally obviated, are much less worrisome. It does not matter that it's potentially quite easy to miss these locations, because they should be rare. Similarly, it making the player start location special is less bad, because it's not a big deal if you leave and miss them forever - though it still is problematic that it makes them special.

Describe the solution

Cherry-pick and rebase #49322 globally unique flag.
Apply it to aircraft carriers and military bases.

Describe alternatives you've considered

I could have used the infrastructure in #57127, but this approach is, in my opinion, a little bit cleaner, and it's not problematic to have this way to do this, as the infrastructure in #57127 is usable for much more.

Testing

Try to start in military bases and aircraft carriers. Experience no problems.
Change the occurences of the military base to [ 1, 1 ] (spawn on every overmap). With just the UNIQUE flag, it spawns in every overmap. With the GLOBALLY_UNIQUE flag, it only spawns in one overmap (often the one you spawn in).

@anothersimulacrum anothersimulacrum added Game: Balance Balancing of (existing) in-game features. Spawn Creatures, items, vehicles, locations appearing on map labels Jul 16, 2022
@github-actions github-actions bot added <Documentation> Design documents, internal info, guides and help. [C++] Changes (can be) made in C++. Previously named `Code` [JSON] Changes (can be) made in JSON [Markdown] Markdown issues and PRs Map / Mapgen Overmap, Mapgen, Map extras, Map display astyled astyled PR, label is assigned by github actions json-styled JSON lint passed, label assigned by github actions labels Jul 16, 2022
@esotericist
Copy link
Contributor

i'm not in a position to review the code or test the implmentation, but i agree with the rationale here, and none of my concerns in previous attempts are serious problems with these locations. i think this is reasonably safe, i just would want us to be sure not to let people get overeager in applying it for other content until we've tackled the other obstacles to using this more widely.

@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Jul 16, 2022
@PatrikLundell
Copy link
Contributor

Aircraft carriers in lakes is weird, so I don't have a logical problem with making this weirdo truly unique.

Military bases is a somewhat different issue, though: how many are there in New England currently? They're certainly not globally unique in the real world. This might be a reason to allow the flag to have a count, so the world may have up to X of a given "unique" feature that doesn't have unique functionality tied to it.

As an aside, I've never seen either a military base of an aircraft carrier in my games...

@Zireael07
Copy link
Contributor

+1 to aircraft carrier, but not so sure about military bases. It makes sense that there'd be multiples of those

@esotericist
Copy link
Contributor

esotericist commented Jul 17, 2022

more than one military base in new england, maybe. more than one of that one specific layout? less so.

but more specifically, the problem is right now we don't have the tools in place to enforce the right kind of spacing to ensure we don't have more than one of that specific layout in a relatively small area: i personally have had a few of those bases within easy drive distance of each other in previous runs.

one of the things we've wanted and discussed in earlier threads is better ways of providing spacing restrictions, and once the tech is at a point where it is reasonable to say "this special or group of specials cannot be within x range of others of same" then something like military bases makes sense to allow a degree of leeway. for now, one period is better than the current situation, and as anothersimulacrum says, these are not narrative content bearing locations. the military base is just a specific place to get a fairly substantive pile of generic but desirable loot. at some risk, sure, but it's a lot of stuff, and with that there isn't a lot of value in more than one existing.

alternatives to restricting the base count mostly consist of making it rarer (and thus making it likely fewer people will ever see it, without actually preventing the problem of multiples close together, not to mention the 'breaks scenario starts' issues), and substantially cutting back on the loot in the place. neither is super desirable.

@esotericist
Copy link
Contributor

as to numbers, i've seen estimates in the vein of 15 total military bases in the region (as in 'all of new england', not just 'all of massachusetts' which is our default for a lot of measures), across all branches of service. they would most assuredly be rather different kinds of locations with different kinds of things on the grounds.

@anothersimulacrum
Copy link
Member Author

anothersimulacrum commented Jul 17, 2022

There are 5 naval, 5 coast guard, 2 air force, and 2 army bases in new england (in MA specifically, it's just 2 air force, 2 coast guard, and 2 army bases) (from https://militarybases.com/by-state/). The military base is certainly not a naval, coast guard, or air force base, so that leaves the two army bases: https://militarybases.com/massachusetts/soldier-systems-center/ and https://militarybases.com/massachusetts/fort-devens/.

The first of those two appears to be primarily focused on R&D, so that leaves one military base that is relatively close in purpose to the one we have here.

eltank and others added 2 commits July 21, 2022 22:43
Unlike faction bases, these locations aren't 'special' - they just add
location variety, and so the issue of making the player spawn location
special, and the chance of missing them if you go the wrong direction
are much less relevant. They _should_ be rare, so if you miss them, it's
not a problem.

Making the spawn location special is not great, but I think is
acceptable for this.
@anothersimulacrum anothersimulacrum changed the title [CR] Only allow military base and aircraft carrier specials to be placed once per game world Only allow military base and aircraft carrier specials to be placed once per game world Jul 21, 2022
@anothersimulacrum
Copy link
Member Author

I think this is good to go.

@dseguin dseguin merged commit 7fe8d5b into CleverRaven:master Jul 22, 2022
@anothersimulacrum anothersimulacrum deleted the unique-specials branch July 22, 2022 01:29
@Perset
Copy link
Contributor

Perset commented Jul 22, 2022

Um...if these are being made unique, could there at least be some breadcrumbs to aid in finding them? You could just explore in a direction opposite to where they've been placed and then have no meaningful chance of finding them naturally for the rest of a playthrough, no matter how much time was spent...and these locations are things that many players, if not most, actually want to find, not fluff or garbage. If they are notable enough to be unique, and the only locations to be so, there should be some way to find them via quest marker or something. And I'm not talking about the lame military maps.

@anothersimulacrum
Copy link
Member Author

I don't see much basis for breadcrumbs for the portal-storm-displaced aircraft carrier. It's reasonable that there's a way to navigate to the military base.

@x-qq
Copy link

x-qq commented Jul 22, 2022

I think that being "globally unique in the entire infinite world" is way too strong of a restriction (for any location, not just these). Perhaps an alternative can be considered, like instead of being globally unique, spawn one per X*X square of overmap sectors?

@esotericist
Copy link
Contributor

I think that being "globally unique in the entire infinite world" is way too strong of a restriction (for any location, not just these). Perhaps an alternative can be considered, like instead of being globally unique, spawn one per X*X square of overmap sectors?

you might want to review the previous PRs linked up top, this gets covered (and is in fact a desired long term solution).

but aside from that: merged PRs are not the best place for discussions like this; if there is a concrete problem with a merged PR, an issue should be opened (or a PR made if there's a solution paired with the problem). if you want to have a discussion that isn't pertaining to an issue other venues are also available, such as the forums or discord.

@DamienRoyan
Copy link
Contributor

DamienRoyan commented Jul 23, 2022

Certain items such as utility exoskeleton should have their spawn chance made higher. Otherwise a player who is not lucky enough (like me even though its 71.76%) to find one in a base will be locked out of it.

Given that it's sensible to find one in a military base, high tier items like the exoskeleton should be made a guarantee spawn if their location is going to be made a one time thing, which by nature makes it hard to find

@CleverRaven CleverRaven locked as resolved and limited conversation to collaborators Jul 23, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
astyled astyled PR, label is assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions [C++] Changes (can be) made in C++. Previously named `Code` <Documentation> Design documents, internal info, guides and help. Game: Balance Balancing of (existing) in-game features. [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions Map / Mapgen Overmap, Mapgen, Map extras, Map display [Markdown] Markdown issues and PRs Spawn Creatures, items, vehicles, locations appearing on map
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Too many aircraft carriers in lakes
9 participants