Search the Community
Showing results for tags 'population'.
-
Context: I play a lot of insanely rare loot runs on high pop and when I finally looked up the actual item weights, I noticed that they did not create an expected distribution that even remotely resembled what I experienced finding after 1000+ hours of play. The most apparent of which is that Book 5 is supposed to be 12x rarer than Book 1, which definitely does not feel true in my experience. I made another bug report (https://theindiestone.com/forums/index.php?/topic/72133-4178-loot-rarity-rerolls-unintuitively-makes-common-items-rare/) before I fully understood, but in that post, I demonstrated via a sample of 200 rolls in a random Muldraugh house that the resulting loot gave a much flatter distribution than expected. I didn't understand the correct reason why yet, but I think I have identified the reason now. Overall root issue: Zombie Intensity Loot Modifier (returned from getLootZombieIntensity), which I will refer to as "ZPLM" for this post, which is part of the roll to determine if an item is added to a container, is not modified by loot settings or item weight. This means that the rarity difference between two items of different weights is much smaller than their relative item weights would suggest, especially on lower loot settings. I've identified at least 4 separate problems related to this core issue: Low weight items are functionality equivalent in rarity between insanely rare and abundant loot settings. This becomes more apparent the lower the weight of the item. Item weights do not impact item rarity to the expected extent. This means that rare items cannot be made to be nearly as rare as their weights relative to common items would suggest they are. This becomes more apparent the lower the loot setting you are on. Integer RNG (random(10000), so specifically with this level of precision anyways) means the smallest weight multiple that actually impacts the outcome on insanely rare is 0.2. Even without ZPLM, any item with a weight under 0.2 would have the same 1 in 10000 chance of appearing on insanely rare, requiring a 0 on the random(10000) roll. Item weights go as low as 0.01, so this makes them all equal rarity. (e.g. HottieZ, 0.1, and Sledgehammer, 0.01, are equal rarity despite the 10x weight difference) Since item weight is less of a factor in determining rarity, rarity becomes more closely tied to how often items appear in containers than their weight, especially on lower loot settings. This explains my difficulty finding a belt that I explained in my other post. Despite having a moderately high weight (4), "Belt" does not appear in a ton of loot lists (14 hits in proceduraldistributions.lua), which makes it arguably rarer than Sledgehammer (0.01 wgt, 18 hits), despite the 400x higher item weight. Evidence Here's how I understand it to work: (based on itempicker.doRollItem & itempicker.rollItem) Zombie Intensity is loaded from save data per chunk, presumably related to population. I think it is literally the 8-bit value on a population heatmap. For simplification I will refer to it as population. The finer details don't matter too much for the overall point unless it turns out that ZPLM is very rarely relevant. If the average ZPLM turns out to be closer to 4 than 8 then the impact is still there, just less pronounced. Zombie Population Loot modifier (ZPLM) decompiled code derived formula : if rand(300) < Chunk population x 10/255, return 120, else 0.06 + Intensity x 11.94/255 Super oversimplification: Zombie Population Loot modifier (ZPLM) = 1 per 25 zombies, 1/25 chance of max modifier (8) per 25 zombies. Max possible value of 8. Sandbox Loot Modifier (SLM) = {0.05, 0.2, 0.6, 1.0, 2.0, 3.0} doRollItem simplified pseudocode (runs for every item when generating loot for a container, usually 4x): if (100 * wgt * SLM + ZPLM*10) < rand(10,000), add item to container if it does not exist yet, or if qty can be >1 For the sake of further simplification, going forward we will assume ZPLM is always 8, as it will be frequently enough to have a significant impact, especially at higher population settings. I think in practice it is almost always 8 in any moderately populated chunk, but I haven't been able to verify that since I don't know exactly what it is reading for the intensity value and how much actual zombie population (after population modifiers) comes into play. Example outcomes: Sledgehammer (0.01 wgt, or 0.01%) vs Battery (20 wgt, or 20%) drop chance Expected distribution - 1 : 2000 -------------- insanely rare (5%) ------------------ 0.01 wgt: if (0.05 + 80) < rand(10,000), or 0.8% chance 20 wgt: if (100 + 80) < rand(10,000), or 1.8% chance Actual distribution - 1 : 2.25 -------------- rare (60%) ------------------------- 0.01 wgt: if (0.6 + 80) < rand(10,000), or 0.8% chance 20 wgt: if (1200 + 80) < rand(10,000), or 12.8% chance Actual distribution - 1 : 16 -------------- abundant (300%) ------------------ 0.01 wgt: if (3 + 80) < rand(10,000), or 0.83% chance 20 wgt: if (6000 + 80) < rand(10,000), or 60.80% chance Actual distribution - 1 : 73 Put A LOT more simply, it looks like you get up to a flat +0.8% chance for every item to drop based on the zombie intensity / population in that chunk, not scaled with any other loot modifiers. This brings the rarest items almost up to the same drop chance as common items on the rarer loot settings. This also effectively sets a "minimum" drop chance of 0.8%, which is much higher than the expected drop chance of something like a Sledgehammer with a weight of 0.01, which would be 0.0005% on insanely rare, or rounded to 0.01% due to integer RNG, making it 80-1600x more common than expected based on weight. This is just speculation, but to me it feels like the max value of 8 (seems arbitrary) may have been added to address this. Additionally, a lot of the code around Zombie Intensity calculations seems to have some lines/assignments that don't appear to do anything. It's possibly an issue with my decompilation of it, but I've used the code pretty thoroughly and never seen any obvious issues with any of the other code.
- 2 replies
-
- loot
- population
-
(and 4 more)
Tagged with:
-
Zombies spawn on the roads in illogically high numbers. I would suggest to reduce the amount of zombies that appear on the roads and especially on the roads at the countryside or in the forests. This makes the game feel like an artificially constructed labyrinth with artificially designed obstacles rather than a "world with its own commonsense" and it ruins the sense of immersion. I was driving from Rosewood to the Military base in the woods as highlighted on the screenshot below. And I killed 200+ zombies on this road. In the forest... that is going to the military base. We all love PZ for the very special set of rules that make commonsense applicable in the game world. However, the amount of zombies on the road is completely different - like what are all these CIVILIANS doing on the abandoned road in the woods which is going to the MILITARY base? I don't think that civilians hang around military bases in such huge quantities. Ok, it could be that they hang around military base, but why are they scattered all over the ROAD in such a huge numbers?
-
- zombie spawn
- roads
-
(and 2 more)
Tagged with:
-
Hello everyone. This is going to a long post but if the devs pay attention it will make PZ a more enjoyable experience for everyone, so bear with me. I am probably not the only one that is annoyed by how zombies destroy all objects in their path, but this is not about that. This is about something else that annoys me because it isn't realistic. This is about horde movement. Have you noticed how when you clear an area it doesn't take long for zombies to overwhelm it again? How annoying it is to see small clumps of zombies neatly interspersed, almost equidistantly from each other, when just a day before there was nothing there? I think this is because of the algorithm that is currently used to populate areas that have a certain ideal zombie density. It saddens me to see that movement of zombie groups to areas with lower-than-ideal population is so directed and certain (or maybe they are even just spawning in low-pop cells?). That's not how groups of barely-thinking zombies would act. Right now it seems that zombie movement is either a limited random walk or completely directed movement into zones that are low on ideal population. But I have an idea that should make it slightly less frustrating to make an area more clear of zombies, and at the same time make supposedly safer areas become more dangerous. The Lévy flight. The Levy flight more closely resembles how animals and even brainless single-celled organisms like amoebae look for food. They randomly browse an area foraging for food (let's call it roaming) and if they don't find anything they travel in a random direction for a while (let's call it a flight) and then start browsing around again. The ideal behaviour would be something like this: When all zones are populated with the ideal population of zombies, each group (following the leader) would randomly roam around an area inside, for example, a 50 square radius (about the size of a West Point city center block). Each group would do this for a random amount of time (between 5-30 minutes of real time) and then engage in flight mode and go randomly in one of the 8 possible directions. The distance traveled would be a random number between 50 and 100 squares, for example. The group would then start browsing in that 50 square-radius circle again (including banging on random stuff once in a while). But at the same time we want zombies to roam around urban areas more and we want lower-than-ideal areas to be properly repopulated. And there is a very elegant way to make it happen based on the ideal population settings for individual cells by biasing their "flights" in between random movement. All we have to do is to change flight behaviour in groups of adjacent cells (not the whole map). When zombies are randomly choosing one of the 8 directions for a flight, the chance of going in the direction of a low-pop cell would be exactly the same (1/8), *but* when they did choose the right direction, instead of travelling for the base 50-100 squares, they would travel 100-200 squares (this would vary according to ideal cell pop) before roaming again. The lower-than ideal area gets repopulated and the movement still seems natural. Above all, the movements would still be mostly random and the area you cleared could take just one day to be packed again or maybe it would take a week. You would also see more lost zombie groups trampling your crops in your secluded forest farm. Of course, some stragglers would still be required. While it's easy to see that a previously cleared store may be dangerous to enter because of the horde nearby, if a zombie got into that store by itself, you would be caught off-guard. What do you think? TLDR: Zombies should fly.
-
Hello. This is a request for a sandbox option. I would like to gather resources, build a safehouse and test it with a horde. Now I can set a starting zombie population. When I set it to low, it will always be low, so I'll get bored fast. If I set it to insane, I won't have an occasion to build anything. Could you add an option, that I could start a new game with lower population and it would increase over months? I think that would be cool. Cheers.
- 2 replies
-
- population
- zombie
-
(and 2 more)
Tagged with: