Gibbage posted a rather good analysis at ubisoft’s own CloD forum (http://forums.ubi.com/eve/forums/a/tpc/f/8071032709/m/5181035919). I’ll quote it here. I’m still thinking my way through the implications, but Gibbage concludes that the problems run deep in the code and won’t allow a quick fix. I hope he’s wrong.
Gibbage:
I know everyone is thinking the same thing. “Ow god, Gibbage cant STFU”, but this is in NO WAY a rant, I swear.
I know I have been ranting a LOT recently, but thats only because I was hoping for so much more in 8 years, and initial indication’s seemed to show Oleg needed a few more years. So I got the game, and did a little in-depth research myself.
First, for those who dont know, a little background about me, and why you should or should not care.
I did a lot of work on the original IL2 series as an artist for Oleg. My work includes the IL2 Spitfire IX and VB, Ki-43, P-63, PBY Catalina and quite a few others. Im rather familure with IL2’s game engine. Im also a 3rd party add-on maker for other games like FSX, CFS, and have a LOT of experience working with many different game engines like Unreal, Crysis, and MSFS series. I personally was hoping to do work in IL2: CoD since Oleg planned on releasing an SDK, but reading the early reviews really dashed those hopes.
So I got a copy of the game, and gave it a go. Here is what I found out so far.
The game in no way uses todays hardware to its fullest potential. Playing on medium settings, 1680x1050, on a Q6600 (Quad 2.4ghz) and an older ATI 4850, not only am I getting bad FPS (10 over city, 24 over land), its not even stressing my computer out! My CPU is at 24-30% usage, and GPU usage dips to 40-60% over city’s! This I think is the heard of the problem. Let me explain further.
I have an old ATI 4850 1gb video card. Its run about every video game I have thrown at it like a champ. I can hear when its getting a good workout by the fan kicking into high gear. I never heard the fan speed up once. I loaded the Catalyst Control Center to get a temp and activity reading. Flying over a city, something that should be EXTREAMLY demanding, only taxed my GPU at 40-61%.
I highlighted that in bold because I think this is the root to IL2:CoD’s current problem. At first, I was thinking that the game was CPU bound, in that it was using the CPU more then the GPU. If the CPU cant calculate what it needs too fast enough, the GPU waits for frames to render. That would explain the low GPU activity right? Wrong. Looking at my quad core Q6600, a relatively slow CPU by todays standard, the main core was only at 60-70% also, and the CPU itself was running at 24-30% total. So the game is not CPU or GPU bound.
That means, in effect, no matter what sort of hardware you throw at this game, it will never get measurably better. If it cant use 100% of my 3 year old rig, it wont run on anything well. There is no computer that could ever run this game at full detail.
Here is the interesting thing. Over a city, I was getting 10FPS or lower, and the GPU was at 60%, but when out of the city, my GPU was running at 90%. Houses and buildings are causing some sort of bottleneck. Luthier mentioned this in his update about the performance patch. Trees didnt seem to be as bad as houses, but IL2 CoD uses Speed Tree and it has been around for some time in many other games. Speed Tree is a 3rd party component that handles the vegetation. They take care of the shrubbery so Oleg can work on rivit counting on tanks.
Now, even without houses, I had to lower my detail settings rather low, and quite honestly, to a point where the original IL2 terrain looked better.
Is the above bottleneck fixable? Yes. I doubt its an easy fix, but its fixable. That only explains the lack of GPU usage though, and not the lack of multi-GPU support, or multi-CPU support. I think multi-GPU (SLI) can be fixed, and from what I heard, its just the stupid epilepsy filter blocking it. Even if you disable it, the post process layer may still be active, just not doing anything. If that post process layer cant thread out to multiple GPU’s, its going to be VERY hard for Oleg’s team to work around that.
Multi-CPU on the other hand, is something deeply ingrained into the core of the games engine. The game needs to be written early on with multi-threading in mind. Some band-aids that dev’s have used in the past is offloading small things like sound processing onto the other CPU’s, but that only free’s up about 5% at best. Right now, multi-CPU is not a problem since IL2:CoD cant even use 100% of 1 CPU, let alone multiple, but if they fix the GPU bottleneck, the CPU may be the next blocking issue. Things like the DM, engine systems, flight dynamics, and physics must be calculated on the CPU. Having multiple aircraft in the air will GREATLY tax a CPU! So having multi-CPU support in a flight sim is a lot more critical.
A lot of the above problems is typically the result of very old code being used on new hardware. You cant teach an old dog new tricks! As hardware changes, software must change with it. Microsoft’s Flight Sim series suffers GREATLY from old code in that no matter what hardware you throw at it, you cant get much better frame rate in FSX. I remember the joy and excitement after making my last big upgrade. It was WORLDS faster then my old computer, in both CPU and GPU, yet FSX didnt get any better. Same thing is happening with IL2: CoD, leading me to conclude that there is still a massive amount of old IL2 code in the “new” engine. Quite frankly, there is no real way to fix this problem this late in development. You can patch a few small problems like the building bottleneck, but ultimately, I think old code will keep IL2 in the slow lane.
We will see very soon. To those people having unplayable frame rates, hold off on any hardware upgrades. It wont do much for you. Your best bet is that Oleg’s team patches this thing up.
On a side note, im having another issue I havent seen spoken about on the forums. I have a really bad control delay in my game. Stick inputs are delayed by 1/2 a second. Its really bad, and is messing up fine-tune aiming. Anyone else having this issue?
P.S. To those defending the game. Why? If you purchased a brand new car, and it was only delivering half the horse power, and getting half the MPG it should, would you defend the car maker? Would you have “faith” that Ford or Toyota would fix it? If you knew the car had these problems, would you still buy it to “support” the car maker? Me, I would just take it back to the dealer and get my money back. It truly defies logic to defend a bad product, no matter what the product is. IL2 CoD is simply an unfinished game that was released early. Defending this type of action is like giving a kid in the middle of a temper-tantrum a cookie to make them stop. It only ENCOURAGES bad behavior.
Buy the game AFTER they finish it, and that will tell the publishers and distributors that you will NOT put up with them publishing unfinished games!
I will revisit the game after Luthier drops the magical patch.