Jump to content

Modin

Member
  • Posts

    90
  • Joined

  • Last visited

1 Follower

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Modin's Achievements

  1. Vehicles can go in interiors (through double doors), and some interiors simply do not have walls/doors and/or are _meant_ to have vehicles go there (e.g garages, or parkings from modded maps). As for the proposed zombie solution, not spawning zombies above level 0 is a bad idea if it's going to prevent them from reacting to noise (especially the car's noise). Another thought: if 500+ (yes some interiors have that many zombies above level 0) zombies ALL display at once upon exiting a vehicle, or going below 15mph, aren't you just moving the problem somewhere else? The game will stutter every time the player exits a vehicle in a busy area, and hovering around 15mph would create catastrophic stuttering.
  2. Thanks for the reply, Beard! After playing more, observing more and thinking more about it, I've come to the conclusion that it's most likely something to do with the time of day. The issues are the worst during peak hours for the server's location, while they are much much lessened during off peak hours. E.g joining the server is extremely slow (5 minutes) during peak hours, extremely fast (10-20 seconds!) during off-peak. I think the most likely explanation is that the server resides on shared server space and its resources are strained during peak hours where there is the most activity and traffic.
  3. When I join, it takes between 30 seconds and 10 minutes to join. The average is more like 5 minutes. Sometimes it takes no time at all, sometimes it takes ages. Often, I have to try to join several times before it finally succeeds. Sometimes it's stuck for minutes at a time at 0/529 map chunks. Often, it never moves and I have to forcefully close the game. I had to download a custom .class file that removed the 60 seconds timeout on downloading chunks, or else the game would keep giving me an error after 60 seconds and force me to close it. Unless chunks download super fast which rarely happens. Sometimes the game simply crashes while joining. Sometimes after I join, the game tells me to make a new character even though I already have one. I've heard that if you do make a character, the previous one is literally just deleted, just like that. While playing, cars are often unresponsive. Start a car, nothing happens. Sometimes, 30 seconds later, the car starts by itself, sometimes it never does and I have to leave and rejoin. Sometimes a car is started but won't move, the engine sound responds in a weird way to my input but there is no movement, and I have to leave and rejoin. When leaving the server, my character is not properly saved. If I leave too fast after picking items up, the server saves that they lleft their container, but not that they entered my inventory = items are deleted. Doing the opposite allows for easy duplication of items. Very very often, a chunk will load slowly as I drive around - orange traffic cones. Very often, as I slow down and wait in front of it, it will not load and stay black forever. In certain cases, every direction around me has black areas and I have to leave and rejoin. My ping is pretty stable at 250 ms, the server is almost on the other side of the world. I don't see anyone else complaining about any of this, but most players are much nearer to the servers than I am. My connection, on my side, is fine. It's sure that mods and server performance cause some of these issues, but it's also clear to me that my distance to the server is exacerbating them. I've tried using a VPN to tunnel to the server's city but it doesn't improve anything (if anything it could make it worse). I'm kind of at my wit's end, I see no way to alleviate or work around these issues - they are making the experience horribly tedious. I spend more time look at the loading screen than playing the actual game given how much I have to leave/rejoin to fix these random issues. What more can I do? Why is it so bugged for me but not so much for the people nearer to the server? I had worse ping and probably worse traceroutes back in 2005, but I still gamed fine back then. Edit: other, closer and less populated servers are a-ok, but not this one - and again the issues seem to frustrate only me and maybe some other foreigners far from the server.
  4. Modin

    Stale zombies

    Just a quick update, adding SetMovingSquare to the applyZombie method works fine to fix an IsoGridSquare's MovingObjects being properly updated when a client sends back a zombie's position to the server. But if the zombie is actually remote, then I believe that the IsoGridSquare's MovingObjects will still not be properly updated as the server simulates the zombie moving around for whatever reason. I believe the server's own update methods for the zombie do not remove or add to any square's MovingObjects, ever. The client, however, will, and that will result in another stale message. This shouldn't harm the player experience much and is why I haven't really given a good look at this, but it's still a bug and still generates "removing stale zombie" messages for clients. I am not 100% sure on this info so it'd have to be verified by devs.
  5. Modin

    Stale zombies

    Alright just add zombie.setMovingSquareNow(); To applyZombie() in NetworkZombiePacker.java After zombie.setCurrent(square); And you're done, no more stales whatsoever. This properly updates the IsoGridSquares serverside as a zombie's current is updated after receiving a packet from a client.
  6. Modin

    Stale zombies

    Back again with more info. Previous post is correct. To summarize: IsoChunk gets removed because it's far enough, 'for' loop initiates to remove everything in that chunk, and inside of that loop zombies are found to be occupying squares, so they get removed. Except! Some zombies are not there. The IsoGridSquares inspected do contain the zombies in their array list, but the zombies are not physically in those squares in the game. The zombies get deleted while being far from said square (e.g stale removal, e.g zombies going poof in front of players). How come? Because the squares are never updated. But why? Because the serverside devs forgot to update them, simply. They are updated properly clientside, which is why the client is confused about the deletions, and displays a "stale zombie" message and times out the zombies. Also why the bug is not present in SP. But the squares are never updated serverside. To be precise, the squares are updated in the postupdate() method in IsoMovingObject, but that code only executes clientside. Serverside, an IsoZombie's current attribute is updated in applyZombie used by parseZombie used by receivePacket all in NetworkZombiePacker, when the server receives an update from a client about a zombie. But that's not enough - 'current' might be updated but the IsoGridSquare arrays themselves (called MovingObjects, containing all moving objects occupying that square) are not. Hence serverside, the first square that a zombie occupies (the one it spawns on) contains it because it is set in setMovingSquareNow of IsoMovingObject (used on zombie creation/reanimation). And then, it's never updated, it contains it forever, no matter where the zombie moves. The solution is to update the squares, as done in postupdate, but to do it in applyZombie for the server.
  7. Modin

    Stale zombies

    Hi I'm back I've investigated the issue on my end with the help of modders The problem, I believe, is that as chunks get unloaded serverside to save on memory when the player moves, so do all the zombies of that chunk. And those zombies include the ones which have moved sufficiently far away to physically in the game world not be in that chunk at all, but in the game's code still technically be in it. The zombies get deleted with the chunk serverside, but not clientside, because the clientside code does not have that limitation (which is why the bug does not happen in SP, only MP). When that happens, the server removes the IsoZombie from the world while the client does not. In the act of removing the zombie, it changes its auth to null however, which the client picks up on. This is why the client then promptly discards the zombie after it's timed out (more than 5000 ms since last remote update). [C] -----------------> (z)-> <-(p) Player (p) is far enough from chunk [C] so that the server decides to unload [C]. Zombie (z) in front of the player visually does not belong to [C] anymore as it has travelled some distance already, but technically still belongs to [C] in the code, as the code has never updated its chunk. (z) is removedFromWorld with [C]. The player's client only receives the command that (z) now has no authOwner (it is now null), so the zombie turns around, awaiting the server to handle it remotely, which does not happen so it stands there and does nothing. 5 seconds have passed since lastRemoteUpdate was last set to 0, "removing stale zombie 5000" message is displayed and the zombie is removedFromWorld on the client's side. That's about it. To fix this issue, the zombie's chunk should be updated live or at least checked during any chunk deletion. I'm gonna try to implement something on my side if we have to wait another year for b42. Kind of a big problem for everyone on MP servers - kills immersion.
  8. I've got a server-side fix for zombie culling. You know, the thing that keeps deleting zombies around players and prevents you from raising the pop. The thing that is fixed by the "zombie fix" mod, provided every player has it -> https://steamcommunity.com/sharedfiles/filedetails/?id=2896255721 This new server-side version of it means you patch your server, and then regardless of what your players have installed, there won't be any zombie culling anymore. The reason I need to "beta test" it is because it might be unstable, and I'd rather not release something that causes problems. Please DM me if you're interested.
  9. Hello, In MP we can see these stats: Total Loaded Simulated Culled Authorized Unauthorized Reusable I am trying to perfect my understanding of what each states means for the client/server. I understand some of them (ex: Culled), but some like "Simulated", "Authorized", "Unauthorized" and especially "Reusable" are still confusing to me. If a dev has a bit of time to write a quick explanation I would be very grateful. Thanks!
  10. Yes at some point I bothered to turn the music off and listen to the calm zomboid tracks independently from the game. Then I just stopped bothering and kept music off forever. Pity, as you say.
  11. Press B, find rip clothing, craft all
  12. Make corpse sickness even worse? Seems like a bad idea to me.
  13. I wish the game would focus on this. Right now things don't really get that much worse besides electricity, water and food. Would be awesome if more things happened over time and progressively the game got harder and harder. You know how 7dtd hits you with a huge wave on the 7th day? I didn't play the game a whole lot so idk if it actually gets worse over time after that but I like that type of idea. Would be cool if huge hordes would form, force you to move, zombies got faster stronger and maybe even smarter, progressively every safe haven that's left would disappear one by one. Humanity would be making one very last stand before going into the deep, long night. Even better if we get hints throughout the game that the virus has spread over the entirety of the earth and that all hope is lost.
  14. It's not the same because zombies won't respawn. Clearing an area (and surrounding areas for migration) = it's clear forever with no respawn. With limited respawn this wouldn't be the case, all areas would keep stocking up for some time. While with your solution, only unvisited areas keep stocking up.
  15. Cause it'd be hard to implement. If zombies can't reach you, then it's too easy. If they can, then there is no point, might as well stand still somewhere and you'll die faster. What would climbing on cars accomplish, for you? Gotta think about it in terms of game design. What does it accomplish for the game?
×
×
  • Create New...