Jump to content
Sign in to follow this  
bravo409

Can a mod make the Arma 3 engine run smoother?

Recommended Posts

Under the gazillion layers of post-processing that Battlefield has, lies a game that is very ugly, low-poly and static. I'm also interested what you mean by "offloading more to the GPU", I had this conversation back in alpha with people thinking GPU PhysX can run core physics on the GPU instead of just a bunch of eyecandy effects. Someone even said the AI should be offloaded to the GPU. :j:

BF4 has some of the cleanest, crispest assets around. Don't be a fanboy.

As for GPU usage, one of the major issues with ArmA is that way too much is on the CPU. Things that modern engines have moved to the GPU.

And considering that the AI in ArmA is an issue of scale more than complexity, if they could figure out how to use parallel processing on AI it'd probably work quite well. Of course it isn't that simple, but still. GPUs aren't limited to triangles.

And what makes you think the GPU can't perform physics calculations? If the GPU can calculate 10,000 little cubes tumbling around it can handle other physics calculations. The issue is creating a system that does that.

You seem to have a somewhat small perspective on computing. Just because we use the GPU for fancy effects doesn't mean it isn't an incredibly versatile and capable component for other stuff. You just have to be clever with it. I think AI on the GPU could be a genuinely interesting approach for the game, given how massively parallel GPUs are getting. And we all know there's a ton of room on the GPU when running ArmA 3. This would also free up the CPU for other things, potentially freeing up the bottleneck that currently exists. Even just getting pathfinding off of the CPU would help it's cluttered state

There are a lot of things in the ArmA engine that just haven't reacted to the new advances in hardware.

It's worth mentioning I get anywhere from 60-100 fps on a GTX 680 and a 3770k. On just about any map other than Altis, that is, which I've started to have some of the issues we had back when it was first released (asset loading and low fps). But I generally play on A2 maps so it's not that big of a deal.

While i am greatly in favor of offloading pathfinding to the GPU, there is more to ArmA AI than just pathfinding and you should not expect results anywhere near a techdemo.

Good thing that we don't need 10's of thousands. Even a couple hundred would be enough.

The major issues I see with the engine as it stands (in no particular order):

Too many things that should run on the GPU, both in cases that modern engines would normally use the GPU where they may not have before (lighting for example I believe has yet to fully move to the GPU) and in more creative applications. The issue isn't that the CPU is being used poorly but that the CPU is being relied upon too much for calculations that modern graphics cards are more than capable of.

Poorly optimized systems, such as the particle system. Too many particles are spawned where they are not needed, and yet I feel like I can't reliably get impact particles for semi-automatic fire at distance. The AI isn't TERRIBLE but it has room to optimize. And I'm sure there are other functions that could be trimmed without impacting the experience of the end user.

Poorly optimized assets. I can run Fallujah at max settings and 10-15k visibility while maintaining playable performance. Try that in ArmA 2. Or, on Altis. Most ArmA 2 maps run like a freakin' dream. They aren't the prettiest, in fact lets be honest most of them are plenty! More than anything the quality issues are from, well, quality of creation rather than the resolution or number of polygons. But I feel like we could get a good balance between the older assets and the newer assets. At least the older assets felt a bit more natural. Buildings looked like buildings, now they look too barren and simple.

Edited by MordeaniisChaos

Share this post


Link to post
Share on other sites
Proof of evidence that you can run 150 AI with good FPS and not lag? Make a video , tell us what you got in frames when 150 AI engage each other or put a video.

And please tell us what system you got , it's quite important I guess.

Making videos creates a lot of lag so FPS in videos are not always a great guide.

Have a look at this video of a mission that I produced recently

When this mission initialises there are 205 active AI, not all engage at the same time but they are all active on the map. In addition to the AI, there are lots of unmanned vehicles, loads of IED type explosions and active manned vehicles performing tasks including:-

2 x A164 and pilots

2 x AH99 and pilots

2 x HC3 Merlin and crew

1 x UH80 and crew

I'm also running Blastcore and JSRS 2.2 in the video.

My specs are:-

Intel Core i5 2500K Processor Overclocked to up to 4.6GHz

Asus P8Z68-V LE Motherboard

