Good Evening All,
It's been a while since I've played the game, because I love extreme maps. I got sick of the long turn times once you really got the game going between turn 200-300. I was running an AMD FX 9370 8core/thread cpu w/ 16gb memory Radeon RX 570 Series GPU. Running a standard SSD. Turn time was sitting at 4 minutes 10 seconds. Makes for very slow progress, even if I rush through my turns.
So I upgraded. Current Specs is one of the best out there for processing power. AMD Ryzen 9 3950x 16core/32thread cpu w/ 64gb memory Radeon RX570 Series GPU (just replaced the GPU last fall so couldn't justify purchasing higher end right now). Running an M.2 drive SSD. Same game, only using about 10% of cpu power, GPU is sitting around 95% appears to be my hold up, however. Turn times have reduced some but not a lot. Current turn time now has dropped to 2 minutes 55 seconds. Only a mere 30% increase.
Here are my questions. There has been a lot of talk about Stardock games multi-threading. Why is this game only using about 8 of the available 32 threads, and only utilizing 1/10 of my cpu?
Thanks.
Ryzen 2700x, 32gigs 3ghz ddr4 RAM, RX580 on samsung sata SSD's all in a Asus Crosshair VI Board, all using latest drivers and bios patches. I get the same results as you, I also upgraded from an old gen AMD Unit (8350 cpu and 32 gigs of ddr 3) but 2 years ago now, it made a large difference at the time, less so these days tbh. We are not the only ones and it is not limited to AMD systems theres a few over on steam with mid-high end intel systems suffering the same issue.
Can you link to your saved game? I’ll check it out.
short answer: game uses dirextX11 which means graphics commands are serialized.
Thanks @Frogboy here is the link Saved Game
So here are additional questions, so for a game that came out in 2015, it was maxing out GPU's & CPU's that were around in 2015 such as my AMD FX 9370 and at that time my Powercolor Radeon R9 270x GPU w/ 1280 Stream Processors 2 GB GPU. Both would typically hit between 80-100% usage. 16 GB memory, would typically max it out give or take system overhead.
Now in 2020, Galactic Civilizations III is a Direct X 11 game. Newer hardware, the Ryzen 9 3950x CPU doesn't even get used, last checked peaked around 20% with average sitting just above 10% is obviously not my issue to get the game to run faster. Now have 64 GB memory, game used about 17-18 GB memory when I loaded it. So that's not my issue. Falls back to the GPU. GPU I'm currently running is ASRock RX 570 2048 Stream Processors 8GB and is maxing out holding at around 80-100%. So this appears to be where the issue is.
Now with this card not being a bad card, and better than my original card why is this still where the issue is. I could upgrade but only getting a 10-20% increase in stream processors which the current card has 80% more than the original did and is still maxing out so that increase doesn't seem to be enough to really make a huge impact. Memory on the card is 4x what I originally had, so I don't see any reason to go extreme and get something with more than 8GB memory so this is where I am. From what I've read PCIe 4.0 cards aren't really increasing the performance out there so, jumping with them doesn't seem to make a huge impact right now so then what?
Looking then at crossfire cards. This could virtually double the stream processors for the GPU's but will that make a difference? The answer is I don't think so as most crossfire support cards only support DX12 or Vulcan. So with the hardware I have or with reasonably priced Radeon GPU's available, how could I potentially speed up this game? Or which Radeon GPU series would you recommend to help?
It is ironic that the game locks people out of certain map sizes due to a lack of CPU or RAM when in actuallity the game is exsessivly GPU heavy and this is where the issue/bottlenecks lie. I have the same issue as you btw, CPU at around 25%, RAM at around 16gb of 32 and GPU pretty much maxed out. (Second Largest map (Pre crusade sizes). The sadest thing I find with all this is, the graphics in this game are not what you call out of this world. BTW I have a friend I just built a PC for that has a RX5700 GPU in it with a Ryzen 3600 and 32gig of 3200 ram, when I load one of my saves on that rig.......no difference. SO, save your money for a game that is better optimized and will actually take advantage of a new GPU.
Oh and theres a few peeps over on steam forums that are using 2070 or 2080's and they still complain about game lag and slow turns.
You're certainly welcome to share with everyone the 4X strategy game whose turn times at this scale remotely compare.
It has nothing to do with GPU/CPU at the level you're talking about. It has everything to do with DirectX 11 and the # of serialized calls that have to be made.
Perhaps you should take your modding over to Stellaris or Endless Space. I know I wouldn't miss you.
Frogboy, what would you suggest?
Or is there anything I could do to minimize the # of serialized calls without taking away from the game?
GPUs 10 years from now will have an issue still just as GPUs 10 years from now will still have issues with Sins, Stellaris, Civ V, Civ VI, Supreme Commander.
These are games that use DirectX (or OpenGL). They were written for a time where there would only be 1 CPU core talking to the GPU at once.
I have the saved game loaded.
The issue really is that the game shouldn't really have map sizes this large. You have 303 colonies in a galaxy with 26 other civilizations. Imagine playing Civilization VI with 303 cities and 26 other players like this.
I think the answer is probably to just eliminate map sizes from the main UI and have them be an unsupported option in prefs.ini (enablecrazymaps=1).
The game IS using all the cores.
But you can see the two cores related to sending commands to the GPU. That's a limitation of DirectX 11. The only way to fix this kind of thing would be to move to Vulkan or DirectX12 where the other cores could send things in parallel.
I'm afraid not. Fundamentally, the issue is the # of ships. The various threads are queue up commands to be sent to the GPU. The GPU handles them serially in the background. That's why dialogs and such can get slow because it's trying to move the units in the background.
The other thing is that the game is using 27GB in this scenario. So unless you have >32GB you also probably have some disk thrashing (even if it's an SSD you'll feel it).
That said, this is the best saved game I've ever received. THANK YOU.
I really wish this wasn't the overall answer, as I love the scale, just hate the impact.
Let's do this, how do we make this happen lol. Now I understand this is most likely not feasible but it would be amazing if this could happen as I believe this is a big hurdle minimizing the games full potential and could take a good game, and transform it into a great game if it could greatly minimize the turn times. With the resources required to even attempt a conversion like this it would be nice if it could be tested at a small scale before applying the resources needed to see if it would really have a huge impact. I can only imagine what that could look like.
Well I'm now running 64GB of memory on my computer, interesting I didn't see the usage jump to 27GB like you had mentioned I saw it peak at 17-18GB.
So if I'm understanding if I can minimize the number of ships somehow, the turn time would diminish... I wonder would limiting the number of certain ship types help with this, such as each player is only allowed to have 10 tiny ships, 10 small ships, ect... Does the game look at fleets as one ship or as many ships? And does this help at all? As I know the AI, especially those that generate many small ships aren't the best at condensing them into fleets. So if the Drengin for instance have 100 individual ships and many of them are stacked on top of each other and not condensed into fleets would forcing them to put them into fleets help with relieve some of this problem? Just trying to think how that could work.
Another thought, is there a way one could minimize how it's accounting the ships/locations on the map so that it's not using as much data or putting as much of a load on the GPU?
Final question, would increasing the number of stream processors help on the GPU at least fractionally, such as me upgrading, and would crossfire support with multiple GPU's potentially work even if they are mainly only supported via DX12/vulcan?
And right now would it really be worth jumping to a PCIe4 card vs. staying with the less costly PCIe3 cards right now with this game or other games produced by Stardock?
One final thought... Curious, what makes this one of the best saved games you've ever received?
We wouldn't be able to do it in GalCiv III. Maybe a GalCiv IV. I know none of us are happy with the bottleneck.
The first thread is just the particle effect. The second thread is maxed simply sitting there sending commands to the GPU one command at a time. It's very frustrating.
You can see little spikes in all the other threads as they occasionally deal with whatever things the AI or pathfinding or whatever needs to do.
Now, I havne't had access to a saved game quite like this so I can see what other tricks I can pull.
Very interesting... I'm interested to hear what you find out, even if it's just simply I made a tweak, but there wasn't any huge impact but I tried..
In your game, there are 4,171 different on map units. Imagine playing a Civilization game where there was even say 500 units.
What I'm looking to see here is if I can find a way to reduce the # of batches we need to send.
I'll know more in a few minutes.
Well on my mega system, (3990x) I started with 202 second turns. I've gotten it down to 193 seconds mainly by doing some object culling. This comes at the cost of low end systems (<4 cores) since I'm doing some filtering.
A faster GPU wouldn't help. This scenario is basically why things like DirectX12 and Vulkan were developed to solve.
People say "game X isn't even that pretty". Artwork quality is a factor of budget. Fundamentally, in your saved game, you have, literally, hundreds of thousands of objects that might *possibly* need to be visible to the GPU and thus have to be kept around even if they're not being drawn. Compare that to say DOOM Eternal which might have a half dozen objects on screen at once. It's just a different CS issue.
You're certainly welcome to share with everyone the 4X strategy game whose turn times at this scale remotely compare.It has nothing to do with GPU/CPU at the level you're talking about. It has everything to do with DirectX 11 and the # of serialized calls that have to be made.Perhaps you should take your modding over to Stellaris or Endless Space. I know I wouldn't miss you.
And people wonder why modding for GC3 is none existant. Not sure what I did to offended you but your wish is granted.
Hmmm, what map size are you playing? I'm playing on Gigantic with all civs available, including from the DLC's. At most my wait is about 5 to 8 seconds between the turns. Turn 388.
It really comes down to the specific game. In his game, there are just so many objects. I'm writing a filter that will try to purge out some objects that might make turn times faster.
I don't think that many people play the game with fewer <4 cores and even if they did, they probably aren't playing big maps. So it's probably a good trade off.
This is actually interesting insight into game inner workings for someone like me (not IT professional) It might make me less angry next time I have to wait for next turn
It made me wonder, considering this dx11 limitation does it mean that there is theoretically fastest usable CPU? (or largest nr of cores?) Or this doesn't even make sense.
About modding, I might have little different point of view. For me it's more personalization or advanced settings. It is actually first and only game I had any interest in modding and I would say I am generally happy with possibilities. Although enumerations can be annoying.
The main thing is that CPU core speeds haven't really gotten much faster in recent years. So we're still bogged down by the fastest single core when it comes to sending commands to the GPU.
So it's not really the GPU that's the problem here OR the CPU. It's just that DirectX 11 is serialized.
In DirectX 12 and Vulkan, multipe cores can be talking to the GPU at once.
The only reason GalCiv appears to use a lot of GPU is because the particle system just sits in a while(1) loop. So while DirectX 11 is queuing up commands, the GPU is still kept busy.
GalCiv is easy to do simple modding and frustratingly difficult to do modding that is easy to share with others. There are a bunch of reasons starting with the dumb way we handled expansions. (each expansion basically has its own set of data).
With the benefit of hindsight, we should have made GalCiv III: Crusade into GalCiv IV and then based everything off of that.
Ah what would I do with benefits of hindsight... But I am surprised you supported base game this long. I would drop it long before 3.0. Considering nr of variables it must be pain ****** to support basically two games in one.
Yea. Next time around, Cari (who was on maternity leave for GalCiv III v1.0) will be handling it. I am hoping we can get scripting language support.
This would be amazing, should it work. What about my question about fleets vs. single ships? Does the game count fleets as single ships or as a bunch of ships? And would changing the AI to condense ships to fleets if at all possible (within a certain radius) help this even further? As a lot of the time the AI has many stacked ships vs. fleeting them up. Which for the player also can be frustrating when they have to attack the same ship 20x just to kill all of them at that location. Seems the AI sets a way-point for ships to go to, but then doesn't combine them into a fleet.
Which is one of the reasons why AMD has started taking the advantage with multiple cores and where Intel is falling behind because they at least for a while didn't see the value in it. However, now as more and more things are using multiple core they have started to look that way as well.
Is there a way to to transfer some of the commands to the particle system? This may be a dumb question, however, if that side is just looping maybe you could 'trick' some commands over to that side, therefore using 2 streams of information to the GPU vs. just one?
This is the only game I've posted modding to forums ect... Too bad there isn't an easy way outside of that for posting mods. Keep in mind Frogboy, this game does have some mods running, such as virtually endless Artifact usage, soft cap versus the in game hard cap for most of them.
Hmmm... still hoping for news of GalCivIV soon??? lol I know you couldn't answer that. Speaking of Cari, what ever happened to Paul? Is he still around or did he move on to other things as you have seen to take control of this project and haven't heard a peep about Paul at all. Maybe I missed a post about that.
There are many great features available to you once you register, including:
Sign in or Create Account