Jump to content
Sign in to follow this  
bravo409

Can a mod make the Arma 3 engine run smoother?

Recommended Posts

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 (occlusion is really not the term here)

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.

Yes, object culling was what I meant to say, got mixed up in terms. Sorry.

Dynamic tessellation means you have the object in low poly to start with at distance and increase as you move closer. They are doing something that resembles this with the trees. DX12 will allow for more objects to be rendered, ergo not such an empty world as now or just much better performance with what it is. Object culling combined with the previous, would mean you don't get low fps when basically what renders on screen is just a small size of the whole, while going for a full birds eye view, dynamic tessellation and dx12 should keep smooth performance.

Indeed, we still need 64bit as well. Even now the game is crashing if you go with 8xmsaa and close to 400% screen size :D. I've notice the drop in FPS when you look around, even in Day Z stand alone, however one my friends has it on SSD and still happened to him. Granted, last time I've played, the situation has improved.

Share this post


Link to post
Share on other sites
This happens on an individual level?

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

I'd like to know this too. Other sims handled vehicle AI much better in the 1990s. Maybe as early as M1TP1, which I never played (!)

Share this post


Link to post
Share on other sites
Yes, object culling was what I meant to say, got mixed up in terms. Sorry.

No worries, it is also called occlussion culling (although the emphasis is on culling ;))

Dynamic tessellation means you have the object in low poly to start with at distance and increase as you move closer. They are doing something that resembles this with the trees. DX12 will allow for more objects to be rendered, ergo not such an empty world as now or just much better performance with what it is. Object culling combined with the previous, would mean you don't get low fps when basically what renders on screen is just a small size of the whole, while going for a full birds eye view, dynamic tessellation and dx12 should keep smooth performance.

dynamic tesselation is not a save it all. As i said, it needs a displacement map (so one more draw call per mesh object - similar to bump and normals map), lower visual lods for distance. Yes, the transition between lods can be handled by tesselation if needed, so it can be a smoother from a visual pov.

But then again, it is useful mostly for organic meshes, not for the hard surfaced ones.

In arma's case, i see it work properly only on terrain and maybe vegetation.

Indeed, we still need 64bit as well. Even now the game is crashing if you go with 8xmsaa and close to 400% screen size :D. I've notice the drop in FPS when you look around, even in Day Z stand alone, however one my friends has it on SSD and still happened to him. Granted, last time I've played, the situation has improved.

Streaming from ssd can provide a smoother experience (less fps fluctuation due to smaller bottlenecks for streaming), but does not fix the stability and cpu and gpu handicap.

While i am all for 64 binaries, it is again not sufficient unless the way the assets are handled by the game engine is changed. Also, you can stream data in a lot of ways, arma is stuck with the way things had to be handled back in the day when amd 64 and pentium 4 was the norm. There was 2-4k textures, there was no 32k tris meshes that needed to be loaded on the fly. Remember that the read/write times for mechanical drives has only improved marginally versus the size of hdds. The hdds back then were ide indeed, but they were still 7200rpms for a vast majority

Share this post


Link to post
Share on other sites

Yup, I agree. Thanks for shedding some extra light on things. Generally it's a "fix" that requires multiple levels of improvement, not just one. Next gen game, next gen technology.

Share this post


Link to post
Share on other sites
Yeh this is for individual units, im not sure how the squad level works. I only worked on the single unit types at first.

Theres more info here about it https://community.bistudio.com/wiki/FSM

I would like to expand on this a bit:

There are several 'layers' to the AI:

The bottom layer is hardcoded, and contains the low-level stuff like making AI play animations when moving, line-of-sight calculations, low-level behaviour, and pathfinding (calculating the actual path the AI takes). AFAIK the decions AI leaders make are also here.

On top of that there are FSMs: These mostly govern behaviour, stuff like bounding overwatch during combat mode, engaging targets, etc. These can be changed, but i dont know to what extent the default ones can be accessed in ArmA3. I am not aware of any addons touching these, but i have been somewhat absent lately. I have tried this in the past (ArmA1 mostly, bit in ArmA2, IIRC it was introduced in ArmA1) but i found it very difficult to get a measurable improvement, and i assume most modders had the same experience. (A lot of people are much more talented than i am, so without any mods changing this for the better i am going to assume that it is impossible to do without getting paid to do it 40 hours a week)

And on top of that there is another layer: Orders, like forced behaviour modes, waypoints(not the same as pathfinding, this decides where the AI should go, not how they move there) or targets given by the mission editors or scripts. Most AI addons exist in this space, and basically pile the desired behaviour on top of what is already there, and can clearly get some good results.

Besides that there are a whole lot of configuration settings that govern things like spotting ability, engagement ranges and formation distances that influence AI behaviour. A lot of good AI addons also change these.

Edited by NeMeSiS

Share this post


Link to post
Share on other sites

Yeah the impression OS gave here is somewhat misleading. FSM are actually only a very minor part of AI computation or handling.

This can be seen easily as the default FSM are very simple and largely dont even use most of the events.

Share this post


Link to post
Share on other sites
dynamic tesselation...In arma's case, i see it work properly only on terrain and maybe vegetation.

now that would be awesome. i remember this article about how "just cause" handled the terrain mesh. was quite interesting. maybe i can find it again.

Share this post


Link to post
Share on other sites
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.

You know what is funny? Arma 3 runs really well for me in the Editor. Even if I place myself somewhere around Kavala and look into the town the game runs solid at 60 FPS. As soon as I launch a Scenario with AI fighting and driving it drops to 30.

I7 2600k overclocked to 4,3Ghz.

Could proper multicore support help in those situations?

Share this post


Link to post
Share on other sites

As promised, 160 ai fire fight where they all engage at once. No 'lag' that I felt would spoil your enjoyment, no delay on firing guns etc

My computer is 3 years old and my graphics card is modest so I'm not running with maximum eye candy and my own opinion is that I'd rather have a lower level of detail with more action.

I stick to the opinion that with 160 active ai, (plus some scripting to clean up bodies and destroyed vehicles and some scripting to spawn additional replacement ai) I can do most things that I want to do in Arma 3.

Share this post


Link to post
Share on other sites
;2776869']Yeah the impression OS gave here is somewhat misleading. FSM are actually only a very minor part of AI computation or handling.

This can be seen easily as the default FSM are very simple and largely dont even use most of the events.

Yea sorry i didnt mean to make it sound that the AI are purely based on the FSM, but if the other elements of the AI settings are hardcoded its really no good to us. I tried everything config related to increase the performance but its was slight, i expected that by limiting the amount the AI will search for cover and failing to do so, which results in the same action being repeated must use resources which are unnecessary?

insted moving onto a different action which does have a positive outcome should surely free them up from getting stuck in same routine. Im pretty sure when i did make the changes to the FSM and used heavy modified config files that the game ran smoother with more AI. One of the issues was the AI was bit rambo.

Edited by Opticalsnare

Share this post


Link to post
Share on other sites

Doing a better handling of the available AI FSM(s) could indeed have some potential for better performance

and especially better behavior or situation specific reaction.

Unfortunately there is very little of AI code exposed and the config parameters can only do so much (and take a lot of time to tweak).

Share this post


Link to post
Share on other sites
As promised, 160 ai fire fight where they all engage at once. No 'lag' that I felt would spoil your enjoyment, no delay on firing guns etc

My computer is 3 years old and my graphics card is modest so I'm not running with maximum eye candy and my own opinion is that I'd rather have a lower level of detail with more action.

I stick to the opinion that with 160 active ai, (plus some scripting to clean up bodies and destroyed vehicles and some scripting to spawn additional replacement ai) I can do most things that I want to do in Arma 3.

