This release has… just absolute tons of stuff in it. First of all, it has the 5th batch (out of 7) of pre-Early-Access ships. Lots of goodies in there.
Secondly, it has an enormous overhaul of the visuals, which you can see in video format in this post from last week. This does indeed affect the minimum system requirements for the game, which you can read about in both of those links.
The gains we get from those changes are absolutely staggering, though. On my GTX 1070 and latest-gen i7, there was one particular savegame (with 5000 ships in it) in which I was getting about 30fps even when paused. And it was a ragged 30fps. Now I get more like 90 to 100fps when paused in that same scene, thanks to all the improvements made here.
When it comes to actually unpausing and having ships move around, there is a dip in performance again back into the 60s fps on that hardware, but that’s largely to some half-measures that are in place right now optimization-wise. Some of that has to do with frustum culling and other optimizable things on my end, and others of it has to do with some optimizable and/or better-multithreadable stuff in the simulation on Keith’s end.
On this particular savegame I am referring to, it’s possible to send those 5000 ships through the wormhole to its neighbor. Once you do that, the performance absolutely tanks on my machine, even with all the improvements that have been made thus far. I get a ragged 5 to 25 fps.
Some of that is related to things I still need to optimize better in the graphics code (the frustum culling itself is 30-40% of the CPU-side graphics load right now, which is ludicrous and something I intend to work around).
Other bits of that are simply bits of the simulation code that need some looking-into by Keith. I don’t dare really speculate on that, since it’s not my part of the code, but it’s the sort of thing that he notes will take a few hours of investigation at least, so we didn’t want to delay this release over that.
Smaller-scale battles are running better than ever, after all.
But there’s always more to be done, and I’m hoping that we can get those battles of that scale up to a buttery-smooth 60fps or higher. Seems doable, but we’ll see — in AI War Classic, those were hard-locked to 20fps most of the time, and would run extra slowly under the load, too. So we’re already pulling ahead, and we haven’t done remotely a full optimization pass on the simulation code.
I’ve had time to do that sort of thing on the graphics code because it’s a lot more limited in scope, despite being super intricate; so I’ve been able to focus on iterations over and over again, while Keith has been splitting his time between improvements and additions, since the simulation is so much larger.
Oh: also, right now the battles are throwing out metric tons of particle effects, which will largely be going away. I have fancier things I can do without all that wasted CPU/GPU time. :) People talking about “ships breaking apart” being a neat thing got some ideas into my head. Giant things will still do explosions, but we’ll make those look more epic, too. And since they will be comparably more rare, they’ll stand out better as well as not adversely impacting performance.
Anyhow, that’s another big big area that will really improve things during battles, performance-wise. Just haven’t had time for that bit yet, on my end.
There’s a lot of other goodness in this release, too. Things like more ship models, way more ship icons and flair, and so on.
The sidebar is temporarily semi-busted because I just frankly ran out of time and will get to that tomorrow. It works, but it’s not colored properly and doesn’t have the proper flairs on the ship icons. And its icons likely still don’t show up on linux right, although they will once I’m done with that bit.
Coming Soon: Sound!
Craig (Pepisolo) has been taking on the process of getting the sound effects going for battles, and I’m going to start actually integrating that soon. I’m really excited to finally start hearing these battles, rather than just seeing them.
Going along with that, at the suggestion of a number of players I’ve started working with a variety of voice actors to do human-side voice responses to commands that you issue. More on that soon, but I’ve got the first four sets back and I’m really pleased. I’ll be integrating those soon as well, and then tuning them with your feedback.
Onwards and Upwards!
Thanks for reading. :)