Jump to content
Sign in to follow this  
squirrel0311

Arma 3 Engine - What would have been a better option and what can we learn?

Recommended Posts

All the profiles I have taken show our mod scripts running serially inside of the main thread, they don't seem to run separately. Its somewhat mixed in with the other simulation logic. None of the scripts we are running seem to be massive in time but they aren't run in a separate thread or anything like that, its all on the main thread.

Share this post


Link to post
Share on other sites

What I meant was that, like the guy above me said, the SQF scripting is done in the main thread and is probably ordered so that it's FIFO which I mean is common sense obviously. But then if you take that single threaded scripting interpreter and try to stick it with different systems running in parallel in different threads you're in for a load of problems unless you run separate scripting environments for each parallel thread that's going to make use of scripting. It's something that would have to be overcome before you could start threading off different parts of the engine or else you could do away with the scripting, which I don't think they would want to do considering they use it pretty extensively themselves. AFAIK SQF wasn't built for that which was why I was hoping that native Java support was slowly being integrated.

Multithread or give up scripting, which one do you think they would pick?

Share this post


Link to post
Share on other sites

In most cases scripts have a limited amount of time per frame they can run. There is an exception with things like event handlers which are not subject to this restriction. As a result, unless you go crazy with event handlers, scripts will have barely noticeable performance impact.

Share this post


Link to post
Share on other sites
In most cases scripts have a limited amount of time per frame they can run. There is an exception with things like event handlers which are not subject to this restriction. As a result, unless you go crazy with event handlers, scripts will have barely noticeable performance impact.

Well, it seems you can definitely bring the FPS down with scripts that run in the scheduled environment, up to a certain point, after that the scripts just run slower.

What I meant was that, like the guy above me said, the SQF scripting is done in the main thread and is

I know that, i meant that the Java implementation is pretty much SQF with a different layer on top. Honestly, you can try for your self what they achieved so far by buying TOH (which is probably cheap by now), playing around with it yourself and then becoming disappointed like the rest of us. :p

Share this post


Link to post
Share on other sites
Well, it seems you can definitely bring the FPS down with scripts that run in the scheduled environment, up to a certain point, after that the scripts just run slower.

I know that, i meant that the Java implementation is pretty much SQF with a different layer on top. Honestly, you can try for your self what they achieved so far by buying TOH (which is probably cheap by now), playing around with it yourself and then becoming disappointed like the rest of us. :p

I understood what you said, I was hoping for native Java implementation not a passthrough SQF implementation. It didn't happen, I'm not really trying to argue that fact with you.

As for scripts running slower, a lot of the AI scripting can cause performance drops which you can test by triggering their behavior states and measuring performance. I'm sure that other scripting factors can cause performance issue's and just because script's are only allotted X amount of frame time doesn't mean it's magically not overhead. I mean .5ms frame time is still .5ms frame time whether it's a cap or not. Also running parallel threads utilizing a single scripted environment wouldn't just lead to performance issue's but syncing and order of execution problems as well.

Share this post


Link to post
Share on other sites

Ok so let me make this clear from the beginning, I have no knowledge of how the internal things of video games work so before anyone waste mine or anyone else’s time with stupid comments, it’s already been stated.

After playing a bit of GTA 5, a few questions once again popped into my head that I don’t think were answered very clearly before…

Now before I begin I’d like for those who answer to focus on the main foundation of my question and leave out stuff about how

• GTA is a kids game

• It’s not realistic.

And unless it pertains to the answer….

• The graphics are terrible. (I actually think the graphics look pretty dang good despite the sometimes cartoonish look.).

• Multiplayer only supports 16 players and not very well.

• The buildings aren’t destructible. (As far as I know.)

• The map is smaller

I googled GTA 5 and apparently it does use multiple cores so I guess that part is a plus.

What I’ve been wondering is… How hard would it be to take something like GTA 5 and add realistic features?

• Ballistics (External, Terminal, and internal if it’s still running well.)

• Damage (People, vehicles, maybe even buildings if it could handle it.)

• Military content (Weapons, Vehicles, AI)

• Realism (Medical system, inertia…other junk)

Keep in mind I’m not talking man hours/ power, I just mean, could the engine not handle this type of stuff? The reason I ask is because of what others have stated about VR’s limitations, stopping things like shooting from vehicles and helos, changing weapons while moving and other stuff.

Now I’ve seen in this thread that some people have said the VR engine is the only one that can do what it does and that it’s so…revolutionary? O_o Because everything on the map is happening in real time.

I understand that this could be good in some cases but I don’t see how it is any benefit to a lot of other situations. If my force of 30 something players is clashing with the Opposing force on one side of the map, I don’t need to know that a rabbit is pooping in a field 10 klicks away or some turd bird is building a pyramid out HEMTTs on the other side of the map.

Because of that, would it be possible to build a feature that gave users the option to turn that off for certain types of gameplay?

Share this post


Link to post
Share on other sites

What I’ve been wondering is… How hard would it be to take something like GTA 5 and add realistic features?

• Ballistics (External, Terminal, and internal if it’s still running well.)

• Damage (People, vehicles, maybe even buildings if it could handle it.)

• Military content (Weapons, Vehicles, AI)

• Realism (Medical system, inertia…other junk)

Could it be done? Probably with a lot of work. What would be the result? Most likely a very poor performing game.

I haven't read all of this thread but the key to understand is a lot of the things Arma does are not simple "if you push Q make the chopper go up" instructions, or "when LMB is pressed detect crosshair position and register hit". All of these things are calculated based on models of the "real world" and eat processor time.

My apologies if this has been outlined already.

Edited by Matt International
Typo

Share this post


Link to post
Share on other sites
Ok so let me make this clear from the beginning, I have no knowledge of how the internal things of video games work so before anyone waste mine or anyone else’s time with stupid comments, it’s already been stated.

After playing a bit of GTA 5, a few questions once again popped into my head that I don’t think were answered very clearly before…

Now before I begin I’d like for those who answer to focus on the main foundation of my question and leave out stuff about how

• GTA is a kids game

• It’s not realistic.

And unless it pertains to the answer….

• The graphics are terrible. (I actually think the graphics look pretty dang good despite the sometimes cartoonish look.).

• Multiplayer only supports 16 players and not very well.

• The buildings aren’t destructible. (As far as I know.)

• The map is smaller

I googled GTA 5 and apparently it does use multiple cores so I guess that part is a plus.

What I’ve been wondering is… How hard would it be to take something like GTA 5 and add realistic features?

• Ballistics (External, Terminal, and internal if it’s still running well.)

• Damage (People, vehicles, maybe even buildings if it could handle it.)

• Military content (Weapons, Vehicles, AI)

• Realism (Medical system, inertia…other junk)

Keep in mind I’m not talking man hours/ power, I just mean, could the engine not handle this type of stuff? The reason I ask is because of what others have stated about VR’s limitations, stopping things like shooting from vehicles and helos, changing weapons while moving and other stuff.

Now I’ve seen in this thread that some people have said the VR engine is the only one that can do what it does and that it’s so…revolutionary? O_o Because everything on the map is happening in real time.

I understand that this could be good in some cases but I don’t see how it is any benefit to a lot of other situations. If my force of 30 something players is clashing with the Opposing force on one side of the map, I don’t need to know that a rabbit is pooping in a field 10 klicks away or some turd bird is building a pyramid out HEMTTs on the other side of the map.

Because of that, would it be possible to build a feature that gave users the option to turn that off for certain types of gameplay?

I am not sure about GTA5 but The previous GTA4 game was a poorly optimized game as well. It did support multiple cores but it ran poorly. I would venture to say that if it was able to have all the features that Arma 2 or 3 have it would barely run it.

Share this post


Link to post
Share on other sites

Frostbite 3 could do this easily. It's so damn optimized. True BF4 has maps no where near this size, but that doesn't mean the engine isn't capable. I'm sure if they had a map the size of Altis it would have performance 100x better then this game.

Basically any engine that utilizes modern hardware and multi threading would be better then this engine. They could add all the features in the world, but if you don't have stable performance why even bother? Maybe if you're looking for a cash grab.

Edited by Instynct

Share this post


Link to post
Share on other sites
Keep in mind I’m not talking man hours/ power, I just mean, could the engine not handle this type of stuff?

Yeah, it could probably be done. By the same token, the things people want in Arma 3 could probably be done in RV, too.

Because of that, would it be possible to build a feature that gave users the option to turn that off for certain types of gameplay?

Yeah, don't put AI in areas where players aren't going to be.

The way Arma works is that it simulates every unit placed on the map, even if players aren't there, playing out engagements in full, with the AI behaving the same as they would if a player were watching them. Some games, like Falcon 4.0, stop fully simulating units outside of a "bubble" around the player and, instead, have a more rudimentary simulation of what's going on in those areas which is far less accurate and probably amounts to dice rolls (think Battle Map vs Auto Resolve in Total War games for a rough analogy). I believe the ALIVE module does something similar.

This isn't necessarily a bad thing, since Arma isn't designed to have a fully dynamic war going on in the background like Falcon 4.0 and Total War are, and there are a host of options available to mission designers to allow for AI to only be placed or active when players are nearby.

Honestly, the whole thing about AI being simulated when players aren't around isn't as big a deal as some people made it out to be. Most situations where it causes problems are probably more the fault of the mission designer than any problem with the system itself.

I haven't read all of this thread but the key to understand is a lot of the things Arma does are not simple "if you push Q make the chopper go up" instructions, or "when LMB is pressed detect crosshair position and register hit". All of these things are calculated based on models of the "real world" and eat processor time.

Everything eats processor time, though, including the two alternative methods you listed. It's not like you can just get free calculations out of a game.

Maybe if you're looking for a cash grab.

If they were looking for a cash grab, they probably wouldn't be in the business of making games for a niche market.

Share this post


Link to post
Share on other sites
Yeah, it could probably be done. By the same token, the things people want in Arma 3 could probably be done in RV, too.

Yeah, don't put AI in areas where players aren't going to be.

The way Arma works is that it simulates every unit placed on the map, even if players aren't there, playing out engagements in full, with the AI behaving the same as they would if a player were watching them. Some games, like Falcon 4.0, stop fully simulating units outside of a "bubble" around the player and, instead, have a more rudimentary simulation of what's going on in those areas which is far less accurate and probably amounts to dice rolls (think Battle Map vs Auto Resolve in Total War games for a rough analogy). I believe the ALIVE module does something similar.

This isn't necessarily a bad thing, since Arma isn't designed to have a fully dynamic war going on in the background like Falcon 4.0 and Total War are, and there are a host of options available to mission designers to allow for AI to only be placed or active when players are nearby.

Honestly, the whole thing about AI being simulated when players aren't around isn't as big a deal as some people made it out to be. Most situations where it causes problems are probably more the fault of the mission designer than any problem with the system itself.

Well no what I'm talking about is a process kind of like....I think it's Planetside 2.... the map is divided up into sections so that if you're playing in one area you're not effected by what's going on at the other end. In my mind I would gladly take a second or two lag when crossing sectors rather than playing at a low frame rate the entire game. Or better yet have some way that you only send and receive information pertaining to a certain radius around you.

Imagine a map like Altis with several cities like what you would see in GTA 5... On the west coast there's an invasion taking place...Troops securing the beach, tanks rolling through the streets smashing and blowing up cars....Taking part in...in the words of Conan… What things are best in life...."To crush your enemies, see them driven before you, and to hear the lamentation of their women."

And on the east coast you're cruising through the city in your convertible, just hearing the news of said invasion on your radio. Now you have to drive to your local militia gathering and begin preparations for the impending onslaught.

Edited by Squirrel0311

Share this post


Link to post
Share on other sites

After watching how far Outerra Engine is progressing, I rate Bohemia should for the most part consider scrapping most of the old outdated engine, and port over some of their simulations, AI and other IP and content to Outerra, since it is open source, they can even toy with it right now. But I would think given the amazing talent and mathematical geniuses working on Outerra would be worth employing, perhaps Bohemia should just invest and aquire the company and guys working on the project. It would be a win/win for Bohemia, probably the Outerra team and us consumers.

I would love to see ARMA 4 run on this Outerra engine in its final form, but I would also like to see other titles made with this engine. This could be big for Bohemia and other future games.

Share this post


Link to post
Share on other sites

damn but I doubt BI will be able to use outerra in arma 3 now its already too late weve seen that flash!

Share this post


Link to post
Share on other sites
damn but I doubt BI will be able to use outerra in arma 3 now its already too late weve seen that flash!
It was too late long, long before this thread came to be.
Yeah, don't put AI in areas where players aren't going to be.

The way Arma works is that it simulates every unit placed on the map, even if players aren't there, playing out engagements in full, with the AI behaving the same as they would if a player were watching them. Some games, like Falcon 4.0, stop fully simulating units outside of a "bubble" around the player and, instead, have a more rudimentary simulation of what's going on in those areas which is far less accurate and probably amounts to dice rolls (think Battle Map vs Auto Resolve in Total War games for a rough analogy). I believe the ALIVE module does something similar.

This isn't necessarily a bad thing, since Arma isn't designed to have a fully dynamic war going on in the background like Falcon 4.0 and Total War are, and there are a host of options available to mission designers to allow for AI to only be placed or active when players are nearby.

Honestly, the whole thing about AI being simulated when players aren't around isn't as big a deal as some people made it out to be. Most situations where it causes problems are probably more the fault of the mission designer than any problem with the system itself.

A funny thing to me is how people ragged on me back in the day for wanting Arma 3 to be more "player centric" and talking up "fully simulates stuff not going on around you" as if that were something good...

Although, if it's true that "[m]ost situations where it causes problems are probably more the fault of the mission designer than any problem with the system itself", then such situations (where the mission designer can 'do the wrong thing' in this respect) does speak to a continued deficiency in documentation on 'proper' mission making.

Share this post


Link to post
Share on other sites
It was too late long, long before this thread came to be.A funny thing to me is how people ragged on me back in the day for wanting Arma 3 to be more "player centric" and talking up "fully simulates stuff not going on around you" as if that were something good...

Although, if it's true that "[m]ost situations where it causes problems are probably more the fault of the mission designer than any problem with the system itself", then such situations (where the mission designer can 'do the wrong thing' in this respect) does speak to a continued deficiency in documentation on 'proper' mission making.

It would be great if there were some sort of official documentation on basic editor usage that shipped with the game. Overall I'm not super happy with how much documentation has had to be done by the community over the years.

I'm still not sure it would actually help much, though. People have a tendency to get carried away with making something that's really big and cool.

Share this post


Link to post
Share on other sites
It was too late long, long before this thread came to be.A funny thing to me is how people ragged on me back in the day for wanting Arma 3 to be more "player centric" and talking up "fully simulates stuff not going on around you" as if that were something good...

As true now as it was then :) IMO this aspect of the engine should always remain. To be sure, there have been some good addons that can add in this activity (that of reduction of distant battles/logic) if desired.

Share this post


Link to post
Share on other sites

Things would have been a lot easier without AI,with only players on the map,it would be easier to create some processing bubbles,but it becomes very complex when it comes to AIs.

Edited by Xalteva

Share this post


Link to post
Share on other sites
It would be great if there were some sort of official documentation on basic editor usage that shipped with the game. Overall I'm not super happy with how much documentation has had to be done by the community over the years.
Admittedly I wonder how much official documentation BI even has internally, considering InstaGoat's 2012 remark about lacking AI documentation...
I'm still not sure it would actually help much, though. People have a tendency to get carried away with making something that's really big and cool.
One could say the same about Arma 3 and the devs *coughAltiscough*

Share this post


Link to post
Share on other sites
It was too late long, long before this thread came to be.A funny thing to me is how people ragged on me back in the day for wanting Arma 3 to be more "player centric" and talking up "fully simulates stuff not going on around you" as if that were something good...

That's because the heart of this game is to be not player centric, but the player only being part of the game. I love the fact that things happen outside of player's view, and would quit immediately if it wasn't the case. I can't believe it's still being questioned, there are more than enough games doing the contrary.

Share this post


Link to post
Share on other sites

"Things happening outside of player's view"... a funny little novelty up until it affects my framerates.

Share this post


Link to post
Share on other sites
"Things happening outside of player's view"... a funny little novelty up until it affects my framerates.

Well to each there own I guess. To some it is one of the main attraction to the series if not the primary. Personally, when I played games as a kid I always wanted to sneak around the game and see if i could influence the game world in any way without being directly involved. Maybe it's a personality thing, but i get a big kick out of a virtual world in which Im just a pawn rather than the star of the show with the AI cast just waiting around for me. Again, to each his own, but some things are worth spending FPS on.

Share this post


Link to post
Share on other sites
Well to each there own I guess. To some it is one of the main attraction to the series if not the primary. Personally, when I played games as a kid I always wanted to sneak around the game and see if i could influence the game world in any way without being directly involved. Maybe it's a personality thing, but i get a big kick out of a virtual world in which Im just a pawn rather than the star of the show with the AI cast just waiting around for me. Again, to each his own, but some things are worth spending FPS on.

So much this. Best post I've read in a long time.

Share this post


Link to post
Share on other sites
Well to each there own I guess. To some it is one of the main attraction to the series if not the primary. Personally, when I played games as a kid I always wanted to sneak around the game and see if i could influence the game world in any way without being directly involved. Maybe it's a personality thing, but i get a big kick out of a virtual world in which Im just a pawn rather than the star of the show with the AI cast just waiting around for me. Again, to each his own, but some things are worth spending FPS on.

Here's my FPS, but why aren't you properly using my hardware?!

Share this post


Link to post
Share on other sites

Maybe not simulating everything would be possible (Altho I do love this feature) but it adds complications. How would you simulate your CAS support getting shot down by distant AA OR NOT depending on the AI's flying ability and use of flares. How would you have those wonderful helicopter patrols? Imagine a vehicle patrol in the distance, you see it, it's moving away, then it goes out of view and stops being simulated, you run 20 meters forward and there it still is, now moving another 20m.

I think if for the sake of performance the far off simulation is toned down, something like the Alive mod needs to be implemented, where there's caching combined with a virtual profile system which in a basic way still allows a distance AI battle to move around and play out. I can imagine this being much better, more complex and optimal if it was native to the game and not an addon in some way.

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  

×