BMS 4.34 - Multiplayer Setup
-
BMS 4.34 - Multiplayer Setup
This is an recommendation by the BMS Dev Team, how to configure the server and the clients and what should be considered in order to get the best possible multiplayer experience.
This thread is not meant to discuss how to solve every individual installation. 1.1 GeneralAlways read the available manuals. You can find the documention in your BMS installation folder under “…\Docs”.
The preferred client connection type for Multiplayer in 4.34 is peer-to-peer (P2P) networking. There is no need to force Client-Server-Computing (CS) anymore. However, the new multiplayer code is able to handle both P2P and CS connections at the same time. As you can see from the chart, a CS client also gets its updates from the other P2P clients - only the routing is different.
The number of event packets that a single client sends or receives are equal in both cases (P2P and CS). Only the way a data packet takes, is sometimes directly, sometimes with an intermediate step via the server.
Due to the different routing, the transmission time from one client to another is potentially longer for CS, hence higher latency.Summary: P2P or CS makes no difference to the amount or type of data that a single client sends or receives. Only the way of the data (and possibly the associated bandwidth request to the server and the time that data packets need from A to B) may vary.
1.2 Installation
We recommend a clean installation (“VANILLA”) without any 3rd party modifications (theaters, aircraft, graphics, features, etc.) for server and clients. If you have successfully completed several multiplayer sessions, you can start to install step by step mods that are especially released for 4.34 and gradually checking that the multiplayer experience is not compromised. Yes, even if it does not appear at first, for example, even altered graphics can lead to problems in your Multiplayer environment.1.2.1 Backup
You can easily make a backup of your existing 4.34 installation:- Copy your current installation folder from e.g. …\Falcon BMS 4.34\… to …\Falcon BMS 4.34 (Backup)\…
- Start the official BMS 4.34 installer and select “Remove the product from your computer”
- Reinstall BMS to the same folder as before (e.g. …\Falcon BMS 4.34\…)
- Then copy dx9display.dsp as well as all *.lbk and *.key files from the …\Falcon BMS 4.34 (Backup)\User\Config… folder to …\Falcon BMS 4.34\User\Config…
- Do NOT copy other files or install 3rd party theaters as well as any other public mods
- Start Falcon BMS and check your controller, graphic and logbook settings in the simulation and you should be ready to GO.
If you want to use your previous installation again, just rename …\Falcon BMS 4.34\… to …\Falcon BMS 4.34 (VANILLA)\… and …\Falcon BMS 4.34 (Backup)\… to …\Falcon BMS 4.34\…
Next time you have again to rename …\Falcon BMS 4.34\… to …\Falcon BMS 4.34 (Backup)\… and …\Falcon BMS 4.34 (VANILLA)\… to …\Falcon BMS 4.34\…There is no possibility on the server side to check whether the installation of a client complies 100% with the recommendations. Here you just have to trust the people you want to fly with.
2.1 Server
The server delivers and receives data to and from all clients. The correct setup of the host is therefore very important and its possibilities also limit the maximum number of clients. If you don’t have a proper PC and internet connection for the server, you certainly will get issues in multiplayer.If possible the server should always be dedicated for hosting. Stop all programs and update routines in the background that could potentially affect performance or bandwidth.
2.1.1 Server falcon bms.cfg
Make sure that the parameters listed below are set as follows. All information in gray refers only to a dedicated server that does not participate in the mission.
If you host a mission as a pilot yourself, then only pay attention to the parameters in black letters.set g_bHiResTextures 0
set g_bUseAnalogIdleCutoff 0
set g_bReducePSFires 0
set g_bEnvironmentMapping 0
set g_bPixelLighting 0
set g_bVertexLighting 0
set g_bHdrLighting 0
set g_bHdrLightingStar 0
set g_bUseHeatHazeShader 0
set g_bUseMotionBlurShader 0
set g_bShowFarRain 0
set g_bShowRainDrops 0
set g_bShowRainRings 0
set g_bShadowMapping 0
set g_bCockpitShadows 0
set g_bFocusShadows 0
set g_bShadowOnSmoke 0
set g_bWaterNormalMapping 0
set g_bWaterEnvironmentMapping 0
set g_bEnvMapRenderClouds 0
set g_bEnvMapRenderFocusObject 0
set g_bHiResTextures 0
set g_bRequireSameAcdataMP 1
set g_bRequireSameTileSetMP 1
set g_nMPStartRestricted 0
set g_bServerHostAll 1
set g_nForceMinClientBwSetting 2048
set g_nRemoteControlSurfacesInterval 200
set g_bEnforceBandwidthLimits 02.1.1 Additional Server falcon bms.cfg settings These additional parameters can be added to the server’s config file if really needed.
g_bHostAllowsDubiousConnections 1 (Default)
Does allow dubious connections where port forwarding (2934-2935) is not properly set. However, in rare cases, ports may be forwarded correctly, but different port numbers are routed and shown in the Lobby. Nevertheless those clients are allowed to connect.g_bHostDisableP2pForDubiousConnections 0 (Default)
If activated, dubious connections will automatically be forced to CS although they would work as P2P. This can be set to “1” in case it is figured that a specific connection is causing issues and/or in case you’re hosting an “open session” with plenty of ppl you don’t really know, and want to avoid the need for “network debugging”. In those cases, “dubious” connections will automatically be forced to CS (even those who usually would work fine with P2P).Summary: The defaults are fine and preferred. There is no need to prematurely adjust these settings, unless you have specific connection issues that can’t be solved otherwise.
2.1.2 Bandwith Settings
Use a speedtest page like SPEEDTEST.NET and make sure your upload/download settings are 70% of your currently available bandwith.
(Example: 420670 * 70 / 100 = 294000 Download … 80940 * 70 / 100 = 56000 Upload)Remember that your connection can be different every time.
If you checked everything (firewall, ports, updates, background processes, etc.) and you are still having problems (pause, lags, hickups, times 2x, 4x, …) during a multiplayer session, try to get closer to the 90% mark. In this case please do several (minimum 4-6) speedtests in a row and take the lowest value of all. Then set the upload and download bandwidth in BMS initially to 75% (instead 70%), if that is not enough go for 80%, etc. - if you still notice no improvement even at 90%, then your internet connection or that of the server is just not enough. The only thing you can do after all is to reduce the number of clients.
2.1.3 Maximum Clients
Your “Upload Bandwidth” value divided by 2048 should give you the maximum number of clients your server is able to host.
(Example: 56000 / 2048 - 1 = 26)2.1.4 Server 3D
The Host always needs to commit to the 3D world first. If you are hosting the flight make sure you are in the flight that has the earliest take-off time.If you want to setup a Dedicated Server, it is best to create a separate flight for the server to use as its seat. Frag any flight (e.g. C-17 at Fukuoka) and put it cold on the ground on a very remote airbase outside the combat zone. Enter it before other flights commit.
3.1 Client
The client also delivers and receives data to and from the server and all clients. The correct setup of the client is therefore also very important.3.1.1 Client falcon bms.cfg
No special parameter settings are recommended here.3.1.2 Bandwith Settings
Use a speedtest page like SPEEDTEST.NET and make sure your upload/download settings are 70% of your currently available bandwith.
(Example: 48940 * 70 / 100 = 33000 Download … 5030 * 70 / 100 = 3500 Upload)Even if your Internet Service Provider has granted you a fixed bandwidth, remember that the actual bandwith can fluctuate. It is recommended to measure a couple of times throughout the day, and pick the “lowest” numbers as your baseline. Better safe than sorry, right!?
If you checked everything (firewall, ports, updates, background processes, etc.) and you are still having problems (pause, lags, hickups, times 2x, 4x, …) during a multiplayer session, try to get closer to the 90% mark. In this case please do several (minimum 4-6) speedtests in a row and take the lowest value of all. Then set the upload and download bandwidth in BMS initially to 75% (instead 70%), if that is not enough go for 80%, etc. - if you still notice no improvement even at 90%, then your internet connection or that of the server is just not enough. The only thing you can do after all is to reduce the number of clients.
3.1.3 Port Forwarding
Besides a stable (and fast) internet connection you will most likely need to open ports to allow BMS to work through it. Please refer to your router, firewall or internet service provider documentation on how to open up or forward ports.- BMS needs UDP ports 2934 and 2935 to be opened/forwarded.
- IVC needs UDP ports 9987 to 9989 to be opened/forwarded.
3.1.4 Client shown as P2P
It is very important that every client can see and is shown for everybody as “P2P” in the BMS Comms “Lobby” - otherwise it can limit your multiplayer experience. If you see someone as CS it means, that he will only get data from the server. He should check his port forwarding, restart BMS and reconnect.But if after checking all settings (firewall, port forwarding etc.) someone can connect only as CS, this can still be handled by the network code.
We hope this post, in addition to the information in the manuals, can help you to configure your multiplayer environment properly.
-
One thing I was pleased about in 4.34 (among others ) was being able to leave the sever in a cold jet and not worrying about it jumping out of 3d back to 2d, which has been a problem for us going back a few years. Even with changing timeout periods.
I must admit for the last year or so (late 4.33Ux series) I haven’t checked if that have become a supposition.
Nice write up Nick, what we have needed for a while.
Cheers
-
Gold, Nick. Thank you very much for all that.
-
Thanks Nick
-
Very Informative, thank you
-
Hi What’s about this option : " set g_bServer 0 // This option puts FalconBMS into Multiplayer Server mode. A server mode session can’t enter the 3D world " ?
-
Hi What’s about this option : " set g_bServer 0 // This option puts FalconBMS into Multiplayer Server mode. A server mode session can’t enter the 3D world " ?
This option should not be touched from default setting since the server needs to be in 3D? this option is a relic of the past when people believed they could make work a server in 2D
-
I think must be sticky!!!
-
This option should not be touched from default setting since the server needs to be in 3D? this option is a relic of the past when people believed they could make work a server in 2D
I’ll remove it
-
I’m coming to think of something else.
I’m hosting a dedicated server and a client on the same IP. Ports are naturally forwarded to the server.
Should I change my bandwidth settings to give the server a bigger percentage, and the client a lower one? Knowing that I have a ~600 Mbps DL and ~200 UL connection, I have the margin to do that, but I apply the same “better safe than sorry” values mentioned above for both.
-
I’m coming to think of something else.
I’m hosting a dedicated server and a client on the same IP. Ports are naturally forwarded to the server.
Should I change my bandwidth settings to give the server a bigger percentage, and the client a lower one? Knowing that I have a ~600 Mbps DL and ~200 UL connection, I have the margin to do that, but I apply the same “better safe than sorry” values mentioned above for both.
No, all fine to use same bw values for server and client in such case
-
Is there a particular way to interpret (LIMITED) on a player’s line in the list (server side)?
-
Might want to mention one of the most important things?
Maximize server FPS: it is inextricably tied to tickrate; FPS is the game clock
The devs say they run their MP tests on a server that gets 120 FPS. What does yours get? What is the minimum?
They also say a player-server hosting a campaign is not reasonable - because what happens when you fly by the FLOT in bad weather?
When FPS is low, MP code speed is reduced/packets wait in que.So besides placing the server at an airbase as far away from the FLOT/action as possible,
- minimize the graphical load: disable all shaders in configuration
- select lowest UI graphics settings except Object Detail & Object Density sliders (keep them at max!)
- I’ve been told lowering grass slider could cause AI taxi issues so I leave that default. Is this true?
- it should be committed to Ramp - (no avionics/not in ATC system)
- once loaded in 3d it should be set to the view to give best FPS. Satellite View (~) seems to be best, should prevent any clouds from being rendered.
Also, what about ddl’s that prevent draw calls? Using a server without a dedicated GPU?
https://www.benchmarksims.org/forum/showthread.php?24564-REL-dedicated-server-for-Windows-with-no-GPU&highlight=server+dll -
U can empty all dds files also. even terrain.
-
Awesome post. Thank you.
I’m having a problem with leaving the server in 3D. If I run the server with no clients, the server player will stay in 3D, however if I run with a few players connected, it drops back to 2D after some time has passed.
I usually find this out as AWACS stops responding for some reason.Any ideas? Is the server mission timing out?
-
It shouldn’t. What is the server aircraft doing?
-
Just sitting on the ramp for a training flight. Unfortunately, I never see it exit back to 2D as I’m flying. I presume it just ends and returns to 2D.
Do I need to set a long end time in the flight plan or something?
Sent from my SM-G965F using Tapatalk
-
Awesome post. Thank you.
I’m having a problem with leaving the server in 3D. If I run the server with no clients, the server player will stay in 3D, however if I run with a few players connected, it drops back to 2D after some time has passed.
I usually find this out as AWACS stops responding for some reason.Any ideas? Is the server mission timing out?
Open atc.ini (if Korea KTO: Data\Campaign) and edit PlayerBumpTime from 50 to 999999
-
Which shouldn’t be necessary for 4.34. I didn’t edit it, I stay on cold on ramp for hours.
There must be something happening on server’s home plate. Can’t tell you, probably in-game event.
-
This is why I always have the server eject, and @ the the “end/exit window” select “continue”.