Dear TFP, why are short loot bag timers still a thing after so long?

OndeTv

New member
Dear TFP,

Long time player here (and also previously active poster and bug reporter). I just recently got the urge again, and started up a new world and character to see what has changed since last i played (A21 i believe i previously played, v1.2 (b27) is the version i am currently playing).

So many GREAT changes. It almost feels like a new game, and old experienced players can no longer speed through progression with the magazine system. Huge thumbs up on that.

However... There is (still) nothing more infuriating than watching your hard earned loot bags disappear after horde night. They have been well earned if your defensive plans worked out. So why on earth is this still a thing? Each bag should have a minimum of 24 in game hours before even considering despawning(aka until 22 the following day). So why is it that you can still be cleaning up after the mess, working your way around the bags which may be scattered all over the place depending on your strategy, just to see some of them disappear just before you get to them.

I sincerely do not understand why this is still a thing, so please help me understand. I mean, i have to assume you have a good reason for this after all this time?

--

Speaking of old things, there are still occasional issues where the voxels (marching cubes i assume) do not always align while mining, creating holes in the world. However, so far, it seems momentary (from less than a second to 10 seconds or so) before correcting itself. In other words, this age old issue seems to have become better and self correcting. I suspect it still occurs more around chunk borders, but i have no way that i know of to check this.

 
The default is 20 minutes. That is one third of a default game day.  If you want it set to something different, you can mod it easily.

Not a Support issue.

 
20 minutes is 8 in-game hours by default, or 22:00 horde start to 06:00 just after horde end. Sure, i could play around with the values, but when you have changed so many things to "make sense" by default over the years, why not this? That is what i meant with "you must have a good reason" for it. But is there actually a good reason, or is it just a legacy value that was forgotten in the many iterations?

I'm trying to be completely honest here: I love the game and have since i first bought access to it many years ago. I would love for others to do the same. This is just one of those things i imagine would really irk new players, which is bad for everyone involved.

