First things first, what is “optimisation” in a gaming context? The general definition is “the process of making a strategy maximally functional; removing deficiencies in a system or process”. In gaming terms, this means a game making good use of the resources it has been given to run in.
In consoles, optimisation is often not a big deal, due to standardised parts. Because all Xbox 360s (for example) have the same resources as each other, a 360-specific game will be developed on the exact same system it will be played on, meaning the game can be set up to work well on the hardware supplied. Of course, some games still don’t run properly even then, but that’s normally a fault of design or programming at a more basic level.
Optimisation can sometimes be an issue when a game is ported from one console to another without fully taking the differences between systems into account. Games released for the 6th and 7th generation consoles concurrently often had issues on the Wii that weren’t present on other consoles, due to the Will having technical specifications lower than the other 7th generation consoles. Games released for the 7th and 8th generation concurrently have the same issue with the Wii U. (For a look at the minor flame war about the Wii U port of Mass Effect 3, look here)
There are three “levels”, or general areas, for optimisation. The first is the broad rules of a game’s playing field, such as “how many processor cores does the game support?”; “what kind of lighting system does the game use?”; and “how does the game handle systems that barely meet the requirements?”.
Errors here usually result in games that are badly reviewed due to obvious gameplay difficulties, or ones that become infamous for buggy/counterintuitive play. For example, a game that has inferior core support will be very inefficient, as it will not be able to take advantage of multi-core processors. For example, it could run very well on a single core 3GHz processor, but very badly on a quad-core 2GHz processor. This means that people with high-spec computers can have worse performance than people with lower-spec computers.
Another type of optimisation mistake is to couple the in-game clock to the pc clock speed (see here for more technical details on that). This can result in games running at such distorted speed on newer PC’s that they become more difficult or even impossible to play. This DOS port of arcade game “Bad Dudes” has no ability to change speed in comparison to the PC’s clock speed, meaning the timer runs too slowly, while the enemies appear too quickly.
The third, and smallest, level of optimisation is micro-optimisation. This mainly involves rooting out small redundancies or delays in code, such as preventing a reload animation from overplaying, or changing the combo-able frames of a fighting game attack to compensate for increased latency across different consoles.
The middle level, and the main problem in PC gaming, is the application level. The multitude of different types of parts available for PC’s means that very few people playing any game will have the same hardware. This can also be complicated by software as well; someone who runs a lot of resource-intensive software while gaming will have more issues than someone with a minimal software loadout, another area that is not currently a problem for consoles.
People with gaming PC’s, who may regularly swap out components for newer ones, or who may have a greater proportion of customised or overclocked components, make this even more difficult.
Therefore, in PC gaming, the computers used to develop a game, and the ones used to play the game, may be made of entirely different parts. This means that the developers of a game can often be caught unaware by small changes in software or hardware they don’t use- one specific subseries of graphics card may perform markedly worse than expected, or a video driver may conflict with part of the games coding, causing visuals to display wrongly or the game to freeze.
For this reason, PC developers may often have to rush out patches to fix the most obvious problems after release, or may have to deal with more complaints on average than console developers, as even playtesting isn’t enough to get every combination of specifications in order to avoid problems.
There are also graphics-card specific workarounds for optimisation issues, which I’ll be explaining more about next time.