Rune Central

The Official Rune Quake Message Board
It is currently Thu Mar 28, 2024 7:47 pm

All times are UTC - 5 hours [ DST ]




Post new topic Reply to topic  [ 7 posts ] 
Author Message
 Post subject: Packet Overflow / Stack Overflow ?
PostPosted: Fri Sep 09, 2005 4:01 am 
Offline

Joined: Sun Mar 09, 2003 10:47 pm
Posts: 1612
Location: Ohio
I've played 2 -- maybe 3 -- single player mods or maps where I got "Packet Overflow". These were situations where using dead body filter wouldn't work.

ne_sp06 / Necros / Once Upon Atrocity: the final fight against the dragon where it shoots fireballs all over the place. Got several packet overflow messages. (In my book, and probably some others, this is one of the best single player maps ever).

fc1 / Fat Controller / Duke of Ontranto: the final map has about 40 monsters and the "Duke" in a single room and all hell breaks loose. No dead bodies, just lots of hell knight attacks, vore balls, ogre grenades, etc. About 3 or 4 times I got Packet Overflow leading to a Stack Overflow which kicked me out of the game.

Neither were situations where dead body filter would help.

Is there anyway to have JoeQuake a little more immune to Packet Overflow and Stack Overflow situations?

While they are rare and affect few maps, it seems to be the more cutting edge and recent maps.

PanQuake Packet Overflow Fix? wrote:
packet overflow / edicts size fix:

I added this, even though it is unrelated to panorama mode: you can
now have 16x as much entities/gibs on screen before getting packet
overflow errors, and max edicts has been increased 10x as well. This
means that on moderately fast machines, Doom-style many monster maps
are now viable. To even further make such maps playable, you can
run PanQuake with my quake-c mod which quickly removes gibs and corpses
(after 5 seconds) which is included. Note however that for coop or dm
network play all players need to use PanQuake, because these changes
affect the network code.


http://wouter.fov120.com/gfxengine/panquake/

Source + Download: http://wouter.fov120.com/files/engine/panquake.zip

Panquake quakedef.h wrote:
#define MAX_QPATH 64 // max length of a quake game pathname
#define MAX_OSPATH 128 // max length of a filesystem pathname
#define ON_EPSILON 0.1 // point on plane side epsilon
#define MAX_MSGLEN 16384 //aard: was 8000 max length of a reliable message
#define MAX_DATAGRAM 16384 //aard: was 1024 // max length of unreliable message
//
// per-level limits
//
#define MAX_EDICTS 6000 //aard: was 600 // FIXME: ouch! ouch! ouch!
#define MAX_LIGHTSTYLES 64
#define MAX_MODELS 256 // these are sent over the net as bytes
#define MAX_SOUNDS 256 // so they cannot be blindly increased
#define SAVEGAME_COMMENT_LENGTH 39
#define MAX_STYLESTRING 64


JoeQuake quakedef.h wrote:
#define MAX_QPATH 64 // max length of a quake game pathname
#define MAX_OSPATH 128 // max length of a filesystem pathname

#define ON_EPSILON 0.1 // point on plane side epsilon

#define MAX_MSGLEN 8000 // max length of a reliable message
#define MAX_DATAGRAM 1024 // max length of unreliable message

// per-level limits
#define MAX_EDICTS 2048
#define MAX_LIGHTSTYLES 64
#define MAX_MODELS 256 // these are sent over the net as bytes
#define MAX_SOUNDS 256 // so they cannot be blindly increased


Just a compare and contrast, I have no clue the impacts of any of these variables/constants have on single player/multiplayer or if this is even the right place in the code for the Packet Overflow fix.

I think I have heard some other engines address Packet Overflow, but I don't want to use those -- JoeQuake is perfect ;)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Fri Sep 09, 2005 4:55 pm 
Offline
User avatar

Joined: Fri Oct 24, 2003 2:09 pm
Posts: 252
Location: Hungary
yea i know the current number is low, but i got some problems with changing them. Namely that it causes incompatibility with older engines. Like if you record a demo with MAX_MSGLEN > 8000 then it might happen that you are unable to play that back in an engine which only supports a max value of 8000. And this sux.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Fri Sep 09, 2005 9:37 pm 
Offline

Joined: Sun Mar 09, 2003 10:47 pm
Posts: 1612
Location: Ohio
Compatibility is king.

I like the way all the changes you have done over time are cautious and maintain compatibility with everything else.

So ... if there is no good fix, I can live with it. :D


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Sep 10, 2005 6:09 am 
Offline

Joined: Tue Jul 20, 2004 4:36 am
Posts: 40
Location: Sweden
Oh Joe better maintain compatibility - or we'll ban joequake from SDA 8)

On a related note, Bengt Jardrup has a tool (convdem) which (amongst other functions) can remove data from demos that have too long messages (recorded in some new fancy engine), thus making the demo compatible with other engines again.

http://user.tninet.se/~xir870k/

Seeya.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Sep 10, 2005 5:05 pm 
Offline
quake.intertex.net
User avatar

Joined: Sat Nov 15, 2003 7:39 pm
Posts: 243
Location: Kansas City!
Would it be useful to create cvars for the packet lengths?

example:
cl_ext_packet_reliable {0/1}
cl_ext_packet_unreliable {0/1}

could toggle the 8000 -> 16384 and 1024 -> 16384 respectfully..?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Sep 10, 2005 7:49 pm 
Offline

Joined: Sun Mar 09, 2003 10:47 pm
Posts: 1612
Location: Ohio
Packet overflow at least doesn't crash a progs.dat (as many single player mods use, especially those with custom monsters), but it's unsightly to get those messages.

But when playing FC1, like I indicated above, I got an actual stack overflow which crashed the progs.dat and got a whatever.qc error. The client didn't crash, I got the single player equivalent of being kicked to the console. It doesn't sound like changing message length settings would prevent a stack overflow, would any of the memory settings?

(I only encountered the stack overflow once or twice and only on 1 particular map packed with monsters)

If I am correct, when recording demos JoeQuake forces FPS to be no greater than 72 and maybe it even forces a normalish host frame rate. Maybe make the message length settings forced to default only when recording a demo? (Or would changing those have adverse affects in multiplayer?)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sun Sep 11, 2005 6:52 am 
Offline
quake.intertex.net
User avatar

Joined: Sat Nov 15, 2003 7:39 pm
Posts: 243
Location: Kansas City!
I tested the upped settings online/ and while watching a demo.. but I think its more as the server sends out the smaller packets so its only benifit if both server and client use increased packet size.. seems i remember zmodem using 8192kb packets ? not sure what all the diff would be unless its doing a crc at the end of every packet
in that case i wold think that a moderate size would be usefull


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 50 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group