![]() |
![]() |
|
Go
![]() |
New
![]() |
Find
![]() |
Notify
![]() |
Tools
![]() |
Reply
![]() |
|
Yo all. --v1.0--
A few may know that recently myself, DocSEAL, IceTBag, Keletappi and others have been looking at tweaking the server settings, with extensive research into the commands and trying to work out what they do. I have done loads of tests trying to see how commands react and what they actually set and how it affects the server and the client. Here i will explain all that i have found out with theories of what they do and what to set to. ALOT OF INFORMATION TO TAKE IN loool Firstly will start by listing all the working network server and client commands (server end, not gamerules of player settings etc) in 1.31 of farcry. The server commands sv_netstats sv_maxrate sv_maxupdaterate sv_maxcmdrate sv_max_scheduling_delay sv_min_scheduling_delay sv_DedicatedMaxRate sv_cheater_kick sv_cheater_ban sys_StreamCompressionMask Also here are the client settings cl_maxrate cl_updaterate cl_cmdrate cl_netstats Further down will be an explanation of each command and there default values, but first you should read this to familar yourself with the updaterate, maxrate and cmdrate :: maxrate sets a maxiumum limit of bytes per second the client can send the server. cmdrate is the number of times per second the client informs the server of its actions. Remember that the amount of data in an update depends on how much is going on. updaterate is the number of times per second the server tells the client what's been going on in the map. Likewise, more action, more data per update. The commands on the server are maxcmdrate, maxupdaterate and maxrate (maxrate is to for client) Hopefully by now you will have understood what has been put so far The server commands in more detail :: sv_netstats Default Value "0" Range 0-7 Logs/displays network statistics server end, but DOES NOT WORK! sv_maxrate Default value = "30000" Defines the maximum UPLOAD a client is allowed to the server. (30000 = 30kB/s) Rate is dependent on client rate also. sv_maxupdaterate Default value = "50" Defines the maximum amount of updates the server can send the client per second. Rate is dependent on client rate also. sv_maxcmdrate Default value = "100" Defines the maximum number of times per second the client can send commands to the server. Rate is dependent on client rate also. sv_max_scheduling_delay Default value = "200" The maximum delay you would get when performing a command ie entering a jeep (in milliseconds) sv_min_scheduling_delay Default value = "100" The minimum delay you would get when performing a command ie entering a jeep (in milliseconds) sv_DedicatedMaxRate Default value = "80" Set the maximum update frequency (per second)if a dedicated server sv_cheater_kick Default value = "1" Does nothing! sv_cheater_ban Default value = "0" Does nothing sys_StreamCompressionMask Default value = "8" Stream compression bit mask, used for network compression(lower bandwidth) 0=1 1=2 2=4 3=8 4=16 5=32 6=64 7=128 8=256 9=512 10=1024 11=2048 12=4096 13=8192 etc AT PRESENT STILL TESTING THIS COMMAND. The client commands in more detail :: cl_maxrate Default value = "?" - doesnt seem to show so will be capped to what the server has set. Defines your max bps upload to the server. cl_updaterate Default value = "20" - but doesnt flag up a value. Is the number of times per second the client allows the server to tell you what's been going on in the map. cl_cmdrate Default value = "40" Is the number of times per second the client informs the server of its actions. cl_netstats Default value = "0" Setting to "1" will display your netstats in game Example and explaination here :: Understanding these commands and what best to set to :: As you can see the clients default values are a lot lower than those set on the server, so setting these rates on the server :: sv_maxcmdrate sv_maxupdaterate Would seem pointless of anything above 40 and 20 but leave them at the default value for now and test with all your clients in the server using a matching rate set on there machine - testing for this will be within the week to see what happens. usage :: sv_maxcmdrate = "100" sv_maxupdaterate = "50" The next command is :: sv_maxrate Which as you know sets the max bitspersecond upload allowed for each player, default is 30kB/s which is fine as the max upload a normal broadband connection in the UK can handle is 32kB/s usage :: sv_maxrate = "30000" More commands :: sv_max_scheduling_delay Which is the maximum delay time for an action to be performed from a client in milliseconds, you should set this to what you max ping will be on the server using this as a guidance :: Ping of 500 = 1/2 second or .5 of a second (500ms) Ping of 250 = 1/4 second or .250 of a second (250ms) Ping of 125 = 1/8 second or .125 of a second (125ms) So if you high ping kick is set to 70 (140 actual ping) this is 140ms so you can use this value for the max delay. usage :: sv_max_scheduling_delay = "140" sv_min_scheduling_delay Which is minimum delay you would get when performing a command ie entering a jeep. Try to set this to what you lowest ping will be or to 0.01. Lowest ping will probably be 8 in game (16 actual) usage :: sv_min_scheduling_delay = "0.01" or sv_min_scheduling_delay = "16" The next command is :: sv_DedicatedMaxRate This is the internal rate the CPU updates the server, obviously the high rate the more updates, but too many updates and the CPU will hit 100% usage and data will be back logged and lost. Try to set to what your server can handle, a default value of 60 is good to see if you hit 100% CPU usage with 16 players in. This is very dependent on your hardware configuration and maxplayers. usage :: sv_DedicatedMaxRate = "60" **This command is best placed within the system.cfg not server.cfg, but can be used in server.cfg. The next command is :: sv_cheater_kick An old command from 1.0 which seems to have stayed set to on. Set to off ("0") as it does nothing. usage :: sv_cheater_kick = "0" The final command is :: sys_StreamCompressionMask Which is abit in the "air" as its to proper function. More testing will be done this week and will update here the results. ---- Hopefully that will help alittle and you understood most of it. I will update with more stuff found out as i test and post a general best configuration for client and server asap! Cheers [FcL] pvt.james www.farcry-legends.co.uk More server tweaks and setting up a dedicated server is here :: Farcry Setting Server Up Guide This message has been edited. Last edited by: Pvt_James, |
|||
|
![]() |
Thanks for the efforts and explanations Pvt. James, I will try some of these recommendations and see who they work.
Your efforts are appreciated. |
|||
|
Part 2
After some more extensive testing last night, cheers to Doc and IceTbag. We have narrowed down and roughly worked out how each command affects the client. sv_DedicatedMaxrate seems to have a range from 1 to infinity or whenever the server CPU melts. Setting to :: **with 3 in server 1 through to 9 = CPU hit 100% usage and the IN data increased, didnt notice lag or server slow down though but not good on 100% all the time! 10 = CPU hit 100% and all clients pings were the same and changed at same time :: IceT and myself had a normal ping of 16-23, DoC (HPB lool) has 47-54 - all our pings went to 47-54 and fluctuated at the same time. 20 through to 100 = CPU came down to 5-17% usage and pings lowered to normal, roundtrip was about normal but got shorter going up from 20 to 100. 150 + = Roundtrip value in NETSTATS came down for Doc (HPB) was around the same for (LPB) but CPU usage went back to 100% sv_maxcmdrate seems to have a working range of 1 to 100, above 100 nothing noticeable. Setting to :: 1-10 = the OUT value for the client dramatically dropped 10-40 = the OUT value increased back up, not alot of difference from 20-40 40-100 = the OUT value increased minor. this rate is set to cl_cmdrate which is default for client at 40, setting our clients to 100 to match the server default rate, we saw a massive increase in OUT values (double or more) The command cmdrate is proportional to your FPS, if you are generating 40FPS you will be sending 40 commands to the server, this setting should be set to your average FPS. Note, we were in server testing with 90-100 FPS Setting to 100, will mean you are trying to send 100 updates per second, but may only be generating 30FPS, so 70 packets will get lost/dumped server end, causing lag/poor hit detection. sv_updaterate working range seems to be 1-100, anything above didnt make a noticeable increase Setting to :: 1-10 = our IN values dropped to a very low number 20-100 = our IN values increased backup, but seemed to be hover at the same value, map changes made them change. There is a command for the client to up this rate to, cl_updaterate - this command doesnt seem to label a figure it is at though. This command is the more important one, as you will want to be getting as many updates from the server as possible to ensure your bullets are hitting. By default all servers have this setting set to 50 and the client 20 More testing will be done with this command later, as last it got late and didnt get to fully test using the command. sv_maxrate seems to have a working range from 10000 to 600000 Setting to :: 0-10000 = our IN values dropped 10000 - 30000 = our IN values increased 50000-60000 = it seemed to maxout our IN value and wouldnt rise it anymore if set to 60000 plus. Hopefully this will help abit more, and more will be added later and tomorrow to finalise some commands, and recommended server and client settings. As you will read, all these command made an affect on the data being transferred, its just a case now of finding what is best to keep them all happy. Cheers |
||||
|
With some response from Crytek
sys_StreamCompressionMask Default value = "8" This value should be left at 8, as is intended for network debugging and shouldn't wont need changing. sv_netstats Default value = "0" This command does not work, as it was used in development and not in the final working release. |
||||
|
Wow, great info fellas. Keep it up.
Krome_Plated |
||||
|
Yup, Thanks this helps a lot...
Great job mates. |
||||
|
James can you delv into the new gr_mapcycle_ffa/assault/tdm / gr_ffa/gr_assault/gr_tdm usage? I messed around with these settings tonight and could not figure out how they are used.. I have basicly 1 server cfg for each gametype. I added gr_mapcycle_ffa = "ffa_mapcycle.txt" to the ffa_server.cfg and made a ffa_mapcycle.txt file with the ffa maps I wanted... no go Thanks... ============================== MSI K7N420-pro WinXP pro sp.2 Ath.XP2600+ @ 2.14ghz (stock, no OC) 1gb PC2100DDR = 2x256mb & 1x512mb GF6800 91.47 drivers onboard sound / 4.31 nvidia audio drivers Linksys Gigbit NIC ============================== ============================== MSI K7N420-pro WinXP pro sp.2 Ath.XP2600+ @ 2.14ghz 1gb PC2100DDR = 2x256mb & 1x512mb ti4200 128mb using 61.77 Drivers fromGuru3D onboard sound / 4.31 nvidia audio drivers 3com 3C905B-TX NIC ============================== irc.beyondirc.net #farcry-sa #farcry-mappers |
||||
|
| Previous Topic | Next Topic | powered by eve community |
| Please Wait. Your request is being processed... |
|

