Jump to content

The weirdness of ARMA and why


Tobias Solem

Recommended Posts

Ever so often when you deal with ARMA, ARMA2 and now ARMA3 you encounter stuff that seem inexplicable, whether it is someone able to take a lot more damage than what SHOULD be possible, "things" seemingly behaving randomly and other "things" just not working at all "for no apparent reason".

 

As much as we'd love to beliveve that this game is new and fresh, it is in many ways still the same old game with some coats of fresh paint. At the heart of it all ARMA3 is a big revamp of ARMA2, which in turn was a revamp of ARMA, which was a revamp of the original Operation Flashpoint, and at the core of that, everything is built from the military simulator VBS. 

 

There is code in ARMA3 that is severely dated, and while most of it has been polished since the original stuff, in essence we have to accept that this engine, while powerful comes with a lot of patchwork fixes built upon fixes. 

 

For example, there is still in system, essentially an event queue, or back-end wise a script-queue of sorts, when you fire a bullet at someone, this gets treated and handled by the server in a queue, and normally this is handled in an instant. But if you add 80 players doing things, building, using scripts, shooting, blowing things up, that queue starts to stagger, and even time out. What this can result in, is that a bullet fired at a target, while visible as a "hit" on the client, never gets handled by the server, at all.

 

The more code or custom scripts you throw at ARMA, the more it has to process. This is also one of the big reasons why someone who makes a mod such as Epoch does not want official servers to be modified from that state. Trying to track issues is bad enough as it is, custom content just becomes a complete chore to deal with, and tracing the issues is not just frustrating, it is immensely time-consuming and fruitless.

 

Unfortunately Bohemia still has not made a big overhaul of ARMA3 binaries, client- or serverside. This means that your 8-core process will not really be handling the game efficiently. Sure, it has been improved so that you aren't stuck with the same issues you had with ARMA2 where getting 60fps consistently even on modern hardware sometimes could be problematic, but still - there are plenty of issues, and getting a good FPS in ARMA can still be a problem because of how patchy this game is.

 

This is something to really consider when you run into issues with Epoch, a lot of what you might think is an issue with the mod (fires not appearing, bullets not registering, doors not opening in time, etc. etc.) really is issues with the arma3server binary using multithreading like a newborn baby using a screwdriver. Yes it can grab a hold of it and "use" it to an extent, but not for its main purpose, and not effectively. And unfortunately the same thing goes for the client (the game you are playing). 

 

So why am I writing this post? Well, it is in part directed towards all the new players of ARMA3, but also to the people who are veterans that might be wondering about things. I see from time to time people thinking stuff that are engine-related issues complain about "script kiddies" or "hackers". As an admin myself I observe a lot of players, and I've handled enough reports of cheating to know that, while this game at the core is EASY to break apart in terms of cheating; there isn't THAT much going on, at least not as much as some would make it seem.

 

Allow me to make an example, there was a firefight at ZNU02 (our server) when the server was full. I was spectating players and there was a lot of thing going on to say the least, some group had crashed a chopper, others were blowing up gas stations (because explosions are fun) and others had recently crashed a car, and there were firefights going on, with lots of sappers (because sappers love action as much as players do) and there were AI spawned because someone had killed a trader.

 

And then there was this firefight between two groups, clientside everything was running smooth, but the server was processing a lot of information (obviously), and this firefight had a lot of bullets flying, automatic fire from hipfired machineguns, some sniper fire... basically bullets flying in both directions. After a while bodies were falling, and the fight was over, but then the bitching started going on in local, and calling out for admins (me and my friend) to ban "the hackers". 

 

Since I had been spectating the fight it was pretty obvious to me that neither of the groups were using any obvious cheats, what was obvious to me though was that there are issues with the engine. A .408 sniper bullet hit a target, center mass,  dead on, and it took zero damage. The same player ran a 50 meters extra and got hit by some more bullets and died. Worst cheat ever? No, the sniper bullet simply never got handled by the server. And this is a server with plenty of cores, an Intel Xeon processor, more RAM than you could ever use and SSD-drives, and all that jazz, not your run of the mill crap. The CPU usage consistently is at around 30% when maxed out, with half the RAM in use. However if you look at how the cores are used, apart from one core being almost maxed out, the others are barely utilized. Which essentially means that the game relies more on each core clock than the amount of cores. Which is counter-intuitive when it comes to server-side development where tasking new operations to different cores, and effectively multi-threading is a big part of what server hardware is good at.

 

So when you play this mod, in this engine, on ANY server, keep this in mind. I'm not saying you have to accept it, but in some cases you should not assign blame to the developers, the server, the admins, BattlEye, or script kiddies, you should assign it to Bohemia Interactive. And while they have made some wonderful software in many regards, it is still a leaking sieve and hugely sensitive to bad coding principles (while-loops, etc.) and with many limitations, many of which are responsible for your encounters with weirdness. That particular weirdness that the old dogs of this game have come to hate in spite of a love for the engine and the game in its open world strengths. 

 

So please bear all this in mind the next time you run into glitches or issues. Try to reproduce bugs, because "random" occurrences might be the engine or the server having a hiccup.

Link to comment
Share on other sites

Thank you so much for an informative and balanced article, (I do not mean it to sound like you are Fox news by the way :D ).

I am a recent convert to gaming through Dayz mods so have limited experience in other games and other engines and mechanics of gameplay; i may also just be more pragmatic about my experiences, but I definitely think oh dear arma, (BI), rather than oh dear hackers.

This does not stop me often 'praying to the arma gods' when i am in a sticky situation looking for just the right piece of loot and my 'prayers' are frequently answered, just not often in the way i expect.

May I exhort you to write more in this vein for the elucidation of us all!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Discord

×
×
  • Create New...