you should do that test with waypoints around urban environment. putting them all on a runway were all they do is go prone and shoot at each other says next to nothing about AI performance. problems mostly appear when there's actual work to do like finding their way around complex urban areas.

i'd probably agree generally on what you said about mission design. but still. consider all the discussed advancements being applied plus AI optimisation. all the pieces form a pile. one shouldn't underestimate one part of the problem just "becuz playable". one of the main problems of the game is real time scaling. so once a mission would move into urban areas the performance would drop. while that kind of inconsistency is somewhat normal, it's unusually extreme in arma.

Edited by Bad Benson

Share this post


Link to post
Share on other sites
As promised, 160 ai fire fight where they all engage at once. No 'lag' that I felt would spoil your enjoyment, no delay on firing guns etc

My computer is 3 years old and my graphics card is modest so I'm not running with maximum eye candy and my own opinion is that I'd rather have a lower level of detail with more action.

I stick to the opinion that with 160 active ai, (plus some scripting to clean up bodies and destroyed vehicles and some scripting to spawn additional replacement ai) I can do most things that I want to do in Arma 3.

you should do that test with waypoints around urban environment. putting them all on a runway were all they do is go prone and shoot at each other says next to nothing about AI performance. problems mostly appear when there's actual work to do like finding their way around complex urban areas.

Like Bad Benson says, put them in a city. In Kalvala most likely you'll go under 10fps if they all engage at once (of course, with view and object distance and details above minimum). Anyway, a recording it's smoothing the action, the stuttering, lag and so on. You can only really see it bellow 15-20fps and says nothing about fine input controls via mouse, especially when firing in situations that require a great deal of finesse. Try and use a method in which FPS can be shown on screen.

Edited by calin_banc

Share this post


Link to post
Share on other sites
you should do that test with waypoints around urban environment. putting them all on a runway were all they do is go prone and shoot at each other says next to nothing about AI performance. problems mostly appear when there's actual work to do like finding their way around complex urban areas.

i'd probably agree generally on what you said about mission design. but still. consider all the discussed advancements being applied plus AI optimisation. all the pieces form a pile. one shouldn't underestimate one part of the problem just "becuz playable". one of the main problems of the game is real time scaling. so once a mission would move into urban areas the performance would drop. while that kind of inconsistency is somewhat normal, it's unusually extreme in arma.

Like Bad Benson says, put them in a city. In Kalvala most likely you'll go under 10fps if they all engage at once (of course, with view and object distance and details above minimum). Anyway, a recording it's smoothing the action, the stuttering, lag and so on. You can only really see it bellow 15-20fps and says nothing about fine input controls via mouse, especially when firing in situations that require a great deal of finesse. Try and use a method in which FPS can be shown on screen.

I accept the points you guys have made and everyone accepts that improvements to both engine performance and AI behaviour are both desired and needed. But the fact is they are unlikely to happen in this version of Arma.

Is the game effectively unplayable with large numbers of AI active as some are suggesting?

No, I don't accept that. Asked to provide evidence of large numbers of AI operating without significant lag, I've provided one mission vid with 200 active AI and multiple vehicles and when this was said to be insufficient and inaccurate, I've provided another with all the AI in action at the same time.

I can't keep making videos to demonstrate that the game runs fine for me, those with AI and performance issues (perceived or actual) will continue to have them regardless of my input.

I agree that doing more complex and involving things with AI would be great but I suspect that all that stuff is further down the line and beyond the allowed reach of community modders. Making AI just stay in buildings seems almost impossible without disabling their simulations - everything else mentioned would surely be at a level of complexity way beyond that simple task and most likely within code that is not accessible to the community.

I accept the game is not 'optimised' either in the sense of its performance or AI behaviour but I don't see that as an impediment to enjoying the things it does offer. Although I'm fairly new to the Arma series my impression is that the game has never been perfect and everyone who interfaces with it does so with an acceptance and understanding of its obvious flaws.

TL;DR Hope for better in Arma 4 - enjoy Arma 3 as you can.

Share this post


Link to post
Share on other sites

Is the game effectively unplayable with large numbers of AI active as some are suggesting?

No, I don't accept that.

You don't have to accept that, it's a fact. On one hand, playability may vary: some can enjoy a game as long as it "feels" smooth enough. That can be 25-30 fps or 40-50fps as the bellow limit. On the other hand, you can manage that AI and mission in such a way that you avoid huge confrontations at once, more so in towns. Is the last part a "solution"? It might be, however not for all. I can't GVR to show fps on screen, but last time I've tried in Kavala, a few dozens (never minde 100 or 150) AI brought the game to 20 or bellow, depending on numbers. And that was on 2500k@4.5GHz.

Share this post


Link to post
Share on other sites

Some people hit the nail on the head and others seem to be out of touch w/ reality for this thread. The root cause of all the FPS complaints is simply that the AI is computed via a single-threaded process (there are other computes going on for this thread as well) and AI calcs have to be made before your CPU can send the required info to the GPU so it can draw the frame... there are a lot of things that happen in series and not parallel in this game. The biggest improvements would come from either making the AI thread multi-threaded so an i7 can process it across 8 threads or to offload some of it to the GPU. As people mentioned GPUs can crunch more than just textures/polygons. Sure you have to code it, but GPUs are orders of magnitudes more powerful than CPUs for number crunching, they just aren't as versatile and require more defined input to provide a desired output. I can go from 90fps+ w/ max settings with draw of 1600/1200/100 FPS on an empty map to <20fps with significant active AI on the map (not even in my FOV).

I'm not saying you can't turn up the eye candy and reduce draw distance to be GPU limited in this game, but going max settings and large draw distance w/ any amount of AI and you will be CPU limited.... no mod or quick-fix is going to help you there.

4770k @ 4.4ghz (getting ready to pick up a 4790k just for this game.. hoping for 4.8-5.0 H2O2 OC

8GB 2133

2x SLI 770 4GB

SSD

Share this post


Link to post
Share on other sites

Wanna play with low fps....buy nvidia card and a g-sync! ;) cheating, expensive way! ;) don't go lower than 35 fps and you will be fine! jk

Share this post


Link to post
Share on other sites
now that would be awesome. i remember this article about how "just cause" handled the terrain mesh. was quite interesting. maybe i can find it again.

It would simply allow better micro details such as ditches, small humps etc, and overall a better feel of the terrain, semi-independent of the grid size.

You know what is funny? Arma 3 runs really well for me in the Editor. Even if I place myself somewhere around Kavala and look into the town the game runs solid at 60 FPS. As soon as I launch a Scenario with AI fighting and driving it drops to 30.

I7 2600k overclocked to 4,3Ghz.

Could proper multicore support help in those situations?

The game used to behave the same way for me a few months back: Editor would be working as expected, but as soon as there would be any AI in a mission (including the scenarios and MP), my FPS would be capped at 30 for some reason. (i7 2600k@4Ghz +SSD + 780 3GB / i7 970@4ghz + 6890)

Nowadays, even a humans only MP game, for 80 people, no Ai, very few scrips etc doesn't have a stable FPS, even if neither the server nor the players have to deal with AI computaiton, no matter of the visual settings i use. The FPS is all over the place.

Some people hit the nail on the head and others seem to be out of touch w/ reality for this thread. The root cause of all the FPS complaints is simply that the AI is computed via a single-threaded process (there are other computes going on for this thread as well) and AI calcs have to be made before your CPU can send the required info to the GPU so it can draw the frame... there are a lot of things that happen in series and not parallel in this game. The biggest improvements would come from either making the AI thread multi-threaded so an i7 can process it across 8 threads or to offload some of it to the GPU. As people mentioned GPUs can crunch more than just textures/polygons. Sure you have to code it, but GPUs are orders of magnitudes more powerful than CPUs for number crunching, they just aren't as versatile and require more defined input to provide a desired output. I can go from 90fps+ w/ max settings with draw of 1600/1200/100 FPS on an empty map to <20fps with significant active AI on the map (not even in my FOV).

I'm not saying you can't turn up the eye candy and reduce draw distance to be GPU limited in this game, but going max settings and large draw distance w/ any amount of AI and you will be CPU limited.... no mod or quick-fix is going to help you there.

4770k @ 4.4ghz (getting ready to pick up a 4790k just for this game.. hoping for 4.8-5.0 H2O2 OC

8GB 2133

2x SLI 770 4GB

SSD

What i am trying to prove here is that even without AI, the game does not perform as it should. And since the engine is the culprit here, and that is not accesible to mods, i fail to see how anyone could do anything about it.

Oh, and btw, if you say multi-threaded AI, i would assume getting more cores to handle AI (IE: if 10 AI present - 1 core workload, if 50 AI present, 3 core workload etc), not to devise all AI computation across more threads, because you will end up with idle cores/threads waiting for the first core thread to end up the number crunching before it can move to the next.

Regarding GPUs, while the advancements are obvious, there are still reasons why, for instance, CPUs are still used for production renders and not GPUs.

Share this post


Link to post
Share on other sites
It would simply allow better micro details such as ditches, small humps etc, and overall a better feel of the terrain, semi-independent of the grid size.

exactly! the whole system is so static. map makers have to decide if they want a big map or a detailed terrain mesh.

i found the article btw. http://www.gamasutra.com/view/feature/192007/sponsored_the_world_of_just_cause_.php?print=1

notice how only areas that need it have lots of polies. it always feels to me like arma's tech in some cases is basically not different from smaller games and thus the fact that everything in arma is bigger in comparison makes it all run bad. i mean on the one hand arma tries to be so much more than those "tiny shooters" but on the other it often feels like a shooter that someone made a way too large map for.

like i said before. it's like the engine is not entirely designed around the stuff it's supposed to pull off. terrain is one example. but the same applies to AI. why AI don't cache themselves by default still even after the 4th installment is beyond me. i don't mean deletion and recreation but rather virtual entities much like in ALiVE. i mean instead of just stuffing a quick dirty implementation of some of the latest tech into the system they should and should've always focus on improving the way the game handles its size.

i feel like if that would've been done progressively we wouldn't have people talking about performance only in terms of CPU utilisation and 64 bit. there needs to be more clever tricks implemented too. slapping on third party plugins like physX while leaving the rest the same will only slow it down more.

Share this post


Link to post
Share on other sites
exactly! the whole system is so static. map makers have to decide if they want a big map or a detailed terrain mesh.

i found the article btw. http://www.gamasutra.com/view/feature/192007/sponsored_the_world_of_just_cause_.php?print=1

notice how only areas that need it have lots of polies. it always feels to me like arma's tech in some cases is basically not different from smaller games and thus the fact that everything in arma is bigger in comparison makes it all run bad. i mean on the one hand arma tries to be so much more than those "tiny shooters" but on the other it often feels like a shooter that someone made a way too large map for.

like i said before. it's like the engine is not entirely designed around the stuff it's supposed to pull off. terrain is one example. but the same applies to AI. why AI don't cache themselves by default still even after the 4th installment is beyond me. i don't mean deletion and recreation but rather virtual entities much like in ALiVE. i mean instead of just stuffing a quick dirty implementation of some of the latest tech into the system they should and should've always focus on improving the way the game handles its size.

i feel like if that would've been done progressively we wouldn't have people talking about performance only in terms of CPU utilisation and 64 bit. there needs to be more clever tricks implemented too. slapping on third party plugins like physX while leaving the rest the same will only slow it down more.

Bolded part is exactly how I feel about it. I'm tired of bitching about it anymore but it feels like it's going nowhere while the focus is simply on adding more. There are to many little ways BI could have truly improved the game in these regards. Better functionality and better performance.

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  

×