Jump to content
Sign in to follow this  
guiltyspark

Engine features for the next NEXT gen Arma (3-5 years down the line)

Recommended Posts

I know its early to be talking about arma 4 since we are still in alpha for arma 3! But as we have all discovered the current engine while still capable of delievering an incredible military experience second to none. The engine IS showing its age.

The most obvious problem with the engine is the ram bottlenecks and other CPU intensive tasks that dont need to be done on the CPU when we have computational monsters like nvidia titan. Gaming in the future will be less based on CPU And more based on GPU usage.

I think Arma's next engine should be rewritten to take account for this fact.

Here is a list of features that imo would benefit the arma community if bohemia were to make a completely new engine. Feel free to add your own and comment!

- Shooting out of vehicle windows

- AI being able to use buildings and cover appropriately , its great having all these nice enterable buildings but its pointless when the AI dont use them.

- AI civilians having a daily routine/job that they follow to create a more "active" enviroment that doesnt have to be scripted over the course of 20 hours.

- Electricity simulation , power lines , power stations.

- Fire propagation through vegetation , forest fires , house fires.

- A easy to use terrain and enviroment editor.

- realistically done building destruction

- weather simulation that effects vehicle traction and mobility (mud , slick roads , heavy snow)

feel free to add ideas

Share this post


Link to post
Share on other sites

Being able to use regular firearms while inside a vehicle would be nice but these other things aren't really what I'd have BIS waste resources on. Arma is after all an infantry combat sim, not SimCity. Scripting achieves enough for any civilian routines, electricity etc needed in a mission. I'd guess vehicle traction can be modded in Arma3 thanks to PhysX (road versus offroad has always had an effect on mobility in Arma). Fire propagation and "realistic building destruction" also sound like something that would only add unneeded strain for performance on an already demanding game.

Modding and mission creation can be hard work, but creating easy-to-use tools for such would also be hard work for BIS, not to mention that most people would probably opt out of them to have more more control over things.

Share this post


Link to post
Share on other sites
Being able to use regular firearms while inside a vehicle would be nice but these other things aren't really what I'd have BIS waste resources on. Arma is after all an infantry combat sim, not SimCity. Scripting achieves enough for any civilian routines, electricity etc needed in a mission. I'd guess vehicle traction can be modded in Arma3 thanks to PhysX (road versus offroad has always had an effect on mobility in Arma). Fire propagation and "realistic building destruction" also sound like something that would only add unneeded strain for performance on an already demanding game.

Modding and mission creation can be hard work, but creating easy-to-use tools for such would also be hard work for BIS, not to mention that most people would probably opt out of them to have more more control over things.

Thats the thing though , the performance of the arma games is not because they are particularly taxing its because they are using an engine that was designed back when CPU's were far more powerful and integral for computer games. Mix this with the fact that there is no 64 bit executable and you have an engine that is stuck in the past where you can only take advantage of half of your computer and ram.

Today GPU's outperform CPUs for game calculations by a wide margin. To the point where if the engine was designed for this in mind we could have the scale of arma along with the nice things like destruction and fire propagation. Arma still only allows the use of the CPU in these tasks as the power of your GPU changes little in the matter of frames per second.

the entire engine is a bottleneck

Share this post


Link to post
Share on other sites

I must admit, I would be interested to see BI start from scratch with a genuine new engine, built with the wisdom from what they have learned from the limitations of the current engine. I think Arma 3 is looking great, but straight from the start I can see it has all the same problems of the past games in terms of performance, especially when it comes to AI numbers etc. I also get the feeling that the environment/landscape is pretty static. I would like to see an engine with capabilities for de-formable ground etc, where if a satchel goes off it actually leaves a crater, rather than just some texture plastered over the ground. Again for example, trenches, there is no way we could create our own in the current engine, it would have to be made as part of the level. Stuff like that I feel is not possible in the current engine.

Edited by ssechaud

Share this post


Link to post
Share on other sites

You can't magically offload CPU's tasks to GPUs for "better performance". GPUs excel in doing lots and lots of parallel calculations, but in practice this power is mostly useful in doing nice graphics & eyecandy tricks that don't affect gameplay, as gameplay affecting stuff would still need to be synchronized between the CPU & GPU and that is slow.

And what would you win with a 64-bit executable apart from killing a loading screen or two?

CPU/GPU optimization isn't the best in Arma 3, that is true, but you're barking at the wrong things.

Share this post


Link to post
Share on other sites

- Shooting out of vehicle windows

Exists already in VBS 2.0. Some of it has been modded into Arma 2 (even though via a workaround)

- AI being able to use buildings and cover appropriately , its great having all these nice enterable buildings but its pointless when the AI dont use them.

Exists as a 3rd party module for VBS 2.0 already IIRC, and on a smaller scale a lot had been modded in Arma 2. Also some progress from A2 to A3.

- AI civilians having a daily routine/job that they follow to create a more "active" enviroment that doesnt have to be scripted over the course of 20 hours.

Exists as a 3rd party module for VBS 2.0 (crowds, crowds with waypoints, etc) already.

- Electricity simulation , power lines , power stations.

Exists as a mod for Arma 2 already IIRC.

- Fire propagation through vegetation , forest fires , house fires.

Exists as a mod for Arma 2 already for years.

- realistically done building destruction

All for that, although there are probably multiplayer issues. Some more realistic object destruction was already modded in Arma 2 (although it was too taxing and too much work) and tried as far back as BIS Game 2, according to old screenshots.

As to what would be IMHO more groundbreaking for any future improved engine:

Detailed microterrain (proceduraly generated?) and foliage (grass cover) at all view distances

Improved lighting to allow for more light sources and shadows at once

New terrain system to allow for any shape terrain without having to put (rock) objects in the heightmap (overarching rocks, caves) or at least variable cell size to allow for more detailed terrain locally (could have a flat field with detailed drainage ridges or jagged mountaints etc).

Most of that has probably been already tried or internally thought about by BIS (underground structures, deffered lighting, building destruction, perhaps more) so it's IMNSHO kinda pointless in making such a thread other than as a wishlist. And we have plenty of threads already with ad nauseam "Arma 3(4,5,...) should be 64-bit" discussions, so perhaps continue in them rather then create a new one?

Share this post


Link to post
Share on other sites
You can't magically offload CPU's tasks to GPUs for "better performance". GPUs excel in doing lots and lots of parallel calculations, but in practice this power is mostly useful in doing nice graphics & eyecandy tricks that don't affect gameplay, as gameplay affecting stuff would still need to be synchronized between the CPU & GPU and that is slow.

And what would you win with a 64-bit executable apart from killing a loading screen or two?

CPU/GPU optimization isn't the best in Arma 3, that is true, but you're barking at the wrong things.

I think the discussion for wanting better cpu/gpu/x64 support is more about the architecture of the engine. There is no denying the fact the engine was designed at a time when x64 and powerful GPU's didnt exist. We want something that is designed at the top level to be aware of (and use) all that is available. This is not the case just now.

People seem to focus on talking down the benefits of x64 and GPU's rather than accepting that these are the improvements that have been made in computing since the engine was created. There is no argument against supporting better technologies. x64 is better than x86, fact. GPU's are now more powerful than CPU's, fact. "GPUs excel in doing lots and lots of parallel calculations". Exactly, in games, there are lots of things happening in "parallel", ideally suited for GPU's.

Sure, we won't see any of this stuff in Arma 3, it's based on a revised version of an engine written years ago for a different time. But when talking about how it would be tackled now, then yes, for a new engine, I would be surprised if anyone in their right might wouldn't want to support x64 and GPU power from the start.

Share this post


Link to post
Share on other sites
GPU's are now more powerful than CPU's, fact. "GPUs excel in doing lots and lots of parallel calculations". Exactly, in games, there are lots of things happening in "parallel", ideally suited for GPU's.

You didn't even read what I wrote, and you're pulling these "facts" out of your ass. No, a GPU is not "more powerful" than a CPU. A GPU can execute loads of more instructions per clock, but the clockspeeds are nowhere near CPUs. Hence a GPU wins a CPU only when it comes to doing massive amounts of simple calculations. This is great when you're doing graphical tricks, but if you're doing something that needs to have an immediate effect on gameplay you'll need to sync it with the CPU, and oops, all that speed and power is lost. And that thing I put in bold really gives the impression you know even less about this stuff than I do.

Share this post


Link to post
Share on other sites
You didn't even read what I wrote, and you're pulling these "facts" out of your ass. No, a GPU is not "more powerful" than a CPU. A GPU can execute loads of more instructions per clock, but the clockspeeds are nowhere near CPUs. Hence a GPU wins a CPU only when it comes to doing massive amounts of simple calculations. This is great when you're doing graphical tricks, but if you're doing something that needs to have an immediate effect on gameplay you'll need to sync it with the CPU, and oops, all that speed and power is lost. And that thing I put in bold really gives the impression you know even less about this stuff than I do.

Apologies, but I did read what you wrote, a few times. And I didn't accuse you of not knowing what you are talking about. I do have a background in programming, so I have some understanding of how to achieve things in terms of software design. My argument is simple, you can write something that mainly uses the CPU, and uses the GPU for some simple graphics specific stuff. Or you can write something that mainly uses the cpu, but uses the gpu for more than just graphics, specifically, any code that is better executed there. It is the principal of being able to do what you want and not limiting your options. If your argument is about the fact that the gpu and cpu are separate and having to "sync" them renders all benefits pointless then I think that is more a problem of how you are implementing their use.

Also my facts, are from wikipedia, not my ass:

1 - Arma engine was out before x64 was in household pc.

References:

http://en.wikipedia.org/wiki/Real_Virtuality_(game_engine)

http://en.wikipedia.org/wiki/64-bit_computing

2 - GPU is more powerful that CPU

References:

http://en.wikipedia.org/wiki/Graphics_processing_unit

Edited by ssechaud
Facts

Share this post


Link to post
Share on other sites

So GPU makes things pretty, and CPU is the amount of pretty things you can have?

Share this post


Link to post
Share on other sites

But what would be the point of offloading something to the GPU if the CPU does it faster? Besides, games today don't usually even take advantage of all the CPU cores people have, the issue in coding multicore stuff being synchronization.

2 - GPU is more powerful that CPU

References:

http://en.wikipedia.org/wiki/Graphics_processing_unit

While this article mentions several good uses for GPUs, could you point out the spot where it says GPUs are more powerful than CPUs in general? :)

Share this post


Link to post
Share on other sites

This thread makes me lol.

You dont throw away 15 years of development work just because it seems like there are performance bottlenecks.

No, you iterate on the previous attempts and improve them.

Share this post


Link to post
Share on other sites
But what would be the point of offloading something to the GPU if the CPU does it faster? Besides, games today don't usually even take advantage of all the CPU cores people have, the issue in coding multicore stuff being synchronization. While this article mentions several good uses for GPUs, could you point out the spot where it says GPUs are more powerful than CPUs in general? :)

I didn't say you must use the GPU for everything, obviously you would only want to use the GPU wherever the use case benefits from it. My main point is about the ability to use that option. I think it is a fair guess that VBS engine was not designed with these sort of options in mind. Physics for example, I bet there is code in VBS that simulates physics on the CPU. But now we have options like PhysX, that offload that work to the GPU. I guess that significant modification has been done to VBS to allow for the use of PhysX. But if you had designed the engine with these options in mind you wouldn't have to modify it to use it, and you would probably not have put the effort into writing your own physics on the CPU thus allowing you to focus on other problems.

As for the wikipedia article, reading through it leads to another article that specifically talks about the benefits that have been discovered from GPU development and that are now being put to traditional CPU programming tasks. It's still a new field and being actively researched. This is the cutting edge in computer programming. Here is the wikipedia article for general purpose computing on graphics processing units: http://en.wikipedia.org/wiki/Graphics_processing_unit

---------- Post added at 21:44 ---------- Previous post was at 21:39 ----------

You dont throw away 15 years of development work just because it seems like there are performance bottlenecks. No, you iterate on the previous attempts and improve them.

You never throw away knowledge. Even with iteration, each new attempt is a fresh start, and an opportunity to both improve on the previous attempt, and to achieve new things. Basically, starting from from scratch, is still just an iteration of what you have learned from previous attempts.

I bet if you asked the actual team that wrote VBS to sit down, look at what they have learned, and asked them how they would do it from scratch, it would resemble pretty much what they have already done, but with less of the bits that don't work, and more options to replace the bits that don't work. You never really re-invent the wheel, you just make it a tiny bit better for your specific need.

Edited by ssechaud

Share this post


Link to post
Share on other sites

And here we go again. GPU physics used in games are mostly for eyecandy - debris/rubble/particles/destruction that doesn't need to collide with say, the player unit for example, so they play no role in gameplay and hence don't need to be synchronized with the CPU. Running Arma's vehicle physics on the GPU for example, wouldn't work that way.

Share this post


Link to post
Share on other sites
And here we go again. GPU physics used in games are mostly for eyecandy - debris/rubble/particles/destruction that doesn't need to collide with say, the player unit for example, so they play no role in gameplay and hence don't need to be synchronized with the CPU. Running Arma's vehicle physics on the GPU for example, wouldn't work that way.

What about ballistics? Physics is a major part of any simulation. Physics pervades everything.

PS. Please don't take my post as some demand that it must be done in Arma. Or that it is the only way to implement something. I am just talking about general principles and possibilities.

Edited by ssechaud

Share this post


Link to post
Share on other sites

You really aren't grapsing things. Of course ballistics affect gameplay, and hence aren't suitable for GPU.

Edit: naturally, the ballistics for useless rubble from explosions could be done on the GPU, as I said, but I take it you mean bullet ballistics and such.

Edit 2:

PS. Please don't take my post as some demand that it must be done in Arma. Or that it is the only way to implement something. I am just talking about general principles and possibilities.

But the topic about the engine, and it also serves as good example against your posts. GPU physics in video games today mostly serve to add graphical fidelity instead of being a powerhouse for gameplay physics.

Edit 3: My point regarding Arma 3 is that this whole CPU/GPU thing is just a matter of optimization that BIS can work on if they want to - it is not some huge fault of an old engine architecture.

Edited by SandyBandy

Share this post


Link to post
Share on other sites
You really aren't grapsing things. Of course ballistics affect gameplay, and hence aren't suitable for GPU.

Edit: naturally, the ballistics for useless rubble from explosions could be done on the GPU, as I said, but I take it you mean bullet ballistics and such.

I am thinking along the lines of, what is the best place to calculate physics? If it is the case that physics is best simulated performance-wise on the GPU then why not use it there. I am thinking in terms of how not to duplicate effort, I don't see the difference in how physics should be applied to anything, be it a bullet hitting a player, or a vehicle hitting a building, or something exploding and moving debris in its area of effect.

Share this post


Link to post
Share on other sites
I don't see the difference in how physics should be applied to anything, be it a bullet hitting a player, or a vehicle hitting a building, or something exploding and moving debris in its area of effect.

It's very simple. You have an explosion sending rubble around. This rubble doesn't collide with any gameplay-interactive things in the game, hence a GPU can calculate them and simply draw them on your screen. But if you'd want that rubble to hit and kill the player, it affects a lot of things and is no longer just eyecandy, so the CPU needs to know about it (synchronized to the CPU).

Share this post


Link to post
Share on other sites
This thread makes me lol.

You dont throw away 15 years of development work just because it seems like there are performance bottlenecks.

No, you iterate on the previous attempts and improve them.

But there are performance bottlenecks...

Share this post


Link to post
Share on other sites
But there are performance bottlenecks...

And they need to work on them. Scrapping the engine and starting from square 1 would be idiocy.

Share this post


Link to post
Share on other sites
So GPU makes things pretty, and CPU is the amount of pretty things you can have?

No

just think of the CPU and GPU as sort of like engines in a car.

Originally when this engine (the arma engine) was designed , GPU's (video cards) were relatively low power and only added some performance to the games you played.

hardware wise , A CPU and GPU can both perform the same type of tasks , but to perform those tasks they need to be designated in the software code.

The engine for arma 3 was designed when GPU's were not powerful . So the code in the arma engine is designed for taking advantage of CPU's. Today we have GPU's that are so powerful its starting to get scary (nvidia titan). Where CPU development is becoming less of a priority in innovation.

So the tech for GPU's is increasing at a faster rate than that of CPU's , so writing another engine that only took advantage of CPU power would be silly.

and in the next 5 years GPU power will improve exponentially to where the question of "can arma handle these physics calculations AND ai calculations without taking an fps hit?" would be like asking if the sky is blue.

---------- Post added at 11:05 PM ---------- Previous post was at 11:01 PM ----------

This thread makes me lol.

You dont throw away 15 years of development work just because it seems like there are performance bottlenecks.

No, you iterate on the previous attempts and improve them.

actually you do.

If they made arma 4 with this same old ass engine with minor goodies added in it would be disgusting.

the engine is supremely limiting and arma 3 will be stale in some aspects because of this. (other than the setting which is friggen aweful in itself.)

---------- Post added at 11:06 PM ---------- Previous post was at 11:05 PM ----------

And they need to work on them. Scrapping the engine and starting from square 1 would be idiocy.

you dont seem to understand what an engine bottleneck is

Share this post


Link to post
Share on other sites

Guys, I have a GTX 680 and this is all you need for maxing out the GPU stuff. The FPS troubles start with the CPU - long distance terrain and objects rendering is what kills performance. I see two ways to solve this: either make better use of multi-core to handle objects or shift objects rendering to the GPU somehow. At 2000m view distance and 1200m object distance the game runs fine, but for some things (like flying jets for example) that amount of view distance is not enough. Another way to do this is to go around the problem - implement some sort of trick that would allow us to see more terrain that is simply not a CPU rendered 3D terrain. The tricky part would be making the transition from the "illusion terrain" to the real deal so that the player would not notice.

Share this post


Link to post
Share on other sites
No

just think of the CPU and GPU as sort of like engines in a car.

Originally when this engine (the arma engine) was designed , GPU's (video cards) were relatively low power and only added some performance to the games you played.

hardware wise , A CPU and GPU can both perform the same type of tasks , but to perform those tasks they need to be designated in the software code.

Have you skipped everything that's been posted on this thread? A lot of CPU tasks are ill-suited for the GPU in a game. Naturally I can't predict what they come up with in the future, but with current hardware this fantasy of yours about CPU tasks being magically offloaded for the GPU to process just simply isn't happening.

you dont seem to understand what an engine bottleneck is

Humor me.

Share this post


Link to post
Share on other sites
actually you do.

If they made arma 4 with this same old ass engine with minor goodies added in it would be disgusting.

the engine is supremely limiting and arma 3 will be stale in some aspects because of this. (other than the setting which is friggen aweful in itself.)

Really, and what years of industry experience do you base this on?

Can you give me any examples of an established franchise which have done this? (Thrown away the engine completely and started afresh)

Share this post


Link to post
Share on other sites
Really, and what years of industry experience do you base this on?

Can you give me any examples of an established franchise which have done this? (Thrown away the engine completely and started afresh)

The way he keeps flinging the name "nVidia Titan" around suggests his arguments are based on said manufacturer's marketing speech.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×