That said, since i am an old player, i DO have the horde count set at 64 which both means much more of a mess, but also more loot bags (assuming they don't end up winning). Still, if new players play long enough, eventually they will run into the same issue.

 
20 minutes is 8 in-game hours by default, or 22:00 horde start to 06:00 just after horde end. Sure, i could play around with the values, but when you have changed so many things to "make sense" by default over the years, why not this? That is what i meant with "you must have a good reason" for it. But is there actually a good reason, or is it just a legacy value that was forgotten in the many iterations?


It's to improve on game performance.  That is why they went from lootable bodies / gore piles to loot bag drops.  They instituted a timer for the bags to remain in-world before they despawn.  Unclaimed bags would still need to be tracked by the server so having them despawn after a set period of time frees up resources.

The time limit they choose is more likely based on the lowest level hardware and 8 players Co-op PvE (or some criteria like that).  They are going to set the time limit to handle the lowest denominator.  For those that have higher level machines, they allowed that value to be easily modified via a simple modlet if you want to extend the time before despawning.

 
BFT said it well, that's a main reason for it. Too many bags laying around forever causes the server to track them, and a bigger hit is that chunk has to be loaded and kept alive because the bag is there. 

Another part is for general gameplay balance, the idea was to have the player get bold and make a choice to leave the base to go collect some bags during the hordenight before they despawn, or setup a crafty way to get to them safely. 

Mostly it's to reduce overhead though, it may be a small portion of code that needs to keep going over/over to keep the backpacks "alive", but when you start adding multiple, things can start getting bogged down, and with this giant game, the tiniest things can lead to performance hits.

 
Written pre Jugginators response:

-----

See, that is a response i can relate to, and for sure performance should be considered.

Having played 8 player co-op pve before myself (well, actually i think we we're only 5 or so, but still) all the way back when it was still gore blocks. I do not remember the gore blocks themselves being a performance issue back then, but rather the number of AI controlled enemies present at the same time causing performance degradation. That was a long time ago though, and with all the changes since then it can't really be called a comparable situation anyway.

If the loot bags of today cause performance drops, i reckon it is mostly if not only because they have physics attached to them. Having the server keeping track of 20, 100 or even 500 loot bags really shouldn't be an issue. After all, the basic information is only related to world position and bag grade. The rest - if i understand current mechanics correctly - is rolled when the bag is opened and governed by the attributes of the player opening them as well as the bag grade.

500 loot bags in the same chunk sounds highly unlikely. Even 100 loot bags sound unlikely (but possible i guess). 500 bags spread across different chunks could sound plausible with a (very) extended loot timer. But in that case, you ought to tie the data to the chunks they belong to, and the server would only need to keep track of bags in active chunks which would bring the number down substantially.

As far as i can tell, the game has come a long way performance wise. Both in regards to when i first got it (i think that was somewhere back between A10 and A14, but i am not sure), as well as how it performs now. The only real culprit i have found still being present is trees in the mid/full grown stage (oak especially i feel). I still play on the same machine i did back then, so i can easily compare early days to now.

Currently playing with the max zombies set to 64 (which was too much in the past for me), performance still seems to be pretty good - including when the loot bags are present.

-----

Written after:

But why do you keep the chunks alive just because of the loot bags? Why not just tie the data to the chunks (or rather have a chunk referrence) and set timers (which you already do)? That way the data can be manipulated wether or not the chunk is loaded or not, without any overhead.

The last reason (luring players into being bold) i can directly understand, and i have been caught by that exact lure myself many times and lived (well, not always haha) to regret it.

Also, cheers for the response both of you. Do understand i am not arguing for the sake of arguing, but because it is one of the few things left in the game that still doesn't feel like it makes sense. Most other things have been VASTLY improved over the years (mad props for that, currently on day 48 in V1.2(b27) and i STILL do not have concrete which is a first hahaha)

 
Last edited by a moderator:
But why do you keep the chunks alive just because of the loot bags? Why not just tie the data to the chunks (or rather have a chunk referrence) and set timers (which you already do)? That way the data can be manipulated wether or not the chunk is loaded or not, without any overhead.

The last reason (luring players into being bold) i can directly understand, and i have been caught by that exact lure myself many times and lived (well, not always haha) to regret it.

Also, cheers for the response both of you. Do understand i am not arguing for the sake of arguing, but because it is one of the few things left in the game that still doesn't feel like it makes sense. Most other things have been VASTLY improved over the years (mad props for that, currently on day 48 in V1.2(b29) and i STILL do not have concrete which is a first hahaha)


It would take a lot to get into it and I'm not experienced enough to be able to translate this into human terms, but it's the nature of the game. It's completely 3d, and everything has to be loaded (there are things the get cached/unloaded, don't get me wrong), major chunks of the game like... chunks (pun not intended) need to be tracked. Things that are added to the chunks (that aren't POI's, or rather part of the original chunk) need to be tracked, it's just how Unity works. Loot bags are entities, not blocks, and they have to be that way. It's not physics, but the fact that that bag was put there and the game needs to keep that area alive to keep it alive (otherwise it would just fall through the earth). The game already does this with zombies, it'll unload and cache them, and keep checking to see if they are still needed, lots of things do. But, you do that for EVERYTHING and, well, you suddenly need threadrippers to keep the game going

 
Yeah, as far as i can tell it is marching cubes voxels with interpolation smoothing or something similar tied to many octaves and permutations of perlin noise for for the base terrain. Then all the editable premade sets on top and perhaps extra terrain generation to make said assets fit. Then tracking all the actors/entities going in and out of being active in loaded chunks, and tracking them in inactive chunks, possibly cleaning them up after a duration/other. Then the event system on top, and finally all the "blocks" which have special behaviour which are probably added as actors/entities as well and keeping track of those.

I am probably close in some aspects and way off on others. It has been and still is a childhood dream of mine to make my own marching cube survival game some day. I have started many times, and each time something eventually holds me back (last attempt was in unreal, but after reading up on the flipsides of lumen, nanite and TAA i have put it on hold again).

I still do not understand why you would need to keep a chunk alive to keep a bag "alive" though. Just like other entities, on chunk unload its metadata ought to be saved with which it would be recreated on chunk load again. I assume you do exactly the same already with zombies when f ex a player moves just far enough from one for the chunk it exists in to unload. If the player then immediately goes back and the chunk is reloaded, i assume it is also respawned in the same way i would assume bags are (should be?) handled.

Or are you perhaps keeping a lot more chunks alive in general than i am assuming, while just hiding but not unloading entities at a certain range and changing LODs/placing imposters?

 
A default day length (68 minutes) horde night lasts 17 minutes (10pm - 4am), plus however long it takes the clear the rest. Regardless, players have at MOST 180 seconds at 4am to loot all bags plus doing inventory management while looting them before they all despawn.

There's no reason to not increase the time to at least 30 minutes.

I play SP so I got no experience with servers. However, I've been playing challenges where almost all zombies drop a red bag all the time. During a blood moon I easily kill at least 150 zombies, I don't feel much of a performance hit with 150+ loot bags laying around.

Here's a comparison: no loot bags vs 252 of them.

image.pngimage.png

 
To me it seems a more balanced solution to only let decay timers run when out of render, and even make them shorter. No frustrating clean ups after horde night in a pile of just decaying bags, if your performance suffers more than the expected vallue of the bags, just go out of renderer to make them dissapear faster.
On my PS5 the performance during hordenight was never bad, I would glady trade in the frustration of getting a redbag just at start and not being able to get to it in time for a few fps.

 
FPS is not the only measurement of performance. Networking, extra timers in code, tracking, chunk tracking, it all adds up to poorer overall performance, not FPS. The entire convo here wasn't about FPS.

 
To me it seems a more balanced solution to only let decay timers run when out of render, and even make them shorter. No frustrating clean ups after horde night in a pile of just decaying bags, if your performance suffers more than the expected vallue of the bags, just go out of renderer to make them dissapear faster.
On my PS5 the performance during hordenight was never bad, I would glady trade in the frustration of getting a redbag just at start and not being able to get to it in time for a few fps.
The timers on loot bags (and even dropped items) pauses when the chunk is unloaded, so they can last forever if no one get close enough to reload the chunk

 
The timers on loot bags (and even dropped items) pauses when the chunk is unloaded, so they can last forever if no one get close enough to reload the chunk


RIght, it's more about preventing a massive pile of loot bags when they are loaded, and reloading and restarting those timers. And those timers are still kept track of, they don't just vanish :)

