BeamMP Replication Feedback

The replication in BeamMP (copying from client to client) is really messed up. I play with my friend frequently and when we get into a big crash or something exiting happens, we compare each other screens and see how different something is. If we get into a crash, my car will be completely ripped up but on his screen it might be completely different and my car is untouched. Or, it might be small things like his car is on fire for me but not on my screen. This is really annoying and makes the game less enjoyable to play considering that the whole point of BeamMP is multiplayer.

It would be awesome if they could fix this or make it better. I don’t see this happening in any other games. Please fix!!!

This is called desynch and can be caused by a number of issues with your server, local internet connection, or BeamMP. I belong to a massive recording team and I can assure you that more often than not our damage is mostly synchronized. You may need to look at more local causes, especially if fire is desynched, like the strength and speed of your internet service provider and the strength of your computers.

Aside from that BeamMP is run, created and supported by volunteers. If you can think of a fix for this issue we invite you to give it a go and share your results and method with us so we can implement it. Right now our Development and Infrastructure teams have full plates and, as volunteers themselves, we cannot ask them to take on anymore work.

Let us know if you figure out a fix and we’d be happy to pull you into a staff server to review your work and evaluate it for addition to the platform.

Hey! Thanks for the response!

This happens on multiple servers and not just one. Thanks for replying.

Yes, this is a system wide effect of how Multiplayer works.

I would also like to add that the physics engine is non-deterministic, meaning that it completely depends on one’s framerate. If you would compare a crash at 30 and at 60 FPS you would find that they differ significantly. If you would like a fair, similar or even consistent results you would have to have a look at this:

Oh

Oh my â– â– â–  that explains so much of what happens in our recording sessions.

So really the client processes, the crashes in the physics?

Correct, always. Everyone’s screen is unique. It would be a massive relief for clients if the server processed every physics tick instead - think of Minecraft server’s render distance - you don’t get to load it, the server does, which is why you get better framerates. But alas, in BeamMP, so far the only thing that the server does is pulling the player vehicles along their last pinged position, so if they have connection problems, there is only so much a prediction can do - they might be braking while on your screen they crashed into a wall.

Hmmm. This seems flawed and I feel like other games solve this but I don’t know and why can’t the server process it?

You see, if there were server side physics, then every single queued edit will freeze everyone, instead of only those who applied that queue. Sure, maybe you can mitigate it by having a crazy expensive server running on threadrippers, but eventually it all comes down to the base game which doesn’t manage multithreading very well, so there’s not really anything BeamMP guys can do much about the fundamental flaws of the BeamNG. :crazy_face:

The game itself has been in active development for over 10 years and ever since they switched engines (CryEngine 3 to Torque3D, though it’s just GameEngine or BeamEngine internally now), they’re still in the process of unspaghettifying (rewriting) their code… ever since, as evident by their dev blogs on the forums, you know, “oh hey, we cleaned up and optimized this piece of junk which was left there like 5 years ago haha”. :grin: And with the development approach they’re taking - I will be blunt and honest, do not expect your feature requests to be fulfilled any time soon, they will have to rewrite their error riddled game from scratch to have ANYTHING new, and that is something that they cannot afford, it’s time, effort and a lot of money. Plus, every single community contribution will go to waste, not to mention their “BeamNG.tech” thing that 1 or 2 universities use “technology” of. You see, they’re aiming for backwards compatibility, and usually it’s fine, but BeamNG’s code NEEDS to change when they cannot keep adding more weights to the sinking ship, even if it means sacrificing almost 10 years of mods. It will be worth it, but ONLY if they will do it as soon as possible and not before the release, unless their aim is for overwhelmingly negative reviews. So, those “most other games” are EXCLUDING BeamNG, perhaps, maybe for the better. Everyone should mix it up a little and never stick to playing just a single game! If one is to sim race, play everything and all, but carry on after you’ve been disappointed by the ever so feature-less BeamNG and developer’s future-less approaches. Everything you ever wanted has been done elsewhere. Audio raycasting? Nope, we’re sticking to the 1x1 meter sphere where the driver seat is, that’s just a DSP filter which is trying to have that “interior” or “cockpit”, if you will, sound, that may or may not sound extremely off and bad because… there’s only so much a simple filter that muffles certain frequencies can do. It’s so primitive and so basic, because those are TEMPLATES! Well, most likely, that is… We’re all playing a flawed, glitchy and raw product. :face_with_monocle:

