Short: Ping analyzer for QuakeWorld Author: SuRgEoN Uploader: v2615a groenjord dk Type: game/shoot Version: 0.2 Requires: ixemul.library v47+ Architecture: m68k-amigaos Homepage: SuRgEoN's Quake1 Goodies http://users2.50megs.com/surgeon/quake/quakeworld/ Date: 24-AUG-00 I was missing some kind of ping analyzer to find optimal pushlatency setting (movement prediction) on quakeworld servers, so i wrote panalyzer, a small cli tool that can read up to 60 floats from commandline, seperated by spaces. The prog then finds the median and stores highest and lowest value as range. Output: median [low-high]. The accompanying scripts use qstat to generate pings, stores the values in env variables and feeds them to panalyzer. All you have to do is move PAnalyzer dir where you want it and doubleclick the PAnalyzer icon. You will be prompted with a string requester asking for the server, followed by an interval requester (1-3 are suitable values). The script will update the calculation for every 5 pings. the median and range becomes reliable after the first 4 updates (panalyzer uses the past 20 pings for calculations). Pushlatency determines how far ahead in time your quakeworld client should predict player and object movement. It is extremely important to set an ideal pushlatency in order to minimize the effect of delay between you and the server. Pushlatency should be set to the negative value of a position somewhere between lower limit and median. If median is close to lower limit, a suitable value would be the negative value of the lower limit. If median is close to the center of the range, it would make sense to choose a value equal to the negative value of the median. Generally, pushlatency should not exceed -250, because the quakeworld prediction will have more errors, the further ahead it has to guess. A wrong guess manifests as a sudden position-jump. You may miss a shot by a large margin or run into an obstancle you thought you had passed, because the server sends an update which differs significantly from the prediction. Example1: 44 [36-1044] would translate to a pushlatency of -36. However such a large range indicates an unstable connection and you can expect occasional lockups with delay up to 1 second. Example2: 92 [65-130]. Ideal connection with narrow range. Pushlatency shoud be set to -90. Example3: 166 [110-223]. This is a good connection with a relatively narrow range. Pushlatency should be set to -160. Example4: 285 [250-401]. Relatively good reliability. A reasonable pushlatency value would be 200-250, depending on your willingness to accept above mentioned position-jumps. Tips when searching for good servers: Narrow range, low median: very enjoyable, stable connection Narrow range, high median: enjoyable, stable connection. Wide range, median close to lower limit: mostly enjoyable, occasional lag. Wide range, median close to middle: not enjoyable, unstable connection. Have fun with this little tool! -SuRgEoN history: v0.2: Rewrote panalyzer to take a parameter -f for float output and -i for integer output and up to 60 vaues. Now finds median instead of mean. Data from pinging was generally not normal-distributed, so mean could be far off, resulting in too high estimates for pushlatency. Changed calculation update interval from 1 to 5. Added the info for using panalyzer as pushlatency guide. v0.1 First release future: make panalyser part of GameTracker, so that pushlatency can be set automatically, ahead of connecting.