I'll let the pictures do the talking... notice the FPS in relation to CPU and GPU usage. Whats going on here? Why does this game use so little CPU and GPU?
Your playing on *alot* of planets. Look at your memory load- its full! If you run out of memory the frame rate tanks, as it has to use HDD caching instead. What are your full system specs, ideally if you can post a DX-Diag that would help as well. PA planets use lots of RAM (people have been experimenting with single planets that us 16gb on their own!). I would recommend playing on a system that has 2 x R800 main planets each with a single R200 moon (total 4 planets) and see how you get on....
It has nothing to do with high RAM usage... Here's two more screen shots on a 1 planet system and using only 50% RAM. Once again, I ask, why does this game not maximise usage of the CPU and GPU? You'll notice on the second screen shot that there is actually a downward trend in GPU usage and framerate as the game progresses. RAM usage stays about the same. Also, see Dxdiag attached.
Ohhhh! Sorry I get what your asking now! Right I can explain this- basically your CPU usage is limited due to how PA handles threading on the client. Up until a few builds ago, PA only used 1(!) thread for rendering which means on your quad core machine it would be incapable of using more than 25% total CPU time. Recently Varrak (graphics guy) has been reworking the entire rendering engine to be able to share some of the work from the main rendering thread to the other cores, which is now maxing out at about 40% total CPU time on a quad core (you'll notice your CPU usage is pretty constant in all your screen shots). Apparently because they're stuck with OpenGL 3 (to maintain compatibility with Mac and Linux + a wide range of GPUs) there's not a whole lot more they can do. Essentially PA will max out a dual core and use most of 3 cores. The UI also uses separate threads which help spread the load a bit further but the UI is pretty light in comparison to rendering. One thing to bear in mind though- the server when it's released for offline play loves threads (it uses 1 thread per player basically, so you can imagine how much CPU it can use for a large game). So your quad core will probably be hammered playing Galactic war after the server is included. The point is though that once you hit the 40% CPU usage limit, the GPU usage is going to start dropping as it is waiting for the CPU to send it new information- hence the frame rate drops. The performance has improved alot since the threaded update and you never know, Varrak and the crew might just figure out a few more tweaks to wring a little extra FPS out of your machine. Otherwise the only way to get better performance is to get a CPU with faster single thread performance (e.g. a Haswell CPU has about the highest single core perf available) or failing that over clocking your i5.
If that's true, then that's pretty average programming if you ask me. I have never come across a game that is so bad at utilising the full system resources. I understand that most games still don't fully utilise multi-core/hyperthreading; it's been pretty stagnant in this area for a couple years now and this is partly due to the current graphics API's (e.g. DX11), hence why AMD has tried to introduce the Mantle API which is supposed to improve this somewhat, although NVIDIA have said they are also tweaking their drivers to utilise DX11 better (probably just marketing spin from both sides). My main concern is the low GPU usage. Pretty much every game I have played recently has lowish CPU usage, but the GPU usage always runs at 100% GPU.
This is one of the reasons most game devs shy away from Open GL. DX11 can utilise 3 CPU threads well for rendering. Open GL is more limited (it can only have a single 'main' rendering thread, Varrak has done pretty well getting it to 40% usage). The other thing you need to consider though is that an RTS game is very different to most other games. In RTS we have large numbers of independent objects that need updating regularly- this is why the CPU gets loaded more than the GPU. PA doesn't need too much in way of GPU, however it is very CPU and Memory intensive. It's just the nature of the genre (same thing applies to other RTS titles too, SupCom for example was very CPU reliant back in its day.
Support for 40 players is coded into the engine, and back in Beta we already had successful games with 20+ players. Player support is going to be more of an issue for the server than the client imo. The key is how many units the game can handle at once, again the engine has been built with the goal of up to 1,000,000 units although that isn't possible at the moment. TA was built with engine support for 50,000 units but was only released with a cap of 200 units per player (due to hardware at the time). That functionality was exposed later through patches and such as the available hardware improved.
Yes I understand that RTS games are more CPU intensive, but in other RTS games (e.g. StarCraft 2 and Wargame: Red Dragon) we are still getting much better system resource utilisation that we see PA. We should be seeing more than 50% GPU, thats inexcusible. It also concerns me that Uber choose to use Open GL for a video game genre (RTS) which is known to need high CPU utilisation for good performance. Especially for an RTS game of this size and scale. That's seems like a very stupid decision, and makes me wonder what other bad decisions have been made during the development of this game.
Here's a game of Supreme Commander with hundreds of units and the frame rate is still good (therefore assuming good CPU/GPU utilisation). What's different between Supreme Commander and Planetary Annihilation?
Every time I enter combat I get about a 20 second freeze and then a 'Planetary Annihilation is Not Responding' message, from which I have to wait out, and by then either my units have died just to standing there doing nothing, or I've completely lost track of what moves the enemy has made. Makes the game fairly unplayable at the moment.
Starcraft 2 is a terrible example. That engine only uses 1 core- the only reason the GPU is the bottleneck is because blizzard 1: Lock the max zoom very close to the ground 2: Cap the units very low so there are never that many simultaneous objects in the game. Remember PA can max out your GPU early game (when the rendering thread isn't being overloaded). What hurts it is when there are 1000's of units in game. Starcraft simply can't do that. Also they HAD to use OpenGL as it was one of the main Kickstarter promises to support Linux and Mac OS. Please note, DX is only available on windows. This is why not many games offer cross compatibility.
Then there is something wrong, please post your DX-Diag, also what internet connection do you have and are you using Wifi or a cable to connect to your router?
I was reluctant to include StarCraft 2 as an example because I knew you would say that. However Wargame: Red Dragon with it's 10 vs 10 matches does support 100's of units on screen at any one time and it has good GPU utilisation. And the complexity of each unit (speed, accuracy, stabilisers, ammo on/off, etc) in Wargame is far above any other RTS. And what about this game of Supreme Commander? Wargame 10 vs 10
In my experience PA can handle as many units as Sup Com whilst remaining fluid. Those are mainly buildings in that video... Another thing to think- as the game gets polished Uber are adding in more 'fx' type things (shiny blue com explosions for example). These things will put more load onto the GPU without effecting the number of objects the render thread has to deal with- so the GPU load will go up. They've not really added in many of the bells and whistles that really push GPU's yet (all the shiny shiny)- but they're getting added. It won't change the fact that the game is CPU bound (as almost all RTS games are) but it will make use of the free time on the GPU which would make sense.
For various practical reasons, I understand that optimisations like multi-threading don't tend to take place until very late in the development process. It's something that Uber are working on doing now - I'd wait until the game is released before criticising its use of system resources.
Well this is just it though, PA often involves THOUSANDS of units not 100s.... Seriously in those screen shots you posted you were in what, 10 player game? Over 10 planets.... That's a huge amount of stuff going on. To put it into supreme commander terms, each planet is like 1 map- I'd like to see how well Sup Com handles running 5 maps simultaneously on 1 machine...
Yeah I get that I was stressing things to the max with the 7 planets, 8 commander, game. But then I toned things down a little (1 planet, 6 commanders) and even at the start of the match, with very few units (much less than the possible 400 maximum you can have in StarCraft 2) the GPU usage is less than 80%. And it keeps getting worse (and still less than 100 units)...
Uh that 'wargame' video doesn't really look like anything comparable to PA. It looks like fixed camera view (likely 2D units) with units being very simple objects due to the tiny size (unless I'm missing something?). The 'complexity' of units in terms of function (e.g. how customisable they are, options you have) doesn't really have anything to do with rendering performance. I'd also point out that PA (like SupCom and TA before it) is one of the few games that uses a system called "simulated projectiles". That means every bullet and missile in PA is a physical model, and it's properties can be edited in minute detail including things like range, speed, acceleration, turn rates and so on.