And I may rant and ramble autistically for quite a bit now, but I’ll give you an example: as much as we all love this game, it’s actually really not impressive physics-wise at all, the mere thing it’s claiming to be good at, at physics! For instance - tyres! Every other game that is a real simulator has some sort of tyre simulation, whereas BeamNG has none! It may simulate centre of mass shifting dynamically with weight distribution and load, say, quite well while handling corners, okay, it may simulate brake discs heating up and fading the hotter they go, okay, but NONE of that matters when it doesn’t REACT in the slightest with the tyres! Extreme load (weight or gravitational forces!) don’t pop the tyres! And we literally drive our cars with their collision disabled because the “selfCollision” and “triangleCollision” are always set to false for all NON-offroad vehicles, apparently. Moreover, if you take a look at the wheels traction and collision coltris debug in the vehicle configuration menu, you’ll notice that it’s literally just 4 fluctuating POINTS of traction instead of PRESSURE points across tyre’s treads and blocks! I used to rant about this so many times, but apparently there’s always much more important things than GETTING A GRIP, ha, get it… Last tyre update was in 0.21 which was over 4 years ago at this point! iRacing does it well, they even have the “dynamic track” thing, and I’m such a nerd for this - MOLECULAR ADHESION, which BeamNG won’t have in 10 years. As for indentation, I must say there is some viscoelasticity in tyre’s rubber but it’s very… unrealistic, as expected from the amount of beams and nodes a tyre has, it’s almost a hexagon, actually, I bet the Flinstones have a much more smoother ride than BeamNG’s effort-less attempt at simulating that. I mean, personally, it’s outrageous. The only thing that can alleviate my pain is that tyre thermals & wear mod - shoutouts to them, and even that isn’t enough, because obviously we shouldn’t even have to make mods for such a basic need in a simulator game in the first place. And please don’t get me started on STATIC, KINETIC and ROLLING friction coefficients that they absolutely butchered on the whiteboard, as well as hydroplanning and hydrodynamic frictions that we don’t see in the game’s “formulas” at all, because in BeamNG the property of the SURFACE defines fluid friction, and friction in the water is defined by DRAG for some reason, and, oh, speaking of drag coefficients, you’re gonna love this - the reason you don’t get to fly a plane too fast before it falls apart is because of the aerodynamic drag coefficients that, on one hand, gives you that distinct handling that BeamNG has and, on the other hand, severely reduces acceleration and top speeds, perhaps too much. And this is exactly where nondeterminism comes to play - jbeams tend to stretch at high speeds, so modders would limit the RPM of a propeller, for example. You can, however, edit beamStrength property with an “FLT_MAX” value, which will make them indestructible so that you can theoretically fly faster. If you are an OG player, you will remember that there were mods for helicopters that used to fly better than they are now, that’s EXACTLY because of those drag and friction coefficient updates that didn’t make things any better. I always hated that in this game. That, and the multithread situation that they MUST handle. It really begs the question though - with this future they have envisioned and where they are now, how are they going to explain these flaws which make the game so unrealistic to the actual engineers at ASAM that they’re associating with, to the driving schools that unironically use BeamNG.drive as well as BeamNG.tech in their driving evaluations and training, to the people that they, BeamNG GmbH, advocate their technology to, and it’s not JUST somebody, it’s LITERALLY the guys behind SOTIF and ISO 26262 standards, remember? The ones who made your traction and stability control and so on? Seriously, BeamNG thinks they’re good enough to be evaluated for real-world scenarios? No, they should keep it being a GAME only and not something to gather information from, we have better simulators for this, we have actual cars for this! F’ing hell, they’re suggesting for people to have a look at their autonomous driving innovations when the AI traffic is completely and utterly brain dead. Ugh. We have exhaust temperatures, but it doesn’t react with other cars’ radiators behind. We’ve got so many tiny moving mechanical parts in a real vehicle that are only just simplified and simulated in BeamNG and then covered by animated models, such as the driveshaft, belt and pulleys (that don’t do anything), radiator fans, butterfly valves, that’s about it really, we don’t even have the easiest thing to make that’s supposed to be functional on our windshields! All in all, I might only understand why they’re partners with AUDI, I mean, they’re notorious for their audi steer, perhaps that’s where BeamNG took inspiration from to make us hate everything in the game. Anyway, I keep saying this but every time I see new peeps that just don’t know - graphics, UI and audio all use 3 cores by default, so when you spawn a car you’ll have 0 cores remaining on a 4 core CPU, which is also incredibly stupid and flawed, unfortunately, so if you have framerate problems - there is NOTHING you can do, you either get a new computer or wait maybe another 10 years, and NO, do not “unpark” anything or twinker with the CORE 0, that is your system core that knows better how to handle itself, it will give away its resources once you enter a so-called “EXCLUSIVE FULLSCREEN” which BeamNG doesn’t have because of many reasons, a few of them being MICROSOFT existing and the other very interesting coding methods that BeamNG chose AGAIN. I could be wrong but Rigs of Rods, THE game that BeamNG was inspired by is actually doing BETTER in terms of multithreading than this laggy mess where the whole UI gets its own allocated core because their past engineering student code is so unoptimized they just didn’t bother and called it a day. But of course, eventually, sometime, any moment it’ll get fixed… Once we get all the necessary trucks, map decorations and literally unplayable important decals sorted, duh. Sorry… :nerd_face:

Ah ok makes sense now thanks for the response and thorough explanation!

Have a good one!

1 Like