XCOM 2 was heralded as a return to the franchises PC-only roots, eschewing the control schemes required for consoles and sticking to the keyboard and mouse. Being PC-only gives it another advantage as well, that the graphics can potentially be that much more visually impressive game. Despite being a turn-based tactical strategy game with a deep story-line, nothing says that we can’t get up close and personal to the action as its unfolding


Analyzing XCOM 2’s performance after a few patches

Unfortunately when XCOM 2 was initially released, it suffered from some performance issues that likely shouldn’t have been there. Firaxis had delayed the game once to ensure it was properly written and mostly free of game-breaking bugs and glitches, hopefully also optimizing it in the process. That didn’t appear to be the case, though the game could have been in worse shape before it was released. The recommended, and even minimum specifications, were quite high, letting us know that it was going to be demanding. The problem was that it didn’t quite look like a demanding game despite all the action that could take place in one turn.

A few patches later and here we are, with a game that’s not only fun to delve into, but looks and plays smoothly, as it should. But we’ll get back to that in a minute in the following pages. XCOM is built upon a heavily modified Unreal Engine 3.5 code-base. They’ve added in some very sophisticated ambient occlusion, dynamic water surfaces, soft body physics and a much more destructible environment than XCOM: Enemy Unknown.

Perhaps the best innovation is the inclusion of a global illumination system, something that’s quite resource intensive. This is based on the Unreal Lightmass tehcnology that’s able to generate light, shadows and do this before hand. The problem is that it’s physics based and thus quite compute heavy. Lighting and shadows have had the most profoundly debilitating effect on performance due to how we need to simulate them to be realistic. We literally follow the laws of physics, rendering each photon, in some cases to make it look good. That takes time and resources to do. In this case we can create diffuse lighting that takes on the correct properties of the light being cast, and that’s also not easy. This is probably one of the reasons that it seemed to run poorly, with light sources from up to 100 (and sometimes drastically more) points generating pre-computed and real-time lighting.

Performance analysis system specifications