Last time I fired up AI War 2 on my Mac, which is a pretty outdated machine with a really really bad GPU, the results were pretty bad. I wasn’t really surprised, because I was running it with all the settings turned up, and the music was throwing errors a bunch, and I knew it could get a lot better with some polish. An old intel 4000 integrated GPU is not exactly at the middle end of the market anymore, even.
Just retested the latest build, which has the music swapped over to a different playback system, and which has a metric ton of performance optimizations from myself and mainly from Keith (the entire game simulation runs on a secondary thread, now).
Results? 300-some odd ships in the very opening battle, with all the settings turned up to maximum still, and it was buttery-smooth. I have no idea what the framerate was, but I feel confident saying it was north of 60.
I just… whaaat? That’s… not what I expected. It’s fantastic, but it’s also a big surprise.
I’m not going to run out immediately and lower the minimum stated system requirements expectations, but that is certainly super duper positive as an indication thus far.
Reminds Me Of Something…
As kind of a fun aside, back when I was coding AI War Classic in the early days I was hoping to get 10k ships in a game, and was pretty sure I could do it. The maximum any other RTS had at the time was about 1000, and it was super choppy and laggy with that many units in the other titles. I felt like I could bump that up by a 10x partly thanks to going 2D, and partly just due to coding practices.
By the time the first public builds were around for AI War Classic, the typically number of units in the game was more like 30k, and it would start to chug around 45k units. Within a year after that, 50k was more typical and it would start to chug at 75k units.
More Generalized Thoughts on Optimization
Sometimes it’s just really surprising how things can go when you throw everything and the kitchen sink at optimization. It’s kinda-sorta working, it’s getting along okay, and then suddenly you pass this critical mass and whoosh the performance jumps by an order of magnitude.
I’m not remotely ready to say that’s happened here, yet, though. The simulation is not remotely finished for the game, as there’s still a lot more AI to build out, and lots more ship functions. The largest battles still have only involved just a few thousand ships at a time for me, whereas in classic sometimes north of 10k ships in one fight would happen.
So I want to see what happens with all those things. Right now early indications are ridiculously, surprisingly good; but some monkey wrench could still very well appear between now and early access that makes me say “yeah, the minimum system requirements for a truly pleasant experience should still be more than a lousy intel 4000.” Then again — maybe not. :)
Oh, One Last Thing
In AI War Classic, the simulation speed was locked to the framerate on the slowest computer in a multiplayer game, or to your framerate in solo play. Kinda common for RTS titles, though not all of them.
In AI War 2, your visible framerate is completely unrelated to simulation speed. We’re actually running the simulation speed at 10 cycles per second no matter what, which gives us a lot of muscle per cycle on a secondary group of threads. It doesn’t need to be any more fine-grained than that.
Then for input and actual visual display, of course it can run at much higher framerates, basically up to whatever your hardware can handle. If you’re running at a buttery-smooth 200fps and everything is just peachy, and I’m having more trouble on my machine at a hard-won 30fps or something, the simulation won’t slow down for either of us.
I’m a pretty happy guy about now. :)