Scythe 2 Coop Overflows
When running a Scythe 2 coop server, maps with large amounts of monsters cause problems when it comes to connecting to the server. The server will output the following when a player attempts to connect:
need full update
The player will then be disconnected. It appears that this problem affects a client connecting from the same machine as the server even moreso as another player was able to connect to my server despite him claiming it was very buggy.
It appears that monsters are the main cause of this problem as running the server with 'nomonsters 1' allows for normal connect.
Run scythe2.wad on map25 coop and try to connect with a client on the same machine.
Created attachment 185 [details]
Add server cvar to control maximum rate
On behalf of Spleen:
The overflows occur due to the client's rate variable defaulting to a low 10000
- this variable prevents more than that amount of bytes in the regular buffer
from being sent to a client every second. However, there's a hard-coded
server-side cap of 8000 on the rate, probably to prevent bandwidth issues.
This patch turns the hardcoded limit into a server variable called maxrate,
allowing rate to be raised high enough for any WAD.
Apologies for Code::Blocks deciding it needs to silently clean up the
whitespace without asking. Hopefully that doesn't bloat the patch up too much.
This is still not resolved. While it doesn't disconnect clients, ping becomes gradually worse until it freezes. This also appears to crash the server. Spleen said he'd look into it further.
Further info, the server appears to disconnect clients upon connect sometimes:
[10:23:15] 184.108.40.206:10667 is trying to connect...
[10:23:16] tm512:45 has connected.
[10:23:17] SZ_GetSpace: overflow
[10:23:17] need full update
[10:23:17] tm512:45 disconnected. (SPECTATOR, 0 KILLS, 0 DEATHS)
Once in-game there are still serious issues with client's ping and a "rubber-band" effect, as well as projectile issues. See the following video for a description of what's happening (excuse the low framerate): http://www.youtube.com/watch?v=Ej2Qqm_lW4c
Created attachment 191 [details]
Stale Flags patch
This patch sends updates to clients when things need updating.
saves alot of bandwidth!
(In reply to comment #5)
> Created an attachment (id=191) [details]
> Stale Flags patch
> This patch sends updates to clients when things need updating.
> saves alot of bandwidth!
if (cl->netbuf.cursize >= (maxrate / 2))
if (cl->netbuf.cursize >= 1024)
This was pointed out by Spleen-
Created attachment 192 [details]
* sv_staleflags (default: 1) -- Enabled patch changes
* Fixed multiple logical errors (which caused most of the problems)
* Made code for efficient.
Created attachment 194 [details]
Stale Flags 3
* Fixes players jittering when turning
* Fixed projectiles exploding too early.
Created attachment 195 [details]
Stale Flags 4
No changes, update to r1651.
Created attachment 196 [details]
Stale Flags 5
Update to r1652:
* Uncomment a single line of code and add if not sv_staleflags
I think this is mostly fixed except for the packet size issue described in http://odamex.net/bugs/show_bug.cgi?id=594
The remaining desyncs seem to be unrelated to overflows.
r1699 may complete this. Can anyone confirm?
Everyone says the solutions have been implemented to solve this. Marking fixed. Follow bug 604 for more information about improved netcode.