12GB PC3-10666 1333MHz DDR3 Memory (3 x 4GB sticks)

AMD Radeon HD 6850 1024MB Graphics Card

1000GB 7200RPM Hard Disk - 6Gbps

I have had some people complain that the mission was running at 6-7 FPS, but when I've checked, they have always had really outdated hardware. Arma needs good computers and plenty of RAM.

Obviously everything is not visible in the video but feel free to un-PBO the mission and check it if you want. I'll also happily set up a 75 v 75 infantry fight in broad daylight for you and video it and add it to this thread. Might be able to do that on Monday, will get back to you.

---------- Post added at 21:28 ---------- Previous post was at 20:36 ----------

I've just done a quick 80 v 80 fire fight at the airport on the big island. No performance problems that I noticed. I will video and post as soon as I am able.

Share this post


Link to post
Share on other sites
Under the gazillion layers of post-processing that Battlefield has, lies a game that is very ugly, low-poly and static. I'm also interested what you mean by "offloading more to the GPU", I had this conversation back in alpha with people thinking GPU PhysX can run core physics on the GPU instead of just a bunch of eyecandy effects. Someone even said the AI should be offloaded to the GPU. :j:

I think id go with multi threading before anything else.

Share this post


Link to post
Share on other sites
" good subject to debate about"

Implying there is any debate whether or not that arma has serious performance issues,

also you seem to act like this is magically shedding light onto the evil issue of performance that clearly obviously absolutely nobody knows about, its not.

There have been 3000 threads about bad performance, bad AI optimization this, bad GPU usage that, etc etc into infinity.

If you think that BI dont know how broken their engine is, you are really, really wrong.

They sit there programming and working on stuff for arma every day, they out of all people know best the problems their engine has, they may not fix it, doesn't mean they don't know.

You realize that they have to deal with the engine limits too, if they could break past them, add X or Y thing people have wanted for years, it would benefit them, they would get more money... no matter what you say about BI, they are a business.

Seriously though do we even need this thread, there are many other places to talk about the issues with performance, ones that are designated for them, you know, with a relevant title, shouldn't be too hard to find.

Share this post


Link to post
Share on other sites
Making videos creates a lot of lag so FPS in videos are not always a great guide.

Have a look at this video of a mission that I produced recently

When this mission initialises there are 205 active AI, not all engage at the same time but they are all active on the map. In addition to the AI, there are lots of unmanned vehicles, loads of IED type explosions and active manned vehicles performing tasks including:-

2 x A164 and pilots

2 x AH99 and pilots

2 x HC3 Merlin and crew

1 x UH80 and crew

I'm also running Blastcore and JSRS 2.2 in the video.

My specs are:-

Intel Core i5 2500K Processor Overclocked to up to 4.6GHz

Asus P8Z68-V LE Motherboard

12GB PC3-10666 1333MHz DDR3 Memory (3 x 4GB sticks)

AMD Radeon HD 6850 1024MB Graphics Card

1000GB 7200RPM Hard Disk - 6Gbps

I have had some people complain that the mission was running at 6-7 FPS, but when I've checked, they have always had really outdated hardware. Arma needs good computers and plenty of RAM.

Obviously everything is not visible in the video but feel free to un-PBO the mission and check it if you want. I'll also happily set up a 75 v 75 infantry fight in broad daylight for you and video it and add it to this thread. Might be able to do that on Monday, will get back to you.

---------- Post added at 21:28 ---------- Previous post was at 20:36 ----------

I've just done a quick 80 v 80 fire fight at the airport on the big island. No performance problems that I noticed. I will video and post as soon as I am able.

If you record gameplay with fraps, sure, your FPS will suffer. Look at something else. Something that uses h264. Those are usually fast and have very small penalty on FPS (5% or so).

2nd point I'd like to make is, try to shoot something. Arma is a shooter after all. The game isn't taxing in the graphics department.

I like to compare shooters to shooters, that means BF4/COD/CS:GO vs Arma 3. If I can't aim and shoot just as fluidly and quickly as in those games...it's a bad first-person-shooter. Performance-wise. 20 FPS just doesn't cut it in a fast-paced shooter. Aiming suffers immensely. Targets aren't exactly sitting ducks.

