Zandronum Chat on our Discord Server Get the latest version: 3.1
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002300Zandronum[All Projects] Suggestionpublic2015-06-10 02:122016-04-10 19:27
ReporterWatermelon 
Assigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
StatusnewResolutionopen 
PlatformMicrosoftOSWindowsOS VersionXP/Vista/7
Product Version2.1 
Target VersionFixed in Version 
Summary0002300: Network buffer
DescriptionUnfortunately due to the structure of how the game is set up, it's possible to blow past the 1024 packet limit in maps that have a ton of data, even on LAN. The solution to this is to have a packet buffer.

Implementing this might be harder than it sounds, since it has to take into account ping, dropped packets, handling that with the 1024 limit...etc.
Attached Files

- Relationships

-  Notes
User avatar (0012623)
Watermelon (developer)
2015-06-10 02:21
edited on: 2015-06-10 02:21

I'm curious on defining our boundaries, with respect to the limits we will place on ourselves.

Right now, let us assume that we are sending more data than the client can handle on LAN. The problem we have is that the client cuts out after 1024 packets have found to be lost, which is when the latest packet it gets is 1024 (or 1025?) indices ahead of what the server last sent.


1) How much do we want to limit our packet buffer to? For example, if a mod is generating lets say 2000 packets worth of data per tic, what exactly do we do in this case? It's not uncommon to see mods do this (see BestEver statistics), so we'll have to introduce a cap on the server end which says "too much data to transfer".

What is a good limit? Right now 1024 packets * 1024 bytes = 1 meg of memory, I'm guessing it's not unreasonable to do 8 of these? That should be 8 megs of memory max per player, which is 512 megs of additional ram. Are we okay with this?


2) We may have to consider a throughput cap, and I'm not exactly sure how to make it work optimally. If we're piping through 256-512 packets per second (as an example) it needs to take into account the ping of the player. If they have 300 ms ping, by the time they realize they're missing a packet, the 1024 buffer on the server could have already been blown past recovery.


3) Storing extra packets in memory: If we're going to have a buffer to deploy, might it be worth expanding the limit of how far the server will remember back?


I feel that these need some serious thought before even considering code development on a patch, since this is larger of a task than I originally thought.

User avatar (0012632)
Frits (reporter)
2015-06-10 12:06

Konar made a custom build once that allowed clients to miss a lot more packets (4048 or more i don't exactly recall) and instead of lagging out clients, the server itself froze :P (Tested with chillax).

Issue Community Support
Only registered users can voice their support. Click here to register, or here to log in.
Supporters: Monsterovich
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2015-06-10 02:12 Watermelon New Issue
2015-06-10 02:12 Watermelon Assigned To => Watermelon
2015-06-10 02:12 Watermelon Status new => needs review
2015-06-10 02:21 Watermelon Note Added: 0012623
2015-06-10 02:21 Watermelon Note Edited: 0012623 View Revisions
2015-06-10 12:06 Frits Note Added: 0012632
2016-04-10 19:21 Torr Samaho Product Version 3.0 => 2.1
2016-04-10 19:21 Torr Samaho Target Version 3.0 =>
2016-04-10 19:21 Torr Samaho Status needs review => new
2016-04-10 19:27 Dusk Assigned To Watermelon =>






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker