Sunday, May 22, 2016

Optimus Maximus

There's a regrettable tendency for professional game reviews to neglect optimization when critiquing a game.  That's not to say they ignore it entirely, but I tend to only see passing mention of it (usually in relation to graphics).  It's unfortunate because a lot of games that have come out over the last year or so really feel neglected when it comes to performance.  Exceptions exist, Dark Souls 3 ran surprisingly smoothly at launch.  However, titles such as XCOM 2, Homeworld: Deserts of Kharak and Soma all wallowed in sluggishness for weeks after launch.  Meanwhile Hyper Light Drifter still could use a frame-rate boost, Banner Saga 2 needs better load times, and Star Citizen is undergoing a major upgrade to a more accurate 64-bit framework in preparation for launch.

The same is true for most Unity Engine games.  Until version 5 came out late last year there was practically no support for multi-core CPUs.  Kind of shocking when one considers most PCs on the market today are dual-core, quad-core, or (in my case) eight-core chipsets.  Not so quick aside, my desktop at home uses the AMD FX-8120 "bulldozer," somewhat famous for being able to render, upload and play HD video simultaneously without maxing out the processor.  It's great for multi-tasking, but can be rather embarrassing when running games that don't support multi-threading.  Seriously, playing Kerbal Space Program was like using a forklift to haul a fanny pack. On the plus side KSP recently got a huge boost to performance once the developers upgraded to Unity 5.  Now, I know programming for multi-core chipsets can be a pain (look no further than developers on the PS3 for examples of frustration), but the extra effort can, and will, pay off.  Look to Naughty Dog Studios' work on the Last of Us and Uncharted for some impressive results in action.  Going back to my original point through it's kind of amazing how few development teams put in the effort to make their games utilize the hardware available to the fullest.  On the other hand, it's possible to go too far with this stuff.

I was recently watching some gameplay (with commentary) of Stellaris and noticed an annoying tendency for lone enemy ships to throw themselves piecemeal at an overwhelming invading force when their homeworld was threatened.  Apparently this "bug" is the result of optimizations made to the artificial intelligence.  In order to save on CPU resources the A.I. in Stellaris focuses on large fleets to the exclusion of individual spacecraft.  Hence, a single ship is governed by extremely simple behavioral routines which leads to some rather dumb actions.  Apparently flying solo means leaving your brain with the nearest armada as far as the AI goes.

So to wrap this up, I think optimization is a good thing in general, but it is possible to go overboard.  Speaking of which I've seen user reviews on Steam claim games are complete garbage just because they don't run buttery smooth on top-of-the-line machines with the settings cranked up to the max.  Sorry to say this guys, but if you ride on the cutting edge of technology sometimes you're going to get nicked.

No comments:

Post a Comment