Mojo 0 Posted July 13, 2009 MaxMsgSend=<limit>; Maximum number of messages that can be sent in one simulation cycle. Increasing this value can decrease lag on high upload bandwidth servers What is the simulation cycle? What is the timing, can you break it down into component sections, what are all the pieces that make up one simulation cycle? Share this post Link to post Share on other sites
Mojo 0 Posted July 13, 2009 A Simulation Cycle helps the functional simulation component provide more accurate functional simulation, without greatly slowing performance of the functional simulation. For example, the functional simulation component may simulate a real-time clock (RTC) of the target system, where the system may be able to execute a certain number of the instructions per each clock cycle, which is referred to as instructions per cycle (IPC). Rather than providing timing-related feedback at the simulation of each of the instructions by the functional simulation component, the timing simulation component may instead provide such timing-related feedback once per a number of such clock cycles, such as once per one million such simulated clock cycles, where one million (or other number) of such simulated clock cycles is referred to herein as a simulation cycle. As such, a substantially optimal compromise between functional simulation performance and functional simulation accuracy is achieved. OK, so now that we have established all that techno-babble, what are the specifics of the ArmA2Server's simulation cycle, if we don't know what it is we are setting, how are we supposed to set it correctly? I have read about 30 or so guesses as to what this stuff is, and just as many cfg settings. I've found that the A2 config settings that most dedicated servers use are very different from each other and no one can point to any accurate documentation. What I want to know is: What are the messages sent during how long a period that comprise a simulation cycle? What is the data being sent? Beyond that, I don't know what other questions I have at this point. Isn't anyone else curious as to what this arbitrary setting is and how it is supposed to be adjusted? Share this post Link to post Share on other sites
pchaxor 0 Posted July 14, 2009 (edited) nope not at all Start with 128 and work your way up until it gets stuttery. Then divide that in 1/2 and walla! It really depends on the upstream bandwidth available and the other settings. MaxMsgSend=256; (Lower Values are suggested for CTF/DM maps and Higher Setting for evo/cti Using too large of MaxMsgSend in a CTF causes stutter effects ctf=128/192 cti/evo 384/512) Note The greatest level of optimization can be achieved by setting the MaxMsgSend and MinBandwidth parameters. For a server with 1024 kbps we recommend the following values: MaxMsgSend = 256; MinBandwidth = 768000; Edited July 14, 2009 by pchaxor Share this post Link to post Share on other sites
Mojo 0 Posted July 14, 2009 Thanks for the response. :) I am running completely smooth, no stutter at all with 1024 (and have been for some week or so). Without knowing what the messages are, I feel like I could put MaxMsgSend = COW; in there and be fine. However, the .exe is getting our of MP memory errors when a mission starts with over 100 clients connected. I don't see any errors, beyond those that are to be expected (frequency not supported, etc.) all the way up until it blows up (the EXE that is ;) ) So, I have been trying to be sure that my buffer was empty, that nothing that was being queued up was the cause. I sort of thought this MaxMsgSend option could be a part of it, but I don't see that anyone really knows what it does. Just ways how it doesn't work... "go till it breaks, then cut it in half" seems a bit hit or miss for me. Still hoping for a actual explanation. Share this post Link to post Share on other sites
MJK-Ranger 0 Posted July 14, 2009 (edited) Hi. I think i need some help with those settings :) My bandwidth is 30/30mbit(fiber). And my server is a: Intel Pentium 4 650, 3400Mhz 2048MB RAM OCZ XTC CrossFire nVIDIA GF 6600(256MB) MS Windows Vista Home Basic 64-bit system server.cfg file: //Admin Stuff passwordAdmin="xxxxxxxxxx"; // Admin Password password="xxxxxxxxx"; // PW //Server Configuration and Info Stuff hostname="Test Server"; motd[]= { "Welcome to my test Server", }; motdInterval=5; // Delay in seconds between lines of the MOTD displaying reportingIP="arma2.master.gamespy.com"; // Reports Server name to Server Browser //reportingIP="<>"; // Reports Server name to Server Browser maxPlayers=24; // tosses error when diff than mission settings voteThreshold=1.50; // .33 is default, .99 means that 99% have to vote the same voteMissionPlayer=1; // Allows voting when 45 players are connected //Player Environment Config Stuff disableVoN=1; // If 1, will disable the ingame VON ability vonCodecQuality=7; // Quality from 1 to 10 persistent=0; // keeps game server running after players leave 0=off 1=on //Cheat Detection Stuff //checkfile=0; // 1=slow 0=defult //onHackedData = "ban (_this select 0)"; // auto ban hacked addons //onDifferentData = "kick (_this select 0)"; // auto ban modified files //Player Connect Signatures verifySignatures=1; // Verifies that the sigs are enabled onUnsignedData = "kick (_this select 0)"; // unsigned data detected kickDuplicate=1; // do not allow duplicate id RegularCheck="{}"; // added for Session Lost issue //equalModRequired=0; // set 1-player to use exactly the same -mod= as the server. //Script Stuff //onUserConnected=""; //onUserDisconnected=""; doubleIdDetected="kick (_this select 0)"; //logging timeStampFormat=full; logfile="server_console.log"; NetStats=1; //Server controlled mission choice class Missions { class Cooperative // name for the mission, can be anything { template=Co_10_Operation_Magpie.Chernarus; cadetMode=1; // difficulty 0=veteran 1=cadet (not only AI, but //radar, map etc) }; }; ArmA2.cfg file: //Data TX/RX configuration MaxMsgSend=256; MinErrorToSend=0.0025; MaxSizeGuaranteed=1024; MaxSizeNonguaranteed=1400; // Bandwidth Settings MinBandwidth=2304000; MaxBandwidth=2304000; // no custom faces, sounds MaxCustomFileSize=0; language="English"; adapter=-1; 3D_Performance=93750; Resolution_Bpp=32; Is there anything i need to change or add, please let me know... really want a smooth server settings. Thanks:) Edited July 14, 2009 by MJK-Ranger Share this post Link to post Share on other sites
Mojo 0 Posted July 14, 2009 MinBandwidth is the minimum available bandwidth that you can guarantee will be available at any given time. MaxBandwidth is the maximum your BW can burst up to for brief periods. Such as when several clients are joining and getting updates on teh condition of the island, missions progress, etc. Also, in the server.cfg, you have netstats=1 .. this should be in your arma2profile file, not the server.cfg. Netstats allows players to hit "I" to see the scoreboard during a mission. Share this post Link to post Share on other sites
oktane 0 Posted July 14, 2009 I think the simulation cycle is equal to 1 frame on the server? BIS: Please improve dedicated server documentation so that we can host high quality servers. The documentation regarding the bandwidth settings is at the same level it was in 2002. Could you provide any more information besides the usual cfg comments we've had since OFP? Without information, its mostly trial and error. We pay a lot of money and dedicate time to hosting servers for the community and we would appreciate any support you could give us. Can you explain how the QoS and bandwidth allocation works at least? Any hints on why the server crashes when too many people are joining/disconnecting? The reason man slots disappear on the server? Share this post Link to post Share on other sites
Mojo 0 Posted July 14, 2009 Official Response to the meaning of a Simulation Cycle "Simulation cycle" is what makes "frame" in a normal game. However, as there is no rendering on server, we cannot talk about frames, and we talk about simulation cycles instrad. One cycle break down approximately to:simulate all units AI simulate all units movement including collisions and physics detect visibility between units simulate scripts and FSMs receive network updates about remote entities send network updates about what has changed to the server (if on client) or to other clients (if on server) Share this post Link to post Share on other sites