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

Lower Stream Item Spawns #77904

Merged
merged 1 commit into from
Nov 16, 2024

Conversation

TheMurderUnicorn
Copy link
Contributor

@TheMurderUnicorn TheMurderUnicorn commented Nov 16, 2024

Summary

Balance "Lower Stream Item Spawns"

Purpose of change

Streams spawned excessive items, mentioned in #77780 this was caused by two main issues. Firstly, the itemgroup "trash" had too high of a chance to spawn.

Example: Every 1 in these image has a 5% chance to spawn from this group, every 2 has a 25% chance to spawn from this group. This image is ONE segment of stream. Remember, each stream is made up of a lot of these segments, and thus spawns hundreds of items total.

image
In this image there are
1: 24 total, 5% spawn chance, average of 1.2 spawns in this map segment. Repeated 2x so 2.4. Great, reasonable.
2: 144 total, 25% spawn chance, average of 36 spawns. Repeated 2x so 72 spawns.

Keep in mind this is ONE segment of map. I randomly revealed map and found a stream here and this is frankly very small compared to other streams I found:
image

Assuming this math holds, it means this little baby stream would contain around 1190.4 spawns on average JUST from trash. I live in a small town, see lots of creeks and streams, and no, not even close to being accurate in my opinion. And that's JUST trash, it also has a huge % chance to spawn branches, sticks, stones, etc. which are less problematic but raise the number of item spawns even further. Like. THOUSANDS of sticks and rocks.

Anyway that was long-winded af. TLDR: Stream spawn too much trash.

The other smaller issue here is that the trash itemgroup used causes some issues, I'll mentioned that in the additional information segment below.

Describe the solution

Reduce the spawns.

  • adjust stream palette, reducing the chance of spawning the "trash" itemgroup for each 2, reducing it from 25% to 3% (still 2x repeat). This is ultimately an arbitrary number, my plan to reduce it by more than 80%
  • adjust stream palette, reducing chance to spawn creek_bed items for both the 1 and 2 tiles. I have reduced the 1 from 50% repeating 3 times to a 30% chance repeating 2 times. For the 2 tiles, it went from 40% chance repeating 5 times, to 15% chance repeating 3 times. These are also arbitrary but should reduce the overall spawns substantially, while still providing an enormous amount of these resources.

Describe alternatives you've considered

A bunch of different numbers. I really want to axe them much much harder than this, even a small stream is still spawning thousands of rocks, sticks, and random trash.

Other alternative was to hit the itemgroups, making a bespoke trash group for the stream to eliminate things that don't make a ton of sense or spawn in weird amounts (like 4+ kilos of glass shards at once)

Testing

Just nerfed it, walked around, checked the numbers. Reduced it slightly more, etc, until I felt it was tolerable.

Additional context

Okay, lots to go here.

Images illustrating the before and after

BEFORE IMAGES:
image
image

AFTER IMAGES:
image
image
Still too dang cluttered imo...

Rambling thoughts regarding the issues with the itemgroups

The trash itemgroup was not made specifically for these streams, and is problematic for that reason. Example: it spawns loose marbles in groups of 1-20, however they are in a stream, and so it doesn't make a ton of sense for 20 marbles to be clustered together. There was a similar issue with glass shards, spawning up to 4.2 kilos of glass shards at once, which is, let's be honest, a bit silly.

I did not thoroughly check what's nested within it, so I don't know if all items are even appropriate to spawn in a stream. Also, to be honest, a stream is not a dump site, and while people are gross and throw their trash everywhere, I live in a rural area with hillbillies and our streams look nothing like that.

In my opinion, the majority of this trash would either be buried within the soil of the stream and thus vanish (IE: a marble) or would not spawn in huge clusters like this.

HOWEVER, this itemgroup is used many other places -- it's the trash itemgroup for, you know, trash. So I cannot edit this itemgroup to be appropriate for the stream. The correct solution is to handcraft a new trash group just for streams, but alas, I'm not going to do this in this PR, I may do that later, I'd like to but I don't know if I'll follow through.

And then finally, the creek_bed group (containing sticks and rocks) spawns in huge amounts here. This results in thousands of rocks and sticks. While I think this is ridiculous and out of control, it's a stream, I don't know what the right amount is, here, and so went pretty light on my nerf in this PR. However, I think tracking 1000+ stones and sticks is a bit overkill compared to literally everywhere else in the game (including forests), and so I've reduced these spawns as well, though I personally think they should be reduced even more significantly. The problem is it's not unrealistic so I didn't feel like I 'had the right' to do that.

And then finally, I also feel that the wheels that spawn here (1% chance on every 1 and 2 shown in the image of the stream map) are too frequent. While they are a 1% chance, there are dozens of tiles in these map segments that can spawn them, and I frequently found 1-3 wheels in my vision radius as I walked around. I understand that people dump things, but it's a stream, and it's a tad ridiculous. I could not fix this currently without making an itemgroup for it, which I decided I would do if I got around to making the above mentioned itemgroup, so it just goes here in additional information.

I'm not sure if this counts as closing #77780 or not, because it's not really the full reworking that I feel is needed, but it at least will solve the majority of the problem.

Anyway, I think that's everything, I'm too verbose for what is ultimately like four digit changes.

@github-actions github-actions bot added [JSON] Changes (can be) made in JSON Game: Balance Balancing of (existing) in-game features. json-styled JSON lint passed, label assigned by github actions astyled astyled PR, label is assigned by github actions labels Nov 16, 2024
@Maleclypse
Copy link
Member

Do you mind going ahead creating a creek_trash group copy the existing trash and add [ "null", 80 ], in it. Also add [ "null", 50 ], to the creek_bed group please. I was logging in to do this tonight and I see you already here :) if not no stress.

@TheMurderUnicorn
Copy link
Contributor Author

I don't know if I have the attention span to do more today, I'll try to remember tomorrow unless you just want to do it. Hitting it with such a heavy null, should I just close this and let you fix it with giving it more nothingness rather than this which reduces it through the lower %'s/repeats?

@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Nov 16, 2024
@Maleclypse
Copy link
Member

I don't know if I have the attention span to do more today, I'll try to remember tomorrow unless you just want to do it. Hitting it with such a heavy null, should I just close this and let you fix it with giving it more nothingness rather than this which reduces it through the lower %'s/repeats?

No I'll merge this improvement as is and try to get to my fixes I suggested. I don't know if I'll be doing any DDA stuff for the next 7 days and this is a reasonable improvement.

@Maleclypse Maleclypse merged commit 4a03734 into CleverRaven:master Nov 16, 2024
22 of 28 checks passed
@DenCheesecake
Copy link

Thanks! I was very surprised by the amount of loot generated around the streams. It was definitely over the top.

@TheMurderUnicorn TheMurderUnicorn deleted the StreamTrashNerf branch November 16, 2024 21:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
astyled astyled PR, label is assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions 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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants