Serious Sam Public Test Patch 2.1
File Info: Serious Sam Public Test Patch 2.1
Description: Serious Sam Public Test Patch 2.1Here is a great update to the Public Test 2 (build 109) of the nice FPS shooter, Serious Sam. See more info for a list of features and fixes.
First of all, in case you have modified some of the files in the Public Test 2 installation, you might have to reinstall it before applying this patch. The patch tries to reset all settings to their proper values, but that might not always be possible. Especially if you have been hand-changing some of the scripts or addons.
If you have any problems even after this patch, please deinstall the test completely and install again to a fresh directory, then patch it.
For news updates, bug fixes and workarounds on this or any other release, please visit http://www.croteam.com.
List of most important changes, fixes and improvements
from Public Test 2 (build 109) to 2.1 (build 109.2)
1) problem with firewalls/routers should be fixed now
Sam now uses only port 25600 (both TCP and UDP) by default and uses only passive connections, i.e. server doesn't need to know clients' addresses. This way it should work ok, and even NATs should not cause problems.
If you want to play through a firewall, you will have to forward port 25600 - and remember to forward _both_ TCP and UDP!
We tested this even through a proxy. As long as both TCP and UDP on the port 25600 are mapped right it should work.
Note that even though port 25600 is the default, some server administrators might change that to another port if they want to run more than one dedicated server on one computer. In order to connect to such servers, you will have to forward additional ports.
If you are just behind a router, it should all work automatically without any intervention from your side.
2) added option for choosing address on a multihomed system
If you have a multihomed system and want to bind to a specific network address instead using the default, you can set console variable 'net_strLocalHost' to the address of the desired network interface.
Example: if you have two addresses, one '192.168.0.1', other '126.96.36.199' and you want to host an iNet game, you'll need to use the second address. After starting the application, go to console and type:
/net_strLocalHost = "188.8.131.52"
Don't forget the quotation marks and the equal sign. Next time you start the game, it will use this address. To cancel the setting, just set to an empty string ("").
3) much faster network packet compression
High compression algorithm used choked some servers too much, causing clients to have bad framerates due to server spending too much time compressing the packets. That happened on non-dedicated servers if the server player caused low frame rate and there were lots of clients in game.
Now optimum compression is default (net_iCompression=1). It works much faster, and the packet size should still be acceptable for most games. You can turn on high compression (net_iCompression=2), but only if you are sure your server won't choke on it.
4) server location reporting
Server now automatically reports its geographical location by looking up the systems locale setting. You can further override this by setting cvar 'net_strLocationCode' to a value you desire. This will be especially handy for US servers to report ZIP code that is more verbose than just country code which is always US.
5) true dedicated server
New dedicated server is a completely separate program and is just a simple Win32 console application. I.e, it runs from a console window (dos box). It has no graphics, sound, nothing. And it is configured through scripts entirely, so it doesn't need menu and similar.
You start it by simply choosing one of the predefined shortcuts for running default dedicated servers.
IMPORTANT NOTE: When you want to close the dedicated server _DO NOT_ use the close button (x)! Just press Ctrl+C and it will shut down gracefully. If you close it manually, it might leave its network port hanging, and clients won't be able to connect to your server any more until you reboot. This problem does not appear on WinNT, but it is almost guaranteed to hang on Win95/Win98/WinME. This is a known bug in those operating systems, and there is nothing we can do about it. But if you just stay away from the close-box, everything will be ok.
When the game ends, it will restart automatically after several seconds and all connected clients will auto-reconnect. Game is kept paused at the zero moment of time until the first player joins. When all players leave, the game is automatically reset. This prevents players from leading a coop game to a dead end and then leaving, therefore making the server useless for playing.
Just for a test, we ran this new dedicated server on a P133MMX underclocked to 125MHz with 32MB RAM, ancient video card and no sound, under Win95 OSR2. It was able to start Desert Temple map and two clients were able to play very smoothly. Not that we suggest you try to run such a setup, but guess it means it should work on a decent machine with no problems. Minimum requirements would be that the CPU is MMX and that the OS is Win95 or newer. Memory - the more the merrier.
Each dedicated server will write its own log file, with filename depending on the config name. You should be able to run more than one server at the same time on one machine (if it is powerful enough). In that case, you will have to set different port numbers in the 'init.scr' scripts in each config.
6) client send-behind
Added option to replicate packets from client to server. If you had problems with yellow lines in netgraph you couldn't get rid of, it might be due to action packets beeing dropped from client to server. I.e you press some button but that fact gets lost in traffic from you to the server. Now clients replicate their packets to prevent that. The replication is controlled with 'cli_iSendBehind' with a valid range from 0 to 3. Default is 3, which should be ok for most purposes, even on a 56k modem. Only if you are trying to play split-screen on-line via an 56k modem, you might need to lower this.
7) server limits for client BPS
With 'ser_iMaxAllowedBPS' you can control the maximum server bandwidth value one client can demand by limiting its own 'cli_iMaxBPS' or 'cli_iMinBPS'.
I.e. if you set ser_iMaxAllowedBPS=4000, the clients' settings for 'cli_iMaxBPS' or 'cli_iMinBPS' will be clamped to 4000 from above.
Rule of the thumb is that if you allow N clients on your server, N*ser_iMaxAllowedBPS shouldn't exceed your outgoing bandwidth.
8) additional server info
This was implemented all the time, but it is really time that people start using it. You can configure additional server infomation for users to see in gamespy by setting the cvar 'gam_strGameSpyExtras'. For dedicated servers, just modify the script 'Scripts\Dedicated_startup.scr'.
9) joystick problems
Having a badly installed or unconnected joystick caused severe performance problems in some systems. Any joysticks that cannot be read properly are now disabled. Also, using 'inp_ctJoysticksAllowed' and 'inp_bAutoDisableJoysticks' you can control how many joysticks in the system will be enabled and whether they will be auto-killed on poll-failure.
10) server password
You can now make password protected servers. Only people that know the password will be able to join. To do so, set 'net_strConnectPassword' before starting the server/connecting to it. Connection with password should automatically work via GameSpy, by entering the password in the Arcade.
11) wait for all players
It now waits only till initial joining. If one of the players disconnect afterwards, you can continue playing regardless.
There is new a button binding for talking. If you didn't have anything bound to 'T' it will be automatically bound there. If you had something bound to T already, you'll have to bind it yourself to some other key. It will be at the top of the list - you can't miss it.
13) network parameters in single player
Now you shouldn't be able to mess up single player experience by adjusting the network variables. cli_bPrediction, cli_iBufferActions, cli_iMinBPS and cli_iMaxBPS are now ignored when in single player or running a server.
14) if-else construct in scripts
Scripts now support contitional statements. Syntax is same as is C. New operators are added: &&, ||, &, |, ^, ==, !=, <, >, <=, >=. Comparison operators work on INDEX, FLOAT and CTString types.
15) no more auto adjustments.
cli_bAutoAdjustSettings is out. You now have to choose your connection parameters manually before connecting. With new if-else constructs, custom scripts for automatic configuration can be made.
16) system info cvars
Following cvars regarding system info are now available from console:
// OS info, as reported by GetVersionEx()
const CTString sys_strOS
const INDEX sys_iOSMajor
const INDEX sys_iOSMinor
const INDEX sys_iOSBuild
const CTString sys_strOSMisc
// CPU info as reported by CPUID:
const CTString sys_strCPUVendor
const INDEX sys_iCPUType
const INDEX sys_iCPUFamily
const INDEX sys_iCPUModel
const INDEX sys_iCPUStepping
const INDEX sys_bCPUHasMMX
const INDEX sys_bCPUHasCMOV
const INDEX sys_iCPUMHz (this one is measured using RDTSC)
// physical ram and swap file sizes in MB
// note that physical ram is not exactly 64MB due to some PC hardware limitation (remember that 640k stuff ?)
const INDEX sys_iRAMPhys
const INDEX sys_iRAMSwap
17) memory adjustments in scripts
Using the above system info, new GLSettings scripts automatically optimize texture/shadow usage for ammount of memory available in system.
18) zoom cheat
Is now disabled in deathmatch. You can use it in sp/coop as much as you like, but not in DM.
19) split screen menus
Split screen configuration user interface has undergone severe changes. Now, it shouldn't happen that you acidentially join in as observer, or start split screen when you wanted to play with one player etc. You just choose number of players, the split screen config is then adjusted accordingly. For two players you will have it split horizontaly on normal displays, and on DualHead you will have one player on each monitor. For three and four players you get default 3/4 players split screens.
Small windows are available only in special 'advanced observing mode'.
At the menu you can choose to run dedicated (if you are starting a server). This will _not_ be as good as the real dedicated server, but will do well for small LAN parties and such. In that case you will not have any screens.
Choosing to be an observer will make you have one screen and watch the first player on the list. Using keys 1/2/3/4 on the numpad, you can toggle on the fly between 1/2/3/4 split screen to watch more than one player at the same time. Use +/- on the numpad to scroll through players to watch.
If you turn 'gam_bEnableAdvancedObserving' on, you can use those same shortcuts in Coop mode, to watch your co-players in the small screens. '0' on numpad will turn it off. This works even if you already have split screen on, just that you will have to turn it on/off, or some of the local players won't see much.
Of course, those key bindings are customizable - see 'Controls\System\Common.ctl'.
20) keys transfer on player disconnection
Before, if a player picked a key in coop and then left, others couldn't continue playing. Now all the keys are transfered to some other player that stayed in the game, so that the party can go on playing.