3rd point is your graphics card. 1 GB card. That card, I assume, wont allow high detail settings. So I suspect it falls back to low/standard settings. Which makes it look more like OFP/Arma 1. But its kinda a moot point. I can make the graphics look better but I'm still stuck with low fps no matter what setting I use for graphics.

My point boils down to this: The engine as the base has never been a good base. And tacking on new effects/gameplay elements etc on top of it, isn't making it better.

At some point the core system needs a rewrite.

And theres a reason some programmers today call the GPU GENERAL Processing Unit, not GRAPHICS.

Share this post


Link to post
Share on other sites

32 AI (4 infantry squads; 2/team), 1 IFRIT HMG + 1 MRAP (bluefour variant) with HMG, fighting in Kavala, 3-3,5KM view/object distance, all ultra => bellow 30fps, even low 20s.

2500k@4,5GHz, 7950@1135/1600, 8GB RAM 1600MHz, 1050p. Yeah, you can play around an add AIs here and there, with minor engagements, drop down view and object distance, object detail and so on in order to sustain the FPS at somewhat decent values. However, is that really ArmA? TBH, more than performance bothers me the stupidity of their actions or better yet: the lack of proper action (especially while moving, taking cover under fire, etc).

Edited by calin_banc

Share this post


Link to post
Share on other sites

We need a low-poly buildings addon soooo badly... :(

At this point it feels like only mod projects can alleviate those performance issues (just like in Arma2 and various perf' mods that were made for it).

Share this post


Link to post
Share on other sites

I like to compare shooters to shooters, that means BF4/COD/CS:GO vs Arma 3. If I can't aim and shoot just as fluidly and quickly as in those games...it's a bad first-person-shooter.

I don't think you can't compare Arma to those games because none of the games you mention are doing what Arma is. All of them are arcade-style shooters whereas Arma is a simulation-style shooter and unique in all it's features and possibilities. For example the AI in those other games is very scripted and not nearly as advanced as Arma's and the maps are very limited too in their size and interactivity. Sure you can say that Arma's AI still is not as good as it should be or even that it fails in certain combat situations, it still is head and shoulders above what other military shooters have.

I actually engaged in a interesting debate with someone who suggested that the Quake engine would be better suited for Arma than the Real Virtuality because it is high-quality code. But although I really respect the coders who made that engine I simply couldn't agree with that statement. While the Quake engine is undoubtly very flexible it simply isn't suitable for every environment and the type of game Arma is would be an example.

As it stands, the Arma series still stand unique among all other military shooter games, in spite of performance issues or lacking features. To put it this way: I'd rather play the original OFP over BF4 or the latest CoD. ;)

Share this post


Link to post
Share on other sites
I don't think you can't compare Arma to those games because none of the games you mention are doing what Arma is. All of them are arcade-style shooters whereas Arma is a simulation-style shooter and unique in all it's features and possibilities. For example the AI in those other games is very scripted and not nearly as advanced as Arma's and the maps are very limited too in their size and interactivity. Sure you can say that Arma's AI still is not as good as it should be or even that it fails in certain combat situations, it still is head and shoulders above what other military shooters have.

1. no, it's not a simulation, just a "hard core" version just as much as BF.

2. size isn't all. They've made the campaign in such a way that is full of loading screens so the performance it's better managed. Also the AI is scripted and limited in what they can do. Interaction wise, Red Faction and BF rule them all.

3. it's not about how complex is the AI, but about how well it creates the illusion of something "real" in that given environment. Try Fear (first from he series), you'll be impressed.

PS: Altis is 270km2, JC 2 is 1035km2.

As it stands, the Arma series still stand unique among all other military shooter games, in spite of performance issues or lacking features.

Totally agree. Hopefully it will get better soon! :D

Edited by calin_banc

Share this post


Link to post
Share on other sites
I don't think you can't compare Arma to those games because none of the games you mention are doing what Arma is. All of them are arcade-style shooters whereas Arma is a simulation-style shooter and unique in all it's features and possibilities. For example the AI in those other games is very scripted and not nearly as advanced as Arma's and the maps are very limited too in their size and interactivity. Sure you can say that Arma's AI still is not as good as it should be or even that it fails in certain combat situations, it still is head and shoulders above what other military shooters have.

I actually engaged in a interesting debate with someone who suggested that the Quake engine would be better suited for Arma than the Real Virtuality because it is high-quality code. But although I really respect the coders who made that engine I simply couldn't agree with that statement. While the Quake engine is undoubtly very flexible it simply isn't suitable for every environment and the type of game Arma is would be an example.

As it stands, the Arma series still stand unique among all other military shooter games, in spite of performance issues or lacking features. To put it this way: I'd rather play the original OFP over BF4 or the latest CoD. ;)

False.

If you were to play, on a similar size island, with 64 human players, with no AI whatsoever, you would still have lower performance than similar games out there.

No matter how much you want to beat the bush about, there are few things that are certain regarding performance and scalability: The game is far behind the technological norms of today.

I have heard this sort of reasoning for a long time now, and while in the past there was some truth in some of it (regarding computing power etc), today this simply doesn't fly anymore: from the lack of a proper multi-core support to the fact that textures and meshes are always streamed from HDD instead of RAM. This game doesn't run in optimal condition even without a single AI present.

Share this post


Link to post
Share on other sites

In terms of mapsize, I don't see how that really matters in most cases. You fire up BF4, you jump straight into action. The maps aren't all that small anyway.

64 players, how big a map do you need? Size of Altis? You would never see each other if everyone was 'doing their thing'.

IMHO, the difference between Arma 3 maps and BF4 is the time it takes to get to the action. Longer in Arma 3. The bigger map just makes all the space in between you and the AO just a transportation-question. Theres no content between the base and the AO. Why? Because servers (read: the engine) can't handle it. Too big a load. So why have it? Dice decided against it, BIS for it. Design-decision.

You have to have a focal point in Arma3, wouldn't work otherwise. A spot where everyone is, fighting AI or people.

Share this post


Link to post
Share on other sites
You have to have a focal point in Arma3, wouldn't work otherwise. A spot where everyone is, fighting AI or people.

it would already help if the artists and terrain makers would take the capabilities of their own engine into account. places like Kavala, as awesome as they might seem just as something to look at, are just unnecessary for gameplay because they are never even used. simply because for urban combat you need fast aim and arma just can't provide that in highly populated areas. so why bother?

open landscape on the other hand is not really a problem and also what makes arma unique. even Altis runs ok in those areas. i wouldn't be for getting rid of big terrains entirely. if i want exactly what battlefield does, i go play that because it's miles better at its specific thing than arma could ever be.

the question is why, eventhough to this day even places like chernogorsk run like ass, BI insist on stuffing lots of stuff in small areas. it can only be called poor judgement. when optimising big terrains every single detail adds up. i don't think arma would need to abandon its strengths entirely. the devs just need to either stop ignoring the issues the engine has with displaying the assets created for it or they need to fix those problems if they want to keep using assets in that kind of way.

i never felt like "boy i wish there was more stuff here" when playing in smaller towns/villages and places that the engine can actually handle properly. some larger buildings with detailed interior are more than enough to fulfill my CQC needs. not to mention AI being hardly more than pop up targets (in the best case) when placed inside buildings. so again. why bother with huge towns (compared to before) when there is no use for them and they run bad. it's like the terrain makers didn't get the memo about how the engine didn't progress enough to suddenly go nuts with objects.

Share this post


Link to post
Share on other sites

You need urban or "tight" CQC environments as well or it gets boring and probably way to much vehicle orientated. Avoiding them only shovels the problem under the carpet, not resolving it.

Share this post


Link to post
Share on other sites
it would already help if the artists and terrain makers would take the capabilities of their own engine into account. places like Kavala, as awesome as they might seem just as something to look at, are just unnecessary for gameplay because they are never even used. simply because for urban combat you need fast aim and arma just can't provide that in highly populated areas. so why bother?

Reading this reminded me of something. Have a look at this video. It seems there's textures and geometry in some classes of house that are not required. Is there any point to the textures in this attic?

If that is unnecessary then I hope they clean things like this up, to help with triangle count on screen etc.

Share this post


Link to post
Share on other sites

I think its not about whats there is the problem,we don't need to reduce anything in arma, we need to get occlusion to work like other games.

if that texture isnt visible, it shouldn't be getting rendered, I am sure that with the arma engine it probably is getting rendered.

No need to modify existing content when it shouldn't be a problem anyway.

Share this post


Link to post
Share on other sites

@DasA:: this might be related to the damage model. not sure though.

You need urban or "tight" CQC environments as well or it gets boring and probably way to much vehicle orientated. Avoiding them only shovels the problem under the carpet, not resolving it.

well i was merely advocating smaller towns. it sometimes feels like BI aren't "benchmarking" every area like devs of smaller games would do to their maps. i bet there are quite some small objects that could be removed. it sure would take a toll on visuals but that's the prize if the environment doesn't come with an engine that can handle it.

but i'm 100% with you on rather having the problem attacked on a more core level. if what PuFu said is true, and we are all no devs here, let's be honest, then maybe the sacrifice in terms of visuals wouldn't even be that big. i just think that too high object density will make any engine fail at some point. so well balanced density should go hand in hand with modernising the engine.

Share this post


Link to post
Share on other sites

Just some input on the way the AI works in ArmA, basicly the AI is operated by a FSM which runs all the time basicly in a loop which in its sleep state uses low resources because its not doing much. Unless something happens, when something happens, actions get activated its now computing what to do next, so it uses more resources obv, the FSM then tells the AI to choose what to do based on set conditions involved.

So basicly a simple setup would be like this

AI walking along like normal and gets shot at, FSM detects its under fire based on values in the config files, and instructs the AI to do something in response. The AI then chooses the action desired based on set variables such as is the enemy in range? Yes.

Possible Actions

Action = Shoot back

Action = Knows of enemy location, but cannot engage (out of range) > Find Cover > Flank Enemy > Engage

More possible Actions based on for example "out of range, cannot engage enemy"

Possible Actions:

Action = Flank (Based on cfg variables "courage")

Action = Retreat > same as above if the "courage" variable is low it will retreat more often etc.

Action = Find Cover > This is one of the problems i found when modding the AI FSM, because it results in them running around looking for cover nearby which is ok, its the most logical thing to do. However its flawed because once the AI has reached cover it will then look for something else to do, once it has completed that command, which the FSM then directs the AI back onto the question of "can it engage the enemy" if the answer is again "No" the FSM will then do the Possible Actions as listed above, sometimes the AI will pick the same action twice like "Find Cover" which is why the AI sometimes gets up out of random and will move to another cover spot because thats what it has chosen to do for that scenario because certain conditions were not met. Sometimes the AI will get lost in this action over and over again constantly using resources trying to find a solution to the scenario it faces.

Now when this .FSM runs in a sleep state like not much happening the AI is just using very limited resources. Which is why you can have many AI's in the map not doing anything just following waypoints etc. When its faced with actions thats when it starts to use more resources because its working more making decisions on what to do. As stated above it can get confused and lost in what its supposed to do.

I have tested this with my own private modded AI where they use a modified FSM and this limits the AI in finding cover, and directs them to other actions rather than running the same one again. The goal of this was to ease the resources on the actions the AI takes, providing them with a solution to an action which cannot be met, insted of being instructed to go back home and start again. With the changes i made the FPS did infact increase under combat conditions, the AI were not occuiped with finding cover and getting stuck in a loop, and insted engaging the enemy was given a higher priority, the result was interesting the AI were a lot more aggressive in their tactics to attack and engage targets.

But like most of my work i have not had time to finish this mod off, which i started making back in A2, because its the way its implemented uses other aspects of my private mods ive made which include weapon configs, animation changes and other mods related to core changes in the games design. Maybe one day i can finish off the rest of the mods but im currently maxed out on the visual fx atm.

So answer to the OP, yes its possible that you can make more FPS by changing things but its mostly experimental and can cause issues. And one thing will not always work without the other.

Edited by Opticalsnare

Share this post


Link to post
Share on other sites

In a perfect world, wouldnt AI do this:

Spawn in

(20 seconds of lag, loading screen for a bit longer, whatever you need to do, and: )

Ai know the closest cover to where they spawn, and when the wait somewhere for X seconds they should mentally find cover, so that can be stored and used when shot at or something,

Sounds really weird I dont know if I explained it well, but that is how real soldiers think.

When you go into somewhere you are thinking where cover is, where the enemy could come from etc etc

Share this post


Link to post
Share on other sites
I think its not about whats there is the problem,we don't need to reduce anything in arma, we need to get occlusion to work like other games.

if that texture isnt visible, it shouldn't be getting rendered, I am sure that with the arma engine it probably is getting rendered.

No need to modify existing content when it shouldn't be a problem anyway.

Exactly! Occlusion plus dynamic tessellation and DX12 should solve most of the problem. It is ridiculous to render stuff you don't see. For a quick test, it's enough to get into a house or with your face close to a wall/rock whatever and play around with the view distance, especially while looking towards a large part of the island.

well i was merely advocating smaller towns. it sometimes feels like BI aren't "benchmarking" every area like devs of smaller games would do to their maps. i bet there are quite some small objects that could be removed. it sure would take a toll on visuals but that's the prize if the environment doesn't come with an engine that can handle it.

but i'm 100% with you on rather having the problem attacked on a more core level. if what PuFu said is true, and we are all no devs here, let's be honest, then maybe the sacrifice in terms of visuals wouldn't even be that big. i just think that too high object density will make any engine fail at some point. so well balanced density should go hand in hand with modernising the engine.

If you reduce server side visibility and some client side options, you get playable FPS most of the time in larger towns, but you loose a lot of iq. Of course, if sever owners limit the number of players accordingly with the hardware they have, it helps as well. However, it seems they like low FPS themselves. :D

Share this post


Link to post
Share on other sites
In a perfect world, wouldnt AI do this:

Spawn in

(20 seconds of lag, loading screen for a bit longer, whatever you need to do, and: )

Ai know the closest cover to where they spawn, and when the wait somewhere for X seconds they should mentally find cover, so that can be stored and used when shot at or something,

Sounds really weird I dont know if I explained it well, but that is how real soldiers think.

When you go into somewhere you are thinking where cover is, where the enemy could come from etc etc

Unfortunately you cant know beforehand where the best cover is until you are being engaged. Like when you put down a bunch of objects as cover and an AI group in combat mode (without revealing enemies to them), and they take cover on both sides of the objects since at that point there is no 'good' side yet, because there are no one to hide form yet.

Share this post


Link to post
Share on other sites
Just some input on the way the AI works in ArmA...

Excellent. Thanks.

Share this post


Link to post
Share on other sites
Exactly! Occlusion plus dynamic tessellation and DX12 should solve most of the problem. It is ridiculous to render stuff you don't see. For a quick test, it's enough to get into a house or with your face close to a wall/rock whatever and play around with the view distance, especially while looking towards a large part of the island.

False. Some said the same thing before A3: if A2 would be dx12, all problems would be gone. Dynamic Tesselation allows you to increase the polycount, not reduce it. Oh, and you still need LODs.

The real problem is not the amount of draw calls, but rather the simple fact that arma is not buffering the content, but rather streaming it constantly. Afaik, the game uses some sort of object culling (or occlusion culling..)

But even with the way other games handle geometry outside the visible camera cone, would still be wrong here. I'll try to explain:

1. Let's say you camera FOV is 90 degrees. The game has at least 10-20 degrees already rendered, and even more in each direction ready for the renderer. That said, in arma engine, the real problem is streaming: you notice that when you turn around 180 degrees: the game needs to search, load and (maybe) buffer some of the textures and meshes you are looking at. Hence the FPS drops. In an optimal world, most of the game content that is used would be buffered at the load screen, and/or even after load screen, especially the ones that are not in effect in relation to player position. To give you an example, BF4 loads the lowest mipmap first, which is smaller, then interactively the rest.

There is a reason why for a fluid gameplay, your best bet is PCI-E SSD and/or RamDisk.

Unfortunately you cant know beforehand where the best cover is until you are being engaged. Like when you put down a bunch of objects as cover and an AI group in combat mode (without revealing enemies to them), and they take cover on both sides of the objects since at that point there is no 'good' side yet, because there are no one to hide form yet.

:D

don't bother all that much, you are right but speaking to the wrong person

Edited by PuFu

Share this post


Link to post
Share on other sites
awesome post

This happens on an individual level?

How do groups or vehicles think; havemind, grouping...?

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×