Game causes network to bottleneck
REASON FOR PRIVATE ISSUE: Causes the host to get kicked from the party, and in extreme cases, can cause a denial of service from the hosts PS4 to the rest of their network.
REPLICATION:
FYI: Assume 6 render distance unless otherwise stated.
REQUIRES: Host must have a poor (though Australian standard) upload speed of <= 16Mb.
Step 1: Start an online game as host and invite a player
Step 2: Have the host of the game invite all clients to a PS party (might work with other VOIP services but we have only tested with PS')
Step 3: Place a bunch of AI down in the testing area (must be within render distance), throw a few pistons in there triggered by a redstone clock, etc.
Step 4: Have a client player turn their render settings to max (22 chunk render, 100 Particle render)
AFFECT: As the client/s attempt to request the new render information from the host you should notice the hosts voice begin to start lagging in the party. Because there is now a lot that has just been requested of the hosts machine (render info, mob AI, doing ticks in the newly rendered chunks, and so on). When the render info is finally sent and the client/s game has been updated you may notice the host was kicked from the party. Obviously the more players, the more more likely it is the host will be kicked.
ITEMS USED IN MY FRIENDS' WORLDS:
World 1 (Survival, Friend 1): A large (~ 25 block high) wall spanning ~ 6 -7 chunks, surrounding our house, a small farm (~ 100 total animals, ~ 50 of them were sheep), a 1 chunk x 1 chunk x 1 chunk large pit, 3 hopper minecarts (in constant motion), among other things.
World 2 (Survival, Friend 2): A ~ 5 x 10 x 3 block hole filled with a large amount of cattle (Z-fighting, Z-fighting everywhere), a Drowned farm (a big cause of the issue when many get spawned), Skeleton farm (same as Drowned farm), both within render distance of the house.
POSSIBLE SOLUTION:
Due to the bug primarily being caused by trying to process then send a lot of render and AI info all at once, really fast, with a low upload speed, it is inherently going to cause a bottleneck. So the question is: how do we limit the bandwidth? For now, I'd say just default people's video settings to the minimum until an actual solution is in place as to at least limit the amount of data needed to be sent by the host (though this may have the affect that players will want to turn up this setting, if already in a game, this issue may occur). As far as an actual solution goes, maybe do the old "not seen, not rendered" trick (though this would be a pain to program so a better, faster to create, faster to process solution would obviously be better). I don't think I need to explain what I mean by that, but in case I do: if something is behind a wall, don't render it, even if it's within render distance.
COMMENTS: Another thing is when we first opened these worlds up the party chat never lagged, it wasn't until we started doing network intensive things like building massive walls, creating mob farms that it started to lag. Just something I thought I'd mention to point me to why this was happening, this conclusion. It must be taken into account that everything said here was based on my understanding of how the game works IN NO WAY AM I TRYING TO REVERSE ENGINEER THE GAME but instead I attempt to understand the games mechanics to use them to my advantage in-game, I also use my knowledge of computers and networking to attempt to determine why this was happening (as my mates and I originally shrugged off the laggy voice chat and delayed mining particle FX off as just my mates internet being bad while everyone was on it). Also OrbisOS seemingly always attempts to prioritize resources for games as when one is opened, download times get massively increased while the game is seemingly unaffected. Also OrbisOS appears to handle the party chat module a bit differently to the rest of its OS as, in the event of an OS crash, the player will remain in the party. This leads me to believe that it has a much higher priority than other parts of the system. What I'm getting at is a lot of resources seems to be placed on the party chat (second to the running game/program) so if MC is needing that much bandwidth, maybe it's time to try and shrink it down a little (I know waaaay easier said than done).
Thank you for reading this and, hopefully, the effort put into creating a solution.
2020-01-08, 04:28 PM
2020-08-06, 05:05 PM
2020-08-06, 05:05 PM
0
1
multiplayer, networking, optimization
-