Jump to content

vbnet3d

Members
  • Posts

    11
  • Joined

  • Last visited

vbnet3d's Achievements

Refugee

Refugee (1/15)

5

Reputation

  1. I'd recommend turning down the spawn radius in Config.xml (mod folder). A lot of people have had success with SpawnRadius at 10 and HorizontalSpawnRadius at 5. The hitch is the actual internal spawn-in logic, which I'm not sufficiently familiar with to try to optimize, but most likely you're seeing that stuttering due to too many zombies being spawned in at one time. Reducing the range will help with this.
  2. I may end up doing this if needed. I benchmarked with square magnitude and it didn't seem to make a perceptible difference. The real performance hit is the zombies themselves. The actual number of distance checks isn't high, so I felt comfortable sticking with the standard Vector3.distance method for the time being.
  3. Based on conversation with @zztong, I made the following additions and changes: Added the option to split proximity checks into horizontal and vertical checks. This means that you can have only one or two floors spawn in at a time in a large multi-story POI if desired Added the option to only spawn zombies if the player is within the bounds of the POI. This reduces spawning of volumes in neighboring POIs. Useful in big cities. If a player is in a vehicle, the vehicle must be within the bounds of the POI to spawn zombies, as above. This reduces the spawns you get while driving through crowded areas. If the spawn radius is 15 units or fewer, the corners of the SleeperVolume are also used for proximity checks, in addition to the center of the volume. While this adds more points to check, it also ensures that larger volumes don't suddenly spawn in when the player is inside them.
  4. I like this idea. Maybe there's a way I can get the POI bounds, and if the vehicle isn't inside the POI bounds for the volume, I skip
  5. Yes. I don't think there's a clean way around this. You'd have checks, but not additional spawns. Marking the volume as "processed" isn't ideal because if you go back out of range the zombies will despawn. Yes there is a limit, although I don't remember it off the top of my head. It is spawns that actually hit performance hard though rather than the checks, so I think the true concern is the number of spawns - which reducing the range mitigates to a degree. This might be feasible. I'd want to benchmark the cost of the checks vs the cost of tracking ticks per volume. The latter is probably more efficient, but it's hard to say.
  6. My impression, and this is a bit rough, is that it runs all the volumes in the current chunk, during each Tick() cycle. I don't know how many times Tick() is run per second. I have considered optimizing by only running the logic every other Tick(), but it seems to me that the actual spawn logic is actually what hits performance rather than the checks. For perspective - 50-100 distance checks is still pretty trivial for most systems - but of course in the downtown of a city with multiple T5's, we might have 5-10x that number. I really need to benchmark that. So far I've been benchmarking in regular random-gen downtowns. Probably need to do so in a really dense custom map. I'll look into the additional calculation options. It's a good idea.
  7. 1. Distance computations in 3D space are considered expensive because they rely on the square root... but if we think we're only calculating for a handful of SleeperVolumes at a time, adding a couple more calculations *shouldn't* be overly expensive. I could take the 4 corners of the bounds, plus the center. 5x more calculations, but also much more flexible. 2. Yes, because it resets them to their normal sleeper state. They'll still wake based on normal sound/movement. If you don't reset the passive flag then they are extra alert, and wake too easily. That being said, I left it as a config option because some people said they preferred it that way. 3. I found the workaround and pushed it in a new version. Essentially the triggers do 3 different things: set the trigger type flag, set the player as having touched the volume, and then call logic that triggers any spawns. The former 2 are responsible for the auto-attack trigger mechanism, best I can tell, so I created an additional option to still allow clear quest trigger spawns, which so far has worked on the 2 POIs I flagged as my test cases. It probably needs more testing and tweaking, but it's progress/
  8. Good point. I don't see a way to edit these. This was built and tested for A21 b324 (stable). If someone can tell me how to edit, I'll get that into the title and keywords
  9. Right now I'm just using Vector3.distance, which is the radius in 3D space. If you feel it would be beneficial to allow the option to make it only horizontal, I could add that as a configurable choice. Distance to the volume center It flips the volume quickly to active then back to passive to force the spawn SpawnAggressive - sleepers are set to active to spawn, and not reset back to passive. This makes them much more alert and responsive to sounds DisableTriggers only turns off triggers for SleeperVolume, but not other classes. Most triggers still function as intended. Some newer POIs cannot be cleared with this set to true currently because the final spawn is a SleeperVolume trigger. I am working a a work-around for this. Not directly. If the POI would also have a final trigger spawn for a clear quest, the same issue would apply as above. Set DisableTriggers to false for now for these POIs Yes, these are the settings you'd want. Just FYI currently there is an issue with some new POIs where they still require a trigger for the very last spawn, so they can't be cleared with triggers disabled. I'm looking at the code to see if there's a way to work around this.
  10. Both. It's a Harmony/C# mod. EAC must be disabled.
  11. Source: https://github.com/vbnet3d/SpawnSleepersInRange Experimental mod for 7 Day to Die (Alpha 21) that forces sleeper volumes to spawn in sleepers within a certain range, even if the trigger is not yet activated. Intended to fix issues with pop-in spawning and clear quests failing to spawn in all zombies. This is an entirely experimental mod. Use at your own risk. May affect frame rates if it spawns in too many zombies at one time. I would not recommend using on a server unless you've benchmarked it's affects on your FPS in solo. Configuration Mod options can be changed by editing Config.xml in the mod folder. Installation Download source to your 7 Days to Die mod folder (usually C:\Program Files (x86)\Steam\steamapps\common\7 Days To Die\Mods). This is a Harmony (C#) mod. EAC must be disabled.
×
×
  • Create New...