And the higher ups wanted to make players make a decision to go get them before they go away, not have a guaranteed pile of loot bags waiting on them, plenty of games do this.

 
RIght, it's more about preventing a massive pile of loot bags when they are loaded, and reloading and restarting those timers. And those timers are still kept track of, they don't just vanish :)

And the higher ups wanted to make players make a decision to go get them before they go away, not have a guaranteed pile of loot bags waiting on them, plenty of games do this.
Maybe its a limitation, but IMO the opposite would be more ideal, infinite time in loaded chunks, and an expiration on unloaded. Also, perhaps having blue dots on the compass to point towards unloaded loot bags so players can get to them before they despawn.

 
And the higher ups wanted to make players make a decision to go get them before they go away, not have a guaranteed pile of loot bags waiting on them, plenty of games do this.
In that case it sounds a lot more like this is the actual reason rather than performance. So why not just outright say that? I have a lot of respect for you Jugg (we've had a lot of to and fro regarding bugs in the past and you have always handled communication very nicely), but in this specific case it feels more like you are fed a decision and arguing for it rather than agreeing.

I just passed horde night 56 in my new V1.2 (b27) singleplayer world. I had just made it to concrete before that, and most things were upgraded. Despite this, the devastation (to my base area) was enourmous and i was fighting the remainder until around 8 am. I reckon most of the loot i should have earned was gone at that point. I did manage to get some sure, but it was a bitter victory.

See, there is a little extra to add to this whole issue that i actually didn't think about earlier:

- the zombies have gotten "smarter" (AI is better, jump range is larger)

- the zombies have gotten generally stronger (or scale faster --- for referrence i am on day 57, level 53, game stage 111, enemy kills 1584, deaths 8 while considering myself a very experienced player)

- progression has become slower (previously i would have been on the concrete stage MUCH earlier)

- i barely survived horde night 56 (8th week)

All in all that adds up to longer time dealing with the horde, and less time to reap the rewards of surviving which is what survival games ultimately boil down to.

Sure, i do have zombies set at 64, but i consider this a fair handicap with my thousands of hours in the game versus a new player. They are not going to have it any easier unless they use youtube (community) cheese. Speaking of which, i actually used a little bit of that myself this specific horde night, using the storage blocks as "forcefields" to try to make my zombie kill path last/last longer. Unlike in the past (alphas), my path was blown up about midway through horde night.

Which brings me to another issue:

- Due to the above things, which are actually all positive, effectively building materials have become weaker. This in turn forces players to build bases which do not make sense in the traditional way, but rather try to resort to pathing cheese. This all for the simple reason that zombies are too strong for the general material progression at this point. Heck, my main killbox (melee+ranged) was upgraded to steel, carefully salvaged over a long time, and had i not repaired it maaany times during this horde night, this part would also have fallen although being the final and strongest material (no such thing as polished steel anymore i believe). Well, i am also out of steel now and no crucible to resupply it, so back to salvaging the odd steel bar here and there.

To cap this wall of text off:

Yeah, i do understand if it is a performance issue. But it really does not seem like one in actual play. Instead it seems like a punishment after the punishment. I do know of ways that i can cheese myself through horde night and still get kills without ever getting hit, but that is not the way the game is intented to be played (nor is it any fun to be honest). I would much rather play at the current level of difficulty, but also be damn sure i am rewarded with what i am due after the fact.

The game has come a long way. So honestly, either "make" the "higher ups" understand that rewards should be rewards, or have them play a bit themselves in the current iteration of the game while either taking on the perspective of a new player (= game sales), or handicap themselves to make up for knowledge they have with value modifications. And have them try without any cheese they may know of. I can understand if your insider sense of the game is still stuck in A15, but "we're not in kansas anymore".

----------------

Edit:

-----

Unrelated to the current topic, during this world i have discovered a few bugs which i am just going to list below without going through the normal report procedure. If you find it inadequate, then just ignore it:

- on 2 occasions i have had blocks destroyed inside my base after a horde night, without the surrounding area being destroyed:

----- First occasion was a wooden storage chest hanging in a room corner made out of cobblestone. None of the cobblestone surrounded this destroyed (dissappeared) storage chest were destroyed. No other inside blocks were affected

----- Second occasion was the horde night spoken about above. No outside walls were destroyed in the main base (apart from a bit of flooring where i was which was immediately rebuilt). No projectiles (zombie cops) spat inside. No zombies made it inside. Regardless, i lost 2 of 3 forges in the opposite corner of the room. No adjacent blocks affected, the forges has just vanished.

- The truck trailer POI which can spawn on any road (just the trailed, one door open, inside lots of pallets with different materials and several zombies), does not have its imposter removed upon destruction. In my case, i made my base just opposite trader rekt, and on the road between my base and the trader, the trailer POI was spawned. I eventually removed the poi by destroying the bottom blocks and letting it collapse in on itself. However, every time i come back from a mission or something else far away, the POI imposter (low LOD version of the POI) shows until i get close enough for it to vanish.

- The Dew Collector has its sky visibility blocked (3x3) if scaffold stairs are used above it, but not if iron bars are used. Both ought to be equally adequate. Also, to an actual dew collector does not need "sky", just air with moisture in it  ;)

- Sand (desert) voxels have an issue choosing the right polygon type in corners. This might be an old issue i just have never noticed until now. Reproduction is easy: Dig an inverted pyramid in default desert sand voxels, and you will notice "stairs" in the corners rather than the smooth corners you would expect.

 
Last edited by a moderator:
- Also, i cannot help but notice, that arrows i have shot (which are far less important than loot bags) can persist for collection in the active chunk(s) for far longer time.

 
Back
Top