PC V2.6 EXP - updated b14

Will they do something with the online gameplay on the servers? Since you and alpha 16 haven't done anything good for the servers, thereby losing online, because many people are already tired of the usual 7 days to die, and you don't give modders any way.

If not for the modders all that modder-friendly XML probably wouldn't even exist.

And if you are speaking about console-players, it is almost certain that Sony and/or Microsoft didn't allow it. For TFP the limitation on console did only add unneccesary workload and nothing to gain
 
@faatal

Found something that can be optimized with minimal changes which has quite an impact on traversal in the world:

Chunk mesh uploads from same-frame blocking to next-frame deferred (changes in VoxelMesh.cs -> copyToMesh() and MeshDataManager.cs -> ApplyAndDispose()).

Previously MeshDataManager.Add() was called with sameFrameUpload: true, meaning background tasks would kick off copying vertex data, and then LateUpdate would hit ApplyAndDispose() which called m_statesAllComplete.Wait(), stalling the main thread until every copy task finished. With several chunks loading at once this was eating multiple milliseconds per frame in LateUpdate.
Now with sameFrameUpload: false, the copy tasks get a full frame to run. Frame N kicks them off, frame N+1 calls ApplyAndDispose and by then they're already done, no waiting. Chunks appear one frame later than before, but there's no main thread stall.
 
@faatal
  • Added tougher biome spawn zombies to the snow and wasteland biomes.

I have really enjoyed this, it made those biomes much more challenging. Any chance the wandering hordes could be updated with something similar? even late-game in the wasteland it still consists of a handful of regular zombies. They are not a threat at all :)
 
@faatal

Another easy one, AnimatorCullingMode is set to AlwaysAnimate, so even when not visible they still animate.

Also the tick slicing thing can do more harm than good.

TickEntities the code calculated tickEntitySliceCount based on frame time averaging and spread entity updates across multiple frames. When FPS dropped, fewer entities got updated per frame, but the stale entities accumulated work, causing worse FPS on subsequent frames, a death spiral
 
@faatal

Found something that can be optimized with minimal changes which has quite an impact on traversal in the world:

Chunk mesh uploads from same-frame blocking to next-frame deferred (changes in VoxelMesh.cs -> copyToMesh() and MeshDataManager.cs -> ApplyAndDispose()).

Previously MeshDataManager.Add() was called with sameFrameUpload: true, meaning background tasks would kick off copying vertex data, and then LateUpdate would hit ApplyAndDispose() which called m_statesAllComplete.Wait(), stalling the main thread until every copy task finished. With several chunks loading at once this was eating multiple milliseconds per frame in LateUpdate.
Now with sameFrameUpload: false, the copy tasks get a full frame to run. Frame N kicks them off, frame N+1 calls ApplyAndDispose and by then they're already done, no waiting. Chunks appear one frame later than before, but there's no main thread stall.
I asked the programmer who made that system. There may have been some issue with making it false.
 
I asked the programmer who made that system. There may have been some issue with making it false.
I tested this with my decompiled/recompiled binary and had no issues, what I suspect is that at some point this was used to prevent entities from falling through the world but these days entities don't even update when the chunk isn't loaded yet but who knows, hopefully there is nothing to it, with that change traversal is butter smooth for me with no hitching.
 